From 0fdee4a279e5a32610b6a44df63aed105dad9a53 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 16 Oct 2024 14:32:50 +0100 Subject: [PATCH 01/21] Renamed the script files --- .../scripts/{types.py => proof-gen.py} | 18 ++++++++++++------ .../scripts/{mlir-tool.py => test-gen.py} | 0 2 files changed, 12 insertions(+), 6 deletions(-) rename SSA/Projects/InstCombine/scripts/{types.py => proof-gen.py} (80%) rename SSA/Projects/InstCombine/scripts/{mlir-tool.py => test-gen.py} (100%) diff --git a/SSA/Projects/InstCombine/scripts/types.py b/SSA/Projects/InstCombine/scripts/proof-gen.py similarity index 80% rename from SSA/Projects/InstCombine/scripts/types.py rename to SSA/Projects/InstCombine/scripts/proof-gen.py index 843328f49..d70f1b83e 100644 --- a/SSA/Projects/InstCombine/scripts/types.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -19,14 +19,15 @@ def get_lines(msg): def process_file(file_path): # Run the `lake build` command and capture the output module_name = file_path[2:-5].replace("/", ".") - proof_name = file_path[:-5] + "_proof" + proof_name = file_path[:-5].replace("/LLVM/", "/proofs/") + "_proof" stem_name = file_path.split("/")[-1][:-5] + new_file_path = file_path.replace("/LLVM/", "/proofs/") result = subprocess.run( ["lake", "build", module_name], capture_output=True, text=True ) print(result) msg = result.stdout - if result.stderr: + if result.stderr: raise Exception(result.stderr) print(f"msg = {msg}") @@ -43,9 +44,9 @@ def process_file(file_path): for l, n, m in named: if 0 <= l - 1 < len(lines): lines[l - 1] = f" apply {n}_thm" + "\n" - lines[0] = f"import SSA.Projects.InstCombine.tests.LLVM.{stem_name}_proof\n" - # Write the modified content back to the file - with open(file_path, "w") as file: + lines[0] = f"import SSA.Projects.InstCombine.tests.proofs.{stem_name}_proof\n" + # Write the modified content to the new file + with open(new_file_path, "a") as file: file.writelines(lines) # Append the messages to the end of the file @@ -68,11 +69,16 @@ def process_file(file_path): def main(): + proof_directory = "./SSA/Projects/InstCombine/tests/proofs" + rm_proofs = "\nrm -r " + proof_directory + "/*\n" + subprocess.run(rm_proofs, shell=True) + directory = "./SSA/Projects/InstCombine/tests/LLVM" + worklist = [] for root, _, files in os.walk(directory): for lean_file in files: - if lean_file.endswith(".lean") and not lean_file.endswith("_proof.lean"): # Assuming the files have a .lean extension + if lean_file.endswith(".lean"): # Assuming the files have a .lean extension file_path = os.path.join(root, lean_file) print(file_path) worklist.append(file_path) diff --git a/SSA/Projects/InstCombine/scripts/mlir-tool.py b/SSA/Projects/InstCombine/scripts/test-gen.py similarity index 100% rename from SSA/Projects/InstCombine/scripts/mlir-tool.py rename to SSA/Projects/InstCombine/scripts/test-gen.py From 43a4918236019189e44049f153efcc4f8c7711bc Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 16 Oct 2024 15:49:34 +0100 Subject: [PATCH 02/21] re-ran scripts --- SSA/Projects/InstCombine/scripts/proof-gen.py | 2 +- .../LLVM/g2004h11h22hMissedhandhfold.lean | 4 +- .../g2004h11h22hMissedhandhfold_proof.lean | 8 - .../tests/LLVM/g2008h05h31hBools.lean | 8 +- .../tests/LLVM/g2008h05h31hBools_proof.lean | 12 - .../tests/LLVM/g2008h07h11hRemAnd.lean | 4 +- .../InstCombine/tests/LLVM/gadd2.lean | 4 +- .../InstCombine/tests/LLVM/gandhorhand.lean | 12 +- .../InstCombine/tests/LLVM/gapinthrem2.lean | 6 +- .../tests/LLVM/gapinthrem2_proof.lean | 15 - .../InstCombine/tests/LLVM/gapinthsub.lean | 18 +- .../tests/LLVM/gapinthsub_proof.lean | 22 - .../InstCombine/tests/LLVM/gapinthxor2.lean | 12 +- .../tests/LLVM/gapinthxor2_proof.lean | 29 - .../InstCombine/tests/LLVM/gdistribute.lean | 14 +- .../LLVM/gfoldhsubhofhnothtohinchofhadd.lean | 4 +- ...outhofhbiashcalculationhwithhconstant.lean | 6 +- ...hbiashcalculationhwithhconstant_proof.lean | 10 - .../LLVM/ghoisthnothfromhashrhoperand.lean | 6 +- .../ghoisthnothfromhashrhoperand_proof.lean | 14 - .../InstCombine/tests/LLVM/gicmphmul.lean | 4 +- ...hvariablehmaskhinhmaskedhmergehscalar.lean | 22 +- ...blehmaskhinhmaskedhmergehscalar_proof.lean | 30 - .../InstCombine/tests/LLVM/gorhxorhxor.lean | 12 +- .../InstCombine/tests/LLVM/gsdivh1.lean | 2 +- .../tests/LLVM/gshifthaddhinseltpoison.lean | 6 +- .../tests/LLVM/gsubhofhnegatible.lean | 565 ------- .../LLVM/gsubhofhnegatiblehinseltpoison.lean | 32 +- .../gsubhofhnegatiblehinseltpoison_proof.lean | 40 - .../InstCombine/tests/LLVM/gsubhxor.lean | 10 +- .../tests/LLVM/gsubhxor_proof.lean | 26 - .../tests/LLVM/gsubhxorhorhneghand.lean | 8 +- .../InstCombine/tests/LLVM/gxor2.lean | 78 +- .../tests/proofs/g2008h07h08hSubAnd.lean | 48 + .../proofs/g2008h07h08hSubAnd_proof.lean | 8 + .../tests/proofs/g2008h07h09hSubAndError.lean | 48 + .../proofs/g2008h07h09hSubAndError_proof.lean | 8 + .../tests/proofs/g2008h07h11hRemAnd.lean | 46 + .../g2008h07h11hRemAnd_proof.lean | 0 .../tests/proofs/g2010h11h23hDistributed.lean | 45 + .../proofs/g2010h11h23hDistributed_proof.lean | 22 + .../InstCombine/tests/proofs/gaddhshift.lean | 46 + .../tests/proofs/gaddhshift_proof.lean | 14 + .../tests/proofs/gaddhshlhsdivhtohsrem.lean | 182 +++ .../proofs/gaddhshlhsdivhtohsrem_proof.lean | 22 + .../InstCombine/tests/proofs/gaddnegneg.lean | 47 + .../tests/proofs/gaddnegneg_proof.lean | 8 + .../InstCombine/tests/proofs/gand2.lean | 387 +++++ .../InstCombine/tests/proofs/gand2_proof.lean | 47 + .../InstCombine/tests/proofs/gandhorhand.lean | 174 +++ .../{LLVM => proofs}/gandhorhand_proof.lean | 0 .../tests/proofs/gannotations.lean | 44 + .../gannotations_proof.lean} | 2 +- .../InstCombine/tests/proofs/gapinthand.lean | 254 ++++ .../tests/proofs/gapinthand_proof.lean | 24 + .../InstCombine/tests/proofs/gapinthnot.lean | 43 + .../tests/proofs/gapinthnot_proof.lean | 8 + .../InstCombine/tests/proofs/gapinthor.lean | 150 ++ .../tests/proofs/gapinthor_proof.lean | 23 + .../InstCombine/tests/proofs/gapinthrem2.lean | 76 + .../tests/proofs/gapinthrem2_proof.lean | 13 + .../tests/proofs/gapinthshifthsimplify.lean | 107 ++ .../proofs/gapinthshifthsimplify_proof.lean | 21 + .../gcanonicalizehashrhshlhtohmasking.lean | 1018 +++++++++++++ ...anonicalizehashrhshlhtohmasking_proof.lean | 146 ++ .../gcanonicalizehlshrhshlhtohmasking.lean | 1018 +++++++++++++ ...anonicalizehlshrhshlhtohmasking_proof.lean | 138 ++ .../InstCombine/tests/proofs/gdistribute.lean | 204 +++ .../{LLVM => proofs}/gdistribute_proof.lean | 0 .../InstCombine/tests/proofs/gdivhshift.lean | 296 ++++ .../tests/proofs/gdivhshift_proof.lean | 101 ++ .../proofs/gearly_constfold_changes_IR.lean | 46 + .../gearly_constfold_changes_IR_proof.lean | 6 + .../gfoldhsubhofhnothtohinchofhadd.lean | 46 + .../gfoldhsubhofhnothtohinchofhadd_proof.lean | 0 ...gethlowbitmaskhuptohandhincludinghbit.lean | 160 ++ ...wbitmaskhuptohandhincludinghbit_proof.lean | 32 + ...oisthnegationhouthofhbiashcalculation.lean | 82 + ...egationhouthofhbiashcalculation_proof.lean | 10 + .../proofs/ghoisthnothfromhashrhoperand.lean | 78 + .../ghoisthnothfromhashrhoperand_proof.lean | 14 + ...isthxorhbyhconstanthfromhxorhbyhvalue.lean | 46 + ...rhbyhconstanthfromhxorhbyhvalue_proof.lean | 8 + .../InstCombine/tests/proofs/gicmphmul.lean | 48 + .../{LLVM => proofs}/gicmphmul_proof.lean | 0 .../tests/proofs/gmaskedhmergehadd.lean | 336 +++++ .../tests/proofs/gmaskedhmergehadd_proof.lean | 42 + .../proofs/gmaskedhmergehandhofhors.lean | 155 ++ .../gmaskedhmergehandhofhors_proof.lean | 18 + .../InstCombine/tests/proofs/gmulhpow2.lean | 78 + .../tests/proofs/gmulhpow2_proof.lean | 16 + .../InstCombine/tests/proofs/gnothadd.lean | 169 +++ .../tests/proofs/gnothadd_proof.lean | 32 + .../InstCombine/tests/proofs/gorhxorhxor.lean | 171 +++ .../{LLVM => proofs}/gorhxorhxor_proof.lean | 0 .../tests/proofs/greassociatehnuw.lean | 524 +++++++ .../tests/proofs/greassociatehnuw_proof.lean | 85 ++ .../tests/proofs/gsdivhcanonicalize.lean | 78 + .../proofs/gsdivhcanonicalize_proof.lean | 18 + .../proofs/gsdivhexacthbyhpowerhofhtwo.lean | 172 +++ .../gsdivhexacthbyhpowerhofhtwo_proof.lean | 24 + .../tests/proofs/gshifthaddhinseltpoison.lean | 83 + .../gshifthaddhinseltpoison_proof.lean | 7 +- .../tests/proofs/gshifthflags.lean | 122 ++ .../tests/proofs/gshifthflags_proof.lean | 23 + .../tests/proofs/gshifthshift.lean | 254 ++++ .../tests/proofs/gshifthshift_proof.lean | 32 + .../InstCombine/tests/proofs/gshlhdemand.lean | 310 ++++ .../tests/proofs/gshlhdemand_proof.lean | 47 + .../InstCombine/tests/proofs/gshlhfactor.lean | 419 ++++++ .../tests/proofs/gshlhfactor_proof.lean | 99 ++ .../tests/proofs/gsubhxorhorhneghand.lean | 110 ++ .../gsubhxorhorhneghand_proof.lean | 0 ...dhmaskedhmergehwithhconsthmaskhscalar.lean | 354 +++++ ...edhmergehwithhconsthmaskhscalar_proof.lean | 26 + .../InstCombine/tests/proofs/gxor2.lean | 1332 +++++++++++++++++ .../tests/{LLVM => proofs}/gxor2_proof.lean | 0 117 files changed, 10681 insertions(+), 914 deletions(-) delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gapinthrem2_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gapinthsub_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gapinthxor2_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubhxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/g2008h07h11hRemAnd_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddnegneg_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gand2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gandhorhand_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gannotations.lean rename SSA/Projects/InstCombine/tests/{LLVM/gsdivh1_proof.lean => proofs/gannotations_proof.lean} (79%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthnot_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gdistribute.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gdistribute_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gfoldhsubhofhnothtohinchofhadd_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gicmphmul_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnothadd.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gorhxorhxor_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gshifthaddhinseltpoison_proof.lean (59%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthflags_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gsubhxorhorhneghand_proof.lean (100%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gxor2.lean rename SSA/Projects/InstCombine/tests/{LLVM => proofs}/gxor2_proof.lean (100%) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index d70f1b83e..06ac7846d 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -83,7 +83,7 @@ def main(): print(file_path) worklist.append(file_path) print(f"worklist = {worklist}") - with Pool(5) as p: + with Pool(7) as p: p.map(process_file, worklist) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean index 2bf1b0c59..5c63fbd82 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.g2004h11h22hMissedhandhfold_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -40,7 +40,7 @@ theorem test21_proof : test21_before ⊑ test21_after := by intros try simp ---BEGIN test21 - apply test21_thm + all_goals (try extract_goal ; sorry) ---END test21 diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold_proof.lean deleted file mode 100644 index 3ee3dfc66..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold_proof.lean +++ /dev/null @@ -1,8 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section g2004h11h22hMissedhandhfold_proof -theorem test21_thm (x : BitVec 8) : x.sshiftRight 7 &&& 1#8 = x >>> 7 := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean index 1e894783e..184ce4322 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.g2008h05h31hBools_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -36,7 +36,7 @@ theorem foo1_proof : foo1_before ⊑ foo1_after := by intros try simp ---BEGIN foo1 - apply foo1_thm + all_goals (try extract_goal ; sorry) ---END foo1 @@ -64,7 +64,7 @@ theorem foo2_proof : foo2_before ⊑ foo2_after := by intros try simp ---BEGIN foo2 - apply foo2_thm + all_goals (try extract_goal ; sorry) ---END foo2 @@ -91,7 +91,7 @@ theorem foo4_proof : foo4_before ⊑ foo4_after := by intros try simp ---BEGIN foo4 - apply foo4_thm + all_goals (try extract_goal ; sorry) ---END foo4 diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools_proof.lean deleted file mode 100644 index d9a7c5714..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools_proof.lean +++ /dev/null @@ -1,12 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section g2008h05h31hBools_proof -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 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/LLVM/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean index 50eeade4c..97b2e33a5 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.g2008h07h11hRemAnd_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -40,7 +40,7 @@ theorem a_proof : a_before ⊑ a_after := by intros try simp ---BEGIN a - apply a_thm + all_goals (try extract_goal ; sorry) ---END a diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean index 6df7ca2a0..14424b6d2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd2_statements - + def test2_before := [llvm| { ^0(%arg59 : i32): @@ -1097,5 +1097,3 @@ theorem sub_undemanded_low_bits_proof : sub_undemanded_low_bits_before ⊑ sub_u ---BEGIN sub_undemanded_low_bits all_goals (try extract_goal ; sorry) ---END sub_undemanded_low_bits - - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean index 290c88a66..fb656071b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gandhorhand_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -42,7 +42,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by intros try simp ---BEGIN test1 - apply test1_thm + all_goals (try extract_goal ; sorry) ---END test1 @@ -74,7 +74,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by intros try simp ---BEGIN test3 - apply test3_thm + all_goals (try extract_goal ; sorry) ---END test3 @@ -107,7 +107,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by intros try simp ---BEGIN test4 - apply test4_thm + all_goals (try extract_goal ; sorry) ---END test4 @@ -137,7 +137,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by intros try simp ---BEGIN or_test1 - apply or_test1_thm + all_goals (try extract_goal ; sorry) ---END or_test1 @@ -168,7 +168,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by intros try simp ---BEGIN or_test2 - apply or_test2_thm + all_goals (try extract_goal ; sorry) ---END or_test2 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean index 31bcbb54e..b574b1056 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gapinthrem2_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -38,7 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by intros try simp ---BEGIN test1 - apply test1_thm + all_goals (try extract_goal ; sorry) ---END test1 @@ -70,7 +70,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by intros try simp ---BEGIN test2 - apply test2_thm + all_goals (try extract_goal ; sorry) ---END test2 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2_proof.lean deleted file mode 100644 index b1da4406a..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2_proof.lean +++ /dev/null @@ -1,15 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthrem2_proof -theorem test1_thm (x : BitVec 333) : - (if 70368744177664 % 2 ^ 333 = 0 then none else some (BitVec.ofNat 333 (x.toNat % (70368744177664 % 2 ^ 333)))) ⊑ - some (x &&& 70368744177663#333) := sorry - -theorem test2_thm (x : BitVec 499) : - (Option.bind (if 499 ≤ 111 % 2 ^ 499 then none else some (4096#499 <<< (111 % 2 ^ 499))) fun a => - if a.toNat = 0 then none else some (BitVec.ofNat 499 (x.toNat % a.toNat))) ⊑ - some (x &&& 10633823966279326983230456482242756607#499) := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean index 6de4ea1da..a5e5c9d22 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gapinthsub_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -153,7 +153,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by intros try simp ---BEGIN test5 - apply test5_thm + all_goals (try extract_goal ; sorry) ---END test5 @@ -184,7 +184,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by intros try simp ---BEGIN test6 - apply test6_thm + all_goals (try extract_goal ; sorry) ---END test6 @@ -214,7 +214,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by intros try simp ---BEGIN test7 - apply test7_thm + all_goals (try extract_goal ; sorry) ---END test7 @@ -245,7 +245,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by intros try simp ---BEGIN test8 - apply test8_thm + all_goals (try extract_goal ; sorry) ---END test8 @@ -276,7 +276,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by intros try simp ---BEGIN test9 - apply test9_thm + all_goals (try extract_goal ; sorry) ---END test9 @@ -308,7 +308,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by intros try simp ---BEGIN test12 - apply test12_thm + all_goals (try extract_goal ; sorry) ---END test12 @@ -340,7 +340,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by intros try simp ---BEGIN test13 - apply test13_thm + all_goals (try extract_goal ; sorry) ---END test13 @@ -372,7 +372,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by intros try simp ---BEGIN test16 - apply test16_thm + all_goals (try extract_goal ; sorry) ---END test16 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub_proof.lean deleted file mode 100644 index b43b5c054..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub_proof.lean +++ /dev/null @@ -1,22 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthsub_proof -theorem test5_thm (x x_1 x_2 : BitVec 19) : x_2 - (x_1 - x) = x - x_1 + x_2 := sorry - -theorem test6_thm (x x_1 : BitVec 57) : x_1 - (x_1 &&& x) = x_1 &&& (x ^^^ 144115188075855871#57) := sorry - -theorem test7_thm (x : BitVec 77) : 151115727451828646838271#77 - x = x ^^^ 151115727451828646838271#77 := sorry - -theorem test8_thm (x : BitVec 27) : 9#27 * x - x = x <<< 3 := sorry - -theorem test9_thm (x : BitVec 42) : x - 3#42 * x = x * 4398046511102#42 := sorry - -theorem test12_thm (x : BitVec 43) : -x.sshiftRight 42 = x >>> 42 := sorry - -theorem test13_thm (x : BitVec 79) : -x >>> 78 = x.sshiftRight 78 := sorry - -theorem test16_thm (x : BitVec 51) : -x.sdiv 1123#51 = x.sdiv 2251799813684125#51 := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean index dd87160c0..69f8557db 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gapinthxor2_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -44,7 +44,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by intros try simp ---BEGIN test1 - apply test1_thm + all_goals (try extract_goal ; sorry) ---END test1 @@ -130,7 +130,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by intros try simp ---BEGIN test4 - apply test4_thm + all_goals (try extract_goal ; sorry) ---END test4 @@ -161,7 +161,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by intros try simp ---BEGIN test5 - apply test5_thm + all_goals (try extract_goal ; sorry) ---END test5 @@ -190,7 +190,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by intros try simp ---BEGIN test6 - apply test6_thm + all_goals (try extract_goal ; sorry) ---END test6 @@ -224,7 +224,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by intros try simp ---BEGIN test7 - apply test7_thm + all_goals (try extract_goal ; sorry) ---END test7 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2_proof.lean deleted file mode 100644 index 364d62cc8..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2_proof.lean +++ /dev/null @@ -1,29 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthxor2_proof -theorem test1_thm (x x_1 : BitVec 447) : - x_1 &&& 70368744177664#447 ^^^ x &&& 70368744177663#447 = - x_1 &&& 70368744177664#447 ||| x &&& 70368744177663#447 := sorry - -theorem test4_thm (x : BitVec 737) : - x ^^^ - (722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137471#737 ^^^ - x) = - 722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137471#737 := sorry - -theorem test5_thm (x : BitVec 700) : - (x ||| 288230376151711743#700) ^^^ 288230376151711743#700 = - x &&& - 5260135901548373507240989882880128665550339802823173859498280903068732154297080822113666536277588451226982968856178217713019432250183803863127814770651880849955223671128444598191663757884322716983062875584069632#700 := sorry - -theorem test6_thm (x : BitVec 77) : x ^^^ 23#77 ^^^ 23#77 = x := sorry - -theorem test7_thm (x : BitVec 1023) : - (x ||| 70368744177663#1023) ^^^ 703687463#1023 = - x &&& - 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678094443367890944#1023 ||| - 70368040490200#1023 := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean index 5e00a1bc6..2d7e1a81b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gdistribute_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -39,7 +39,7 @@ theorem factorize_proof : factorize_before ⊑ factorize_after := by intros try simp ---BEGIN factorize - apply factorize_thm + all_goals (try extract_goal ; sorry) ---END factorize @@ -70,7 +70,7 @@ theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by intros try simp ---BEGIN factorize2 - apply factorize2_thm + all_goals (try extract_goal ; sorry) ---END factorize2 @@ -101,7 +101,7 @@ theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by intros try simp ---BEGIN factorize3 - apply factorize3_thm + all_goals (try extract_goal ; sorry) ---END factorize3 @@ -133,7 +133,7 @@ theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by intros try simp ---BEGIN factorize4 - apply factorize4_thm + all_goals (try extract_goal ; sorry) ---END factorize4 @@ -165,7 +165,7 @@ theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by intros try simp ---BEGIN factorize5 - apply factorize5_thm + all_goals (try extract_goal ; sorry) ---END factorize5 @@ -198,7 +198,7 @@ theorem expand_proof : expand_before ⊑ expand_after := by intros try simp ---BEGIN expand - apply expand_thm + all_goals (try extract_goal ; sorry) ---END expand diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean index 875549d8e..2dd5871f2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gfoldhsubhofhnothtohinchofhadd_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -40,7 +40,7 @@ theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by intros try simp ---BEGIN p0_scalar - apply p0_scalar_thm + all_goals (try extract_goal ; sorry) ---END p0_scalar diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean index 2060f8b95..435d469a8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -41,7 +41,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by intros try simp ---BEGIN t0 - apply t0_thm + all_goals (try extract_goal ; sorry) ---END t0 @@ -72,7 +72,7 @@ theorem n5_proof : n5_before ⊑ n5_after := by intros try simp ---BEGIN n5 - apply n5_thm + all_goals (try extract_goal ; sorry) ---END n5 diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean deleted file mode 100644 index f61ea0f0e..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean +++ /dev/null @@ -1,10 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof -theorem t0_thm (x : BitVec 8) : (x &&& 42#8) - x = -(x &&& 213#8) := sorry - -theorem n5_thm (x : BitVec 8) : x - (x &&& 42#8) = x &&& 213#8 := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean index b6d303d5a..07ea48765 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.ghoisthnothfromhashrhoperand_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -40,7 +40,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by intros try simp ---BEGIN t0 - apply t0_thm + all_goals (try extract_goal ; sorry) ---END t0 @@ -72,7 +72,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by intros try simp ---BEGIN t1 - apply t1_thm + all_goals (try extract_goal ; sorry) ---END t1 diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand_proof.lean deleted file mode 100644 index 5940f3b10..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand_proof.lean +++ /dev/null @@ -1,14 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section ghoisthnothfromhashrhoperand_proof -theorem t0_thm (x x_1 : BitVec 8) : - (if 8 ≤ x.toNat then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ - Option.bind (if 8 ≤ x.toNat then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry - -theorem t1_thm (x x_1 : BitVec 8) : - (if 8 ≤ x.toNat then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ - Option.bind (if 8 ≤ x.toNat then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean index d59842693..f22351a08 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gicmphmul_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -42,7 +42,7 @@ theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by intros try simp ---BEGIN mul_of_pow2s - apply mul_of_pow2s_thm + all_goals (try extract_goal ; sorry) ---END mul_of_pow2s diff --git a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean index d6520bca7..966dd8fcb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.ginverthvariablehmaskhinhmaskedhmergehscalar_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -42,7 +42,7 @@ theorem scalar_proof : scalar_before ⊑ scalar_after := by intros try simp ---BEGIN scalar - apply scalar_thm + all_goals (try extract_goal ; sorry) ---END scalar @@ -74,7 +74,7 @@ theorem in_constant_varx_mone_invmask_proof : in_constant_varx_mone_invmask_befo intros try simp ---BEGIN in_constant_varx_mone_invmask - apply in_constant_varx_mone_invmask_thm + all_goals (try extract_goal ; sorry) ---END in_constant_varx_mone_invmask @@ -110,7 +110,7 @@ theorem in_constant_varx_6_invmask_proof : in_constant_varx_6_invmask_before ⊑ intros try simp ---BEGIN in_constant_varx_6_invmask - apply in_constant_varx_6_invmask_thm + all_goals (try extract_goal ; sorry) ---END in_constant_varx_6_invmask @@ -144,7 +144,7 @@ theorem in_constant_mone_vary_invmask_proof : in_constant_mone_vary_invmask_befo intros try simp ---BEGIN in_constant_mone_vary_invmask - apply in_constant_mone_vary_invmask_thm + all_goals (try extract_goal ; sorry) ---END in_constant_mone_vary_invmask @@ -180,7 +180,7 @@ theorem in_constant_6_vary_invmask_proof : in_constant_6_vary_invmask_before ⊑ intros try simp ---BEGIN in_constant_6_vary_invmask - apply in_constant_6_vary_invmask_thm + all_goals (try extract_goal ; sorry) ---END in_constant_6_vary_invmask @@ -214,7 +214,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by intros try simp ---BEGIN c_1_0_0 - apply c_1_0_0_thm + all_goals (try extract_goal ; sorry) ---END c_1_0_0 @@ -248,7 +248,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by intros try simp ---BEGIN c_0_1_0 - apply c_0_1_0_thm + all_goals (try extract_goal ; sorry) ---END c_0_1_0 @@ -282,7 +282,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by intros try simp ---BEGIN c_1_1_0 - apply c_1_1_0_thm + all_goals (try extract_goal ; sorry) ---END c_1_1_0 @@ -318,7 +318,7 @@ theorem commutativity_constant_varx_6_invmask_proof : commutativity_constant_var intros try simp ---BEGIN commutativity_constant_varx_6_invmask - apply commutativity_constant_varx_6_invmask_thm + all_goals (try extract_goal ; sorry) ---END commutativity_constant_varx_6_invmask @@ -354,7 +354,7 @@ theorem commutativity_constant_6_vary_invmask_proof : commutativity_constant_6_v intros try simp ---BEGIN commutativity_constant_6_vary_invmask - apply commutativity_constant_6_vary_invmask_thm + all_goals (try extract_goal ; sorry) ---END commutativity_constant_6_vary_invmask diff --git a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean deleted file mode 100644 index 8ef80f314..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean +++ /dev/null @@ -1,30 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section ginverthvariablehmaskhinhmaskedhmergehscalar_proof -theorem scalar_thm (x x_1 x_2 : BitVec 4) : - (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = (x_2 ^^^ x_1) &&& x ^^^ x_2 := sorry - -theorem in_constant_varx_mone_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 15#4) ^^^ 15#4 = x_1 ||| x := sorry - -theorem in_constant_varx_6_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 6#4) &&& (x ^^^ 15#4) ^^^ 6#4 = (x_1 ^^^ 6#4) &&& x ^^^ x_1 := sorry - -theorem in_constant_mone_vary_invmask_thm (x x_1 : BitVec 4) : (15#4 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = x_1 ||| x ^^^ 15#4 := sorry - -theorem in_constant_6_vary_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 6#4) &&& (x ^^^ 15#4) ^^^ x_1 = (x_1 ^^^ 6#4) &&& x ^^^ 6#4 := sorry - -theorem c_1_0_0_thm (x x_1 x_2 : BitVec 4) : - (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_2 = (x_2 ^^^ x_1) &&& x ^^^ x_1 := sorry - -theorem c_0_1_0_thm (x x_1 x_2 : BitVec 4) : - (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_2 = (x_2 ^^^ x_1) &&& x ^^^ x_1 := sorry - -theorem c_1_1_0_thm (x x_1 x_2 : BitVec 4) : - (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = (x_2 ^^^ x_1) &&& x ^^^ x_2 := sorry - -theorem commutativity_constant_varx_6_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 6#4) ^^^ 6#4 = (x ^^^ 6#4) &&& x_1 ^^^ x := sorry - -theorem commutativity_constant_6_vary_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 6#4) ^^^ x = (x ^^^ 6#4) &&& x_1 ^^^ 6#4 := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean index e821b3f52..40f456ed0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gorhxorhxor_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -39,7 +39,7 @@ theorem or_xor_xor_normal_variant1_proof : or_xor_xor_normal_variant1_before ⊑ intros try simp ---BEGIN or_xor_xor_normal_variant1 - apply or_xor_xor_normal_variant1_thm + all_goals (try extract_goal ; sorry) ---END or_xor_xor_normal_variant1 @@ -70,7 +70,7 @@ theorem or_xor_xor_normal_variant2_proof : or_xor_xor_normal_variant2_before ⊑ intros try simp ---BEGIN or_xor_xor_normal_variant2 - apply or_xor_xor_normal_variant2_thm + all_goals (try extract_goal ; sorry) ---END or_xor_xor_normal_variant2 @@ -101,7 +101,7 @@ theorem or_xor_xor_normal_variant3_proof : or_xor_xor_normal_variant3_before ⊑ intros try simp ---BEGIN or_xor_xor_normal_variant3 - apply or_xor_xor_normal_variant3_thm + all_goals (try extract_goal ; sorry) ---END or_xor_xor_normal_variant3 @@ -132,7 +132,7 @@ theorem or_xor_xor_normal_variant4_proof : or_xor_xor_normal_variant4_before ⊑ intros try simp ---BEGIN or_xor_xor_normal_variant4 - apply or_xor_xor_normal_variant4_thm + all_goals (try extract_goal ; sorry) ---END or_xor_xor_normal_variant4 @@ -165,7 +165,7 @@ theorem or_xor_xor_normal_binops_proof : or_xor_xor_normal_binops_before ⊑ or_ intros try simp ---BEGIN or_xor_xor_normal_binops - apply or_xor_xor_normal_binops_thm + all_goals (try extract_goal ; sorry) ---END or_xor_xor_normal_binops diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean index 2c4dbb4d0..9cab5dffd 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gsdivh1_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean index 8f64c9a88..0c02a5f04 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gshifthaddhinseltpoison_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -41,7 +41,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add intros try simp ---BEGIN ashr_C1_add_A_C2_i32 - apply ashr_C1_add_A_C2_i32_thm + all_goals (try extract_goal ; sorry) ---END ashr_C1_add_A_C2_i32 @@ -77,7 +77,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add intros try simp ---BEGIN lshr_C1_add_A_C2_i32 - apply lshr_C1_add_A_C2_i32_thm + all_goals (try extract_goal ; sorry) ---END lshr_C1_add_A_C2_i32 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean deleted file mode 100644 index 15125b9d3..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean +++ /dev/null @@ -1,565 +0,0 @@ - -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 gsubhofhnegatible_statements - -def t0_before := [llvm| -{ -^0(%arg214 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.sub %arg214, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def t0_after := [llvm| -{ -^0(%arg214 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.add %arg214, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem t0_proof : t0_before ⊑ t0_after := by - unfold t0_before t0_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN t0 - all_goals (try extract_goal ; sorry) - ---END t0 - - - -def t2_before := [llvm| -{ -^0(%arg210 : i8, %arg211 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg211 : i8 - %2 = llvm.sub %arg210, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def t2_after := [llvm| -{ -^0(%arg210 : i8, %arg211 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg211 : i8 - %2 = llvm.add %1, %arg210 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem t2_proof : t2_before ⊑ t2_after := by - unfold t2_before t2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN t2 - all_goals (try extract_goal ; sorry) - ---END t2 - - - -def t9_before := [llvm| -{ -^0(%arg182 : i8, %arg183 : i8): - %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %1 = llvm.sub %arg183, %arg182 : i8 - %2 = llvm.sub %0, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def t9_after := [llvm| -{ -^0(%arg182 : i8, %arg183 : i8): - %0 = llvm.sub %arg182, %arg183 : i8 - "llvm.return"(%0) : (i8) -> () -} -] -theorem t9_proof : t9_before ⊑ t9_after := by - unfold t9_before t9_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN t9 - all_goals (try extract_goal ; sorry) - ---END t9 - - - -def neg_of_sub_from_constant_before := [llvm| -{ -^0(%arg178 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %2 = llvm.sub %0, %arg178 : i8 - %3 = llvm.sub %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def neg_of_sub_from_constant_after := [llvm| -{ -^0(%arg178 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.add %arg178, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg_of_sub_from_constant_after := by - unfold neg_of_sub_from_constant_before neg_of_sub_from_constant_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN neg_of_sub_from_constant - all_goals (try extract_goal ; sorry) - ---END neg_of_sub_from_constant - - - -def sub_from_constant_of_sub_from_constant_before := [llvm| -{ -^0(%arg176 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 - %2 = llvm.sub %0, %arg176 : i8 - %3 = llvm.sub %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def sub_from_constant_of_sub_from_constant_after := [llvm| -{ -^0(%arg176 : i8): - %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 - %1 = llvm.add %arg176, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_from_constant_before ⊑ sub_from_constant_of_sub_from_constant_after := by - unfold sub_from_constant_of_sub_from_constant_before sub_from_constant_of_sub_from_constant_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN sub_from_constant_of_sub_from_constant - all_goals (try extract_goal ; sorry) - ---END sub_from_constant_of_sub_from_constant - - - -def sub_from_variable_of_sub_from_constant_before := [llvm| -{ -^0(%arg173 : i8, %arg174 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.sub %0, %arg173 : i8 - %2 = llvm.sub %arg174, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def sub_from_variable_of_sub_from_constant_after := [llvm| -{ -^0(%arg173 : i8, %arg174 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.add %arg173, %0 : i8 - %2 = llvm.add %1, %arg174 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_from_constant_before ⊑ sub_from_variable_of_sub_from_constant_after := by - unfold sub_from_variable_of_sub_from_constant_before sub_from_variable_of_sub_from_constant_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN sub_from_variable_of_sub_from_constant - all_goals (try extract_goal ; sorry) - ---END sub_from_variable_of_sub_from_constant - - - -def neg_of_add_with_constant_before := [llvm| -{ -^0(%arg161 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %2 = llvm.add %arg161, %0 : i8 - %3 = llvm.sub %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def neg_of_add_with_constant_after := [llvm| -{ -^0(%arg161 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.sub %0, %arg161 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg_of_add_with_constant_after := by - unfold neg_of_add_with_constant_before neg_of_add_with_constant_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN neg_of_add_with_constant - all_goals (try extract_goal ; sorry) - ---END neg_of_add_with_constant - - - -def sub_from_constant_of_add_with_constant_before := [llvm| -{ -^0(%arg159 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 - %2 = llvm.add %arg159, %0 : i8 - %3 = llvm.sub %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def sub_from_constant_of_add_with_constant_after := [llvm| -{ -^0(%arg159 : i8): - %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 - %1 = llvm.sub %0, %arg159 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_with_constant_before ⊑ sub_from_constant_of_add_with_constant_after := by - unfold sub_from_constant_of_add_with_constant_before sub_from_constant_of_add_with_constant_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN sub_from_constant_of_add_with_constant - all_goals (try extract_goal ; sorry) - ---END sub_from_constant_of_add_with_constant - - - -def negate_xor_before := [llvm| -{ -^0(%arg132 : i4): - %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 - %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 - %2 = llvm.xor %arg132, %0 : i4 - %3 = llvm.sub %1, %2 : i4 - "llvm.return"(%3) : (i4) -> () -} -] -def negate_xor_after := [llvm| -{ -^0(%arg132 : i4): - %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 - %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 - %2 = llvm.xor %arg132, %0 : i4 - %3 = llvm.add %2, %1 : i4 - "llvm.return"(%3) : (i4) -> () -} -] -theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by - unfold negate_xor_before negate_xor_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_xor - all_goals (try extract_goal ; sorry) - ---END negate_xor - - - -def negate_shl_xor_before := [llvm| -{ -^0(%arg128 : i4, %arg129 : i4): - %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 - %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 - %2 = llvm.xor %arg128, %0 : i4 - %3 = llvm.shl %2, %arg129 : i4 - %4 = llvm.sub %1, %3 : i4 - "llvm.return"(%4) : (i4) -> () -} -] -def negate_shl_xor_after := [llvm| -{ -^0(%arg128 : i4, %arg129 : i4): - %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 - %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 - %2 = llvm.xor %arg128, %0 : i4 - %3 = llvm.add %2, %1 : i4 - %4 = llvm.shl %3, %arg129 : i4 - "llvm.return"(%4) : (i4) -> () -} -] -theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := by - unfold negate_shl_xor_before negate_shl_xor_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_shl_xor - all_goals (try extract_goal ; sorry) - ---END negate_shl_xor - - - -def negate_sdiv_before := [llvm| -{ -^0(%arg122 : i8, %arg123 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.sdiv %arg123, %0 : i8 - %2 = llvm.sub %arg122, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def negate_sdiv_after := [llvm| -{ -^0(%arg122 : i8, %arg123 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.sdiv %arg123, %0 : i8 - %2 = llvm.add %1, %arg122 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by - unfold negate_sdiv_before negate_sdiv_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_sdiv - all_goals (try extract_goal ; sorry) - ---END negate_sdiv - - - -def negate_ashr_before := [llvm| -{ -^0(%arg116 : i8, %arg117 : i8): - %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 - %1 = llvm.ashr %arg117, %0 : i8 - %2 = llvm.sub %arg116, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def negate_ashr_after := [llvm| -{ -^0(%arg116 : i8, %arg117 : i8): - %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 - %1 = llvm.lshr %arg117, %0 : i8 - %2 = llvm.add %1, %arg116 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by - unfold negate_ashr_before negate_ashr_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_ashr - all_goals (try extract_goal ; sorry) - ---END negate_ashr - - - -def negate_lshr_before := [llvm| -{ -^0(%arg114 : i8, %arg115 : i8): - %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 - %1 = llvm.lshr %arg115, %0 : i8 - %2 = llvm.sub %arg114, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def negate_lshr_after := [llvm| -{ -^0(%arg114 : i8, %arg115 : i8): - %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 - %1 = llvm.ashr %arg115, %0 : i8 - %2 = llvm.add %1, %arg114 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by - unfold negate_lshr_before negate_lshr_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_lshr - all_goals (try extract_goal ; sorry) - ---END negate_lshr - - - -def negation_of_increment_via_or_with_no_common_bits_set_before := [llvm| -{ -^0(%arg77 : i8, %arg78 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.shl %arg78, %0 : i8 - %2 = llvm.or %1, %0 : i8 - %3 = llvm.sub %arg77, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def negation_of_increment_via_or_with_no_common_bits_set_after := [llvm| -{ -^0(%arg77 : i8, %arg78 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %2 = llvm.shl %arg78, %0 : i8 - %3 = llvm.xor %2, %1 : i8 - %4 = llvm.add %arg77, %3 : i8 - "llvm.return"(%4) : (i8) -> () -} -] -theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of_increment_via_or_with_no_common_bits_set_before ⊑ negation_of_increment_via_or_with_no_common_bits_set_after := by - unfold negation_of_increment_via_or_with_no_common_bits_set_before negation_of_increment_via_or_with_no_common_bits_set_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negation_of_increment_via_or_with_no_common_bits_set - all_goals (try extract_goal ; sorry) - ---END negation_of_increment_via_or_with_no_common_bits_set - - - -def negation_of_increment_via_or_disjoint_before := [llvm| -{ -^0(%arg71 : i8, %arg72 : i8): - %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 - %1 = llvm.or %arg72, %0 : i8 - %2 = llvm.sub %arg71, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def negation_of_increment_via_or_disjoint_after := [llvm| -{ -^0(%arg71 : i8, %arg72 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.xor %arg72, %0 : i8 - %2 = llvm.add %arg71, %1 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem negation_of_increment_via_or_disjoint_proof : negation_of_increment_via_or_disjoint_before ⊑ negation_of_increment_via_or_disjoint_after := by - unfold negation_of_increment_via_or_disjoint_before negation_of_increment_via_or_disjoint_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negation_of_increment_via_or_disjoint - all_goals (try extract_goal ; sorry) - ---END negation_of_increment_via_or_disjoint - - - -def negate_add_with_single_negatible_operand_before := [llvm| -{ -^0(%arg27 : i8, %arg28 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %2 = llvm.add %arg27, %0 : i8 - %3 = llvm.sub %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def negate_add_with_single_negatible_operand_after := [llvm| -{ -^0(%arg27 : i8, %arg28 : i8): - %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 - %1 = llvm.sub %0, %arg27 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_negatible_operand_before ⊑ negate_add_with_single_negatible_operand_after := by - unfold negate_add_with_single_negatible_operand_before negate_add_with_single_negatible_operand_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_add_with_single_negatible_operand - all_goals (try extract_goal ; sorry) - ---END negate_add_with_single_negatible_operand - - - -def negate_add_with_single_negatible_operand_depth2_before := [llvm| -{ -^0(%arg25 : i8, %arg26 : i8): - %0 = "llvm.mlir.constant"() <{value = 21 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 - %2 = llvm.add %arg25, %0 : i8 - %3 = llvm.mul %2, %arg26 : i8 - %4 = llvm.sub %1, %3 : i8 - "llvm.return"(%4) : (i8) -> () -} -] -def negate_add_with_single_negatible_operand_depth2_after := [llvm| -{ -^0(%arg25 : i8, %arg26 : i8): - %0 = "llvm.mlir.constant"() <{value = -21 : i8}> : () -> i8 - %1 = llvm.sub %0, %arg25 : i8 - %2 = llvm.mul %1, %arg26 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_single_negatible_operand_depth2_before ⊑ negate_add_with_single_negatible_operand_depth2_after := by - unfold negate_add_with_single_negatible_operand_depth2_before negate_add_with_single_negatible_operand_depth2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN negate_add_with_single_negatible_operand_depth2 - all_goals (try extract_goal ; sorry) - ---END negate_add_with_single_negatible_operand_depth2 - - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean index 5369fee65..e5f331439 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gsubhofhnegatiblehinseltpoison_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by intros try simp ---BEGIN t0 - apply t0_thm + all_goals (try extract_goal ; sorry) ---END t0 @@ -70,7 +70,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by intros try simp ---BEGIN t2 - apply t2_thm + all_goals (try extract_goal ; sorry) ---END t2 @@ -132,7 +132,7 @@ theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg intros try simp ---BEGIN neg_of_sub_from_constant - apply neg_of_sub_from_constant_thm + all_goals (try extract_goal ; sorry) ---END neg_of_sub_from_constant @@ -164,7 +164,7 @@ theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_ intros try simp ---BEGIN sub_from_constant_of_sub_from_constant - apply sub_from_constant_of_sub_from_constant_thm + all_goals (try extract_goal ; sorry) ---END sub_from_constant_of_sub_from_constant @@ -196,7 +196,7 @@ theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_ intros try simp ---BEGIN sub_from_variable_of_sub_from_constant - apply sub_from_variable_of_sub_from_constant_thm + all_goals (try extract_goal ; sorry) ---END sub_from_variable_of_sub_from_constant @@ -228,7 +228,7 @@ theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg intros try simp ---BEGIN neg_of_add_with_constant - apply neg_of_add_with_constant_thm + all_goals (try extract_goal ; sorry) ---END neg_of_add_with_constant @@ -260,7 +260,7 @@ theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_ intros try simp ---BEGIN sub_from_constant_of_add_with_constant - apply sub_from_constant_of_add_with_constant_thm + all_goals (try extract_goal ; sorry) ---END sub_from_constant_of_add_with_constant @@ -294,7 +294,7 @@ theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by intros try simp ---BEGIN negate_xor - apply negate_xor_thm + all_goals (try extract_goal ; sorry) ---END negate_xor @@ -330,7 +330,7 @@ theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := intros try simp ---BEGIN negate_shl_xor - apply negate_shl_xor_thm + all_goals (try extract_goal ; sorry) ---END negate_shl_xor @@ -362,7 +362,7 @@ theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by intros try simp ---BEGIN negate_sdiv - apply negate_sdiv_thm + all_goals (try extract_goal ; sorry) ---END negate_sdiv @@ -394,7 +394,7 @@ theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by intros try simp ---BEGIN negate_ashr - apply negate_ashr_thm + all_goals (try extract_goal ; sorry) ---END negate_ashr @@ -426,7 +426,7 @@ theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by intros try simp ---BEGIN negate_lshr - apply negate_lshr_thm + all_goals (try extract_goal ; sorry) ---END negate_lshr @@ -461,7 +461,7 @@ theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of intros try simp ---BEGIN negation_of_increment_via_or_with_no_common_bits_set - apply negation_of_increment_via_or_with_no_common_bits_set_thm + all_goals (try extract_goal ; sorry) ---END negation_of_increment_via_or_with_no_common_bits_set @@ -493,7 +493,7 @@ theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_ intros try simp ---BEGIN negate_add_with_single_negatible_operand - apply negate_add_with_single_negatible_operand_thm + all_goals (try extract_goal ; sorry) ---END negate_add_with_single_negatible_operand @@ -527,7 +527,7 @@ theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_ intros try simp ---BEGIN negate_add_with_single_negatible_operand_depth2 - apply negate_add_with_single_negatible_operand_depth2_thm + all_goals (try extract_goal ; sorry) ---END negate_add_with_single_negatible_operand_depth2 diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison_proof.lean deleted file mode 100644 index bfea8cfcf..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison_proof.lean +++ /dev/null @@ -1,40 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gsubhofhnegatiblehinseltpoison_proof -theorem t0_thm (x : BitVec 8) : x - 214#8 = x + 42#8 := sorry - -theorem t2_thm (x x_1 : BitVec 8) : - (Option.bind (if 8 ≤ x.toNat then none else some (214#8 <<< x.toNat)) fun a => some (x_1 - a)) ⊑ - Option.bind (if 8 ≤ x.toNat then none else some (42#8 <<< x.toNat)) fun a => some (a + x_1) := 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 - -theorem sub_from_variable_of_sub_from_constant_thm (x x_1 : BitVec 8) : x_1 - (42#8 - x) = x + 214#8 + x_1 := sorry - -theorem neg_of_add_with_constant_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry - -theorem sub_from_constant_of_add_with_constant_thm (x : BitVec 8) : 11#8 - (x + 42#8) = 225#8 - x := sorry - -theorem negate_xor_thm (x : BitVec 4) : -(x ^^^ 5#4) = (x ^^^ 10#4) + 1#4 := sorry - -theorem negate_shl_xor_thm (x x_1 : BitVec 4) : - (Option.bind (if 4 ≤ x.toNat then none else some ((x_1 ^^^ 5#4) <<< x.toNat)) fun a => some (-a)) ⊑ - if 4 ≤ x.toNat then none else some ((x_1 ^^^ 10#4) <<< x.toNat + 1#4 <<< x.toNat) := sorry - -theorem negate_sdiv_thm (x x_1 : BitVec 8) : x_1 - x.sdiv 42#8 = x.sdiv 214#8 + x_1 := sorry - -theorem negate_ashr_thm (x x_1 : BitVec 8) : x_1 - x.sshiftRight 7 = x >>> 7 + x_1 := sorry - -theorem negate_lshr_thm (x x_1 : BitVec 8) : x_1 - x >>> 7 = x.sshiftRight 7 + x_1 := sorry - -theorem negation_of_increment_via_or_with_no_common_bits_set_thm (x x_1 : BitVec 8) : x_1 - (x <<< 1 ||| 1#8) = x_1 + (x <<< 1 ^^^ 255#8) := sorry - -theorem negate_add_with_single_negatible_operand_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry - -theorem negate_add_with_single_negatible_operand_depth2_thm (x x_1 : BitVec 8) : -((x_1 + 21#8) * x) = (235#8 - x_1) * x := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean index 906a6945b..6f882ae33 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gsubhxor_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -42,7 +42,7 @@ theorem low_mask_nsw_nuw_proof : low_mask_nsw_nuw_before ⊑ low_mask_nsw_nuw_af intros try simp ---BEGIN low_mask_nsw_nuw - apply low_mask_nsw_nuw_thm + all_goals (try extract_goal ; sorry) ---END low_mask_nsw_nuw @@ -76,7 +76,7 @@ theorem arbitrary_mask_sub_i8_proof : arbitrary_mask_sub_i8_before ⊑ arbitrary intros try simp ---BEGIN arbitrary_mask_sub_i8 - apply arbitrary_mask_sub_i8_thm + all_goals (try extract_goal ; sorry) ---END arbitrary_mask_sub_i8 @@ -110,7 +110,7 @@ theorem not_masked_sub_i8_proof : not_masked_sub_i8_before ⊑ not_masked_sub_i8 intros try simp ---BEGIN not_masked_sub_i8 - apply not_masked_sub_i8_thm + all_goals (try extract_goal ; sorry) ---END not_masked_sub_i8 @@ -145,7 +145,7 @@ theorem xor_add_proof : xor_add_before ⊑ xor_add_after := by intros try simp ---BEGIN xor_add - apply xor_add_thm + all_goals (try extract_goal ; sorry) ---END xor_add diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor_proof.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor_proof.lean deleted file mode 100644 index 8534b470b..000000000 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor_proof.lean +++ /dev/null @@ -1,26 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gsubhxor_proof -theorem low_mask_nsw_nuw_thm (x : BitVec 32) : 63#32 - (x &&& 31#32) = x &&& 31#32 ^^^ 63#32 := sorry - -theorem arbitrary_mask_sub_i8_thm (x : BitVec 8) : - some (11#8 - (x &&& 10#8)) ⊑ - if (11#9 - signExtend 9 (x &&& 10#8)).msb = (11#9 - signExtend 9 (x &&& 10#8)).getMsbD 1 then - if 11#8 < x &&& 10#8 then none else some (11#8 - (x &&& 10#8)) - else none := sorry - -theorem not_masked_sub_i8_thm (x : BitVec 8) : - some (11#8 - (x &&& 7#8)) ⊑ - if (11#9 - signExtend 9 (x &&& 7#8)).msb = (11#9 - signExtend 9 (x &&& 7#8)).getMsbD 1 then - if 11#8 < x &&& 7#8 then none else some (11#8 - (x &&& 7#8)) - else none := sorry - -theorem xor_add_thm (x : BitVec 32) : - some ((x &&& 31#32 ^^^ 31#32) + 42#32) ⊑ - if (73#33 - signExtend 33 (x &&& 31#32)).msb = (73#33 - signExtend 33 (x &&& 31#32)).getMsbD 1 then - if 73#32 < x &&& 31#32 then none else some (73#32 - (x &&& 31#32)) - else none := sorry - diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean index 5a910a5a0..a1eadcd69 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gsubhxorhorhneghand_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -40,7 +40,7 @@ theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by intros try simp ---BEGIN sub_to_and - apply sub_to_and_thm + all_goals (try extract_goal ; sorry) ---END sub_to_and @@ -72,7 +72,7 @@ theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_ intros try simp ---BEGIN sub_to_and_or_commuted - apply sub_to_and_or_commuted_thm + all_goals (try extract_goal ; sorry) ---END sub_to_and_or_commuted @@ -104,7 +104,7 @@ theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_t intros try simp ---BEGIN sub_to_and_and_commuted - apply sub_to_and_and_commuted_thm + all_goals (try extract_goal ; sorry) ---END sub_to_and_and_commuted diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean index 78bffd274..e4bb0016d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.LLVM.gxor2_proof + import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -44,7 +44,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by intros try simp ---BEGIN test2 - apply test2_thm + all_goals (try extract_goal ; sorry) ---END test2 @@ -80,7 +80,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by intros try simp ---BEGIN test3 - apply test3_thm + all_goals (try extract_goal ; sorry) ---END test3 @@ -120,7 +120,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by intros try simp ---BEGIN test5 - apply test5_thm + all_goals (try extract_goal ; sorry) ---END test5 @@ -156,7 +156,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by intros try simp ---BEGIN test6 - apply test6_thm + all_goals (try extract_goal ; sorry) ---END test6 @@ -189,7 +189,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by intros try simp ---BEGIN test7 - apply test7_thm + all_goals (try extract_goal ; sorry) ---END test7 @@ -222,7 +222,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by intros try simp ---BEGIN test8 - apply test8_thm + all_goals (try extract_goal ; sorry) ---END test8 @@ -252,7 +252,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by intros try simp ---BEGIN test9 - apply test9_thm + all_goals (try extract_goal ; sorry) ---END test9 @@ -282,7 +282,7 @@ theorem test9b_proof : test9b_before ⊑ test9b_after := by intros try simp ---BEGIN test9b - apply test9b_thm + all_goals (try extract_goal ; sorry) ---END test9b @@ -312,7 +312,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by intros try simp ---BEGIN test10 - apply test10_thm + all_goals (try extract_goal ; sorry) ---END test10 @@ -342,7 +342,7 @@ theorem test10b_proof : test10b_before ⊑ test10b_after := by intros try simp ---BEGIN test10b - apply test10b_thm + all_goals (try extract_goal ; sorry) ---END test10b @@ -378,7 +378,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by intros try simp ---BEGIN test11 - apply test11_thm + all_goals (try extract_goal ; sorry) ---END test11 @@ -414,7 +414,7 @@ theorem test11b_proof : test11b_before ⊑ test11b_after := by intros try simp ---BEGIN test11b - apply test11b_thm + all_goals (try extract_goal ; sorry) ---END test11b @@ -450,7 +450,7 @@ theorem test11c_proof : test11c_before ⊑ test11c_after := by intros try simp ---BEGIN test11c - apply test11c_thm + all_goals (try extract_goal ; sorry) ---END test11c @@ -486,7 +486,7 @@ theorem test11d_proof : test11d_before ⊑ test11d_after := by intros try simp ---BEGIN test11d - apply test11d_thm + all_goals (try extract_goal ; sorry) ---END test11d @@ -524,7 +524,7 @@ theorem test11e_proof : test11e_before ⊑ test11e_after := by intros try simp ---BEGIN test11e - apply test11e_thm + all_goals (try extract_goal ; sorry) ---END test11e @@ -562,7 +562,7 @@ theorem test11f_proof : test11f_before ⊑ test11f_after := by intros try simp ---BEGIN test11f - apply test11f_thm + all_goals (try extract_goal ; sorry) ---END test11f @@ -596,7 +596,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by intros try simp ---BEGIN test12 - apply test12_thm + all_goals (try extract_goal ; sorry) ---END test12 @@ -630,7 +630,7 @@ theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := intros try simp ---BEGIN test12commuted - apply test12commuted_thm + all_goals (try extract_goal ; sorry) ---END test12commuted @@ -664,7 +664,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by intros try simp ---BEGIN test13 - apply test13_thm + all_goals (try extract_goal ; sorry) ---END test13 @@ -698,7 +698,7 @@ theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := intros try simp ---BEGIN test13commuted - apply test13commuted_thm + all_goals (try extract_goal ; sorry) ---END test13commuted @@ -731,7 +731,7 @@ theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_befo intros try simp ---BEGIN xor_or_xor_common_op_commute1 - apply xor_or_xor_common_op_commute1_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute1 @@ -764,7 +764,7 @@ theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_befo intros try simp ---BEGIN xor_or_xor_common_op_commute2 - apply xor_or_xor_common_op_commute2_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute2 @@ -797,7 +797,7 @@ theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_befo intros try simp ---BEGIN xor_or_xor_common_op_commute3 - apply xor_or_xor_common_op_commute3_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute3 @@ -830,7 +830,7 @@ theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_befo intros try simp ---BEGIN xor_or_xor_common_op_commute4 - apply xor_or_xor_common_op_commute4_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute4 @@ -863,7 +863,7 @@ theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_befo intros try simp ---BEGIN xor_or_xor_common_op_commute5 - apply xor_or_xor_common_op_commute5_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute5 @@ -896,7 +896,7 @@ theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_befo intros try simp ---BEGIN xor_or_xor_common_op_commute6 - apply xor_or_xor_common_op_commute6_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute6 @@ -929,7 +929,7 @@ theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_befo intros try simp ---BEGIN xor_or_xor_common_op_commute7 - apply xor_or_xor_common_op_commute7_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute7 @@ -962,7 +962,7 @@ theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_befo intros try simp ---BEGIN xor_or_xor_common_op_commute8 - apply xor_or_xor_common_op_commute8_thm + all_goals (try extract_goal ; sorry) ---END xor_or_xor_common_op_commute8 @@ -1000,7 +1000,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by intros try simp ---BEGIN test15 - apply test15_thm + all_goals (try extract_goal ; sorry) ---END test15 @@ -1038,7 +1038,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by intros try simp ---BEGIN test16 - apply test16_thm + all_goals (try extract_goal ; sorry) ---END test16 @@ -1074,7 +1074,7 @@ theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_n intros try simp ---BEGIN not_xor_to_or_not1 - apply not_xor_to_or_not1_thm + all_goals (try extract_goal ; sorry) ---END not_xor_to_or_not1 @@ -1110,7 +1110,7 @@ theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_n intros try simp ---BEGIN not_xor_to_or_not2 - apply not_xor_to_or_not2_thm + all_goals (try extract_goal ; sorry) ---END not_xor_to_or_not2 @@ -1146,7 +1146,7 @@ theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_n intros try simp ---BEGIN not_xor_to_or_not3 - apply not_xor_to_or_not3_thm + all_goals (try extract_goal ; sorry) ---END not_xor_to_or_not3 @@ -1182,7 +1182,7 @@ theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_n intros try simp ---BEGIN not_xor_to_or_not4 - apply not_xor_to_or_not4_thm + all_goals (try extract_goal ; sorry) ---END not_xor_to_or_not4 @@ -1218,7 +1218,7 @@ theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notan intros try simp ---BEGIN xor_notand_to_or_not1 - apply xor_notand_to_or_not1_thm + all_goals (try extract_goal ; sorry) ---END xor_notand_to_or_not1 @@ -1254,7 +1254,7 @@ theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notan intros try simp ---BEGIN xor_notand_to_or_not2 - apply xor_notand_to_or_not2_thm + all_goals (try extract_goal ; sorry) ---END xor_notand_to_or_not2 @@ -1290,7 +1290,7 @@ theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notan intros try simp ---BEGIN xor_notand_to_or_not3 - apply xor_notand_to_or_not3_thm + all_goals (try extract_goal ; sorry) ---END xor_notand_to_or_not3 @@ -1326,7 +1326,7 @@ theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notan intros try simp ---BEGIN xor_notand_to_or_not4 - apply xor_notand_to_or_not4_thm + all_goals (try extract_goal ; sorry) ---END xor_notand_to_or_not4 diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean new file mode 100644 index 000000000..aff558814 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean @@ -0,0 +1,48 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h07h08hSubAnd_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 g2008h07h08hSubAnd_statements + +def a_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def a_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem a_proof : a_before ⊑ a_after := by + unfold a_before a_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN a + apply a_thm + ---END a + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd_proof.lean new file mode 100644 index 000000000..4464c852c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h07h08hSubAnd_proof +theorem a_thm (x : BitVec 32) : 8#32 - x &&& 7#32 = -x &&& 7#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean new file mode 100644 index 000000000..450cdb5d8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean @@ -0,0 +1,48 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h07h09hSubAndError_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 g2008h07h09hSubAndError_statements + +def foo_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def foo_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem foo_proof : foo_before ⊑ foo_after := by + unfold foo_before foo_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN foo + apply foo_thm + ---END foo + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError_proof.lean new file mode 100644 index 000000000..c0c06dc33 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h07h09hSubAndError_proof +theorem foo_thm (x : BitVec 32) : 5#32 - x &&& 2#32 = 1#32 - x &&& 2#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean new file mode 100644 index 000000000..cd66bfd9a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h07h11hRemAnd_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 g2008h07h11hRemAnd_statements + +def a_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.srem %arg1, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def a_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.and %arg1, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem a_proof : a_before ⊑ a_after := by + unfold a_before a_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN a + apply a_thm + ---END a + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean new file mode 100644 index 000000000..be2ec33f0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean @@ -0,0 +1,45 @@ +import SSA.Projects.InstCombine.tests.proofs.g2010h11h23hDistributed_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 g2010h11h23hDistributed_statements + +def foo_before := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = llvm.add %arg3, %arg2 overflow : i32 + %1 = llvm.mul %0, %arg3 overflow : i32 + %2 = llvm.mul %arg3, %arg3 overflow : i32 + %3 = llvm.sub %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def foo_after := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = llvm.mul %arg2, %arg3 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem foo_proof : foo_before ⊑ foo_after := by + unfold foo_before foo_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN foo + apply foo_thm + ---END foo + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean new file mode 100644 index 000000000..ac40f13ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean @@ -0,0 +1,22 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2010h11h23hDistributed_proof +theorem foo_thm (x x_1 : BitVec 32) : + ((if x_1.msb = x.msb ∧ ¬(x_1 + x).msb = x_1.msb then none else some (x_1 + x)).bind fun a => + (if + signExtend 64 a * signExtend 64 x_1 < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 a * signExtend 64 x_1 then + none + else some (a * x_1)).bind + fun a => + (if + signExtend 64 x_1 * signExtend 64 x_1 < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 x_1 * signExtend 64 x_1 then + none + else some (x_1 * x_1)).bind + fun a_1 => some (a - a_1)) ⊑ + some (x * x_1) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean new file mode 100644 index 000000000..91b0371fe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddhshift_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 gaddhshift_statements + +def flip_add_of_shift_neg_before := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8, %arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg12 : i8 + %2 = llvm.shl %1, %arg13 overflow : i8 + %3 = llvm.add %2, %arg14 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def flip_add_of_shift_neg_after := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8, %arg14 : i8): + %0 = llvm.shl %arg12, %arg13 : i8 + %1 = llvm.sub %arg14, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem flip_add_of_shift_neg_proof : flip_add_of_shift_neg_before ⊑ flip_add_of_shift_neg_after := by + unfold flip_add_of_shift_neg_before flip_add_of_shift_neg_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN flip_add_of_shift_neg + apply flip_add_of_shift_neg_thm + ---END flip_add_of_shift_neg + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean new file mode 100644 index 000000000..2938d1757 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddhshift_proof +theorem flip_add_of_shift_neg_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 => some (a + x)) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => some (x - a) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean new file mode 100644 index 000000000..c496ce5d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean @@ -0,0 +1,182 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddhshlhsdivhtohsrem_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 gaddhshlhsdivhtohsrem_statements + +def addhshlhsdivhscalar0_before := [llvm| +{ +^0(%arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = -4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.sdiv %arg19, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + %4 = llvm.add %3, %arg19 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def addhshlhsdivhscalar0_after := [llvm| +{ +^0(%arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = llvm.srem %arg19, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem addhshlhsdivhscalar0_proof : addhshlhsdivhscalar0_before ⊑ addhshlhsdivhscalar0_after := by + unfold addhshlhsdivhscalar0_before addhshlhsdivhscalar0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN addhshlhsdivhscalar0 + apply addhshlhsdivhscalar0_thm + ---END addhshlhsdivhscalar0 + + + +def addhshlhsdivhscalar1_before := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.sdiv %arg18, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + %4 = llvm.add %3, %arg18 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def addhshlhsdivhscalar1_after := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %1 = llvm.srem %arg18, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem addhshlhsdivhscalar1_proof : addhshlhsdivhscalar1_before ⊑ addhshlhsdivhscalar1_after := by + unfold addhshlhsdivhscalar1_before addhshlhsdivhscalar1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN addhshlhsdivhscalar1 + apply addhshlhsdivhscalar1_thm + ---END addhshlhsdivhscalar1 + + + +def addhshlhsdivhscalar2_before := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = -1073741824 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 30 : i32}> : () -> i32 + %2 = llvm.sdiv %arg17, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.add %3, %arg17 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def addhshlhsdivhscalar2_after := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 1073741824 : i32}> : () -> i32 + %1 = llvm.srem %arg17, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem addhshlhsdivhscalar2_proof : addhshlhsdivhscalar2_before ⊑ addhshlhsdivhscalar2_after := by + unfold addhshlhsdivhscalar2_before addhshlhsdivhscalar2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN addhshlhsdivhscalar2 + apply addhshlhsdivhscalar2_thm + ---END addhshlhsdivhscalar2 + + + +def addhshlhsdivhnegative0_before := [llvm| +{ +^0(%arg8 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.sdiv %arg8, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + %4 = llvm.add %3, %arg8 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def addhshlhsdivhnegative0_after := [llvm| +{ +^0(%arg8 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.sdiv %arg8, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + %4 = llvm.add %3, %arg8 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem addhshlhsdivhnegative0_proof : addhshlhsdivhnegative0_before ⊑ addhshlhsdivhnegative0_after := by + unfold addhshlhsdivhnegative0_before addhshlhsdivhnegative0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN addhshlhsdivhnegative0 + apply addhshlhsdivhnegative0_thm + ---END addhshlhsdivhnegative0 + + + +def addhshlhsdivhnegative1_before := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.sdiv %arg7, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.add %3, %arg7 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def addhshlhsdivhnegative1_after := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg7 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem addhshlhsdivhnegative1_proof : addhshlhsdivhnegative1_before ⊑ addhshlhsdivhnegative1_after := by + unfold addhshlhsdivhnegative1_before addhshlhsdivhnegative1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN addhshlhsdivhnegative1 + apply addhshlhsdivhnegative1_thm + ---END addhshlhsdivhnegative1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem_proof.lean new file mode 100644 index 000000000..724e98c6d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem_proof.lean @@ -0,0 +1,22 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddhshlhsdivhtohsrem_proof +theorem addhshlhsdivhscalar0_thm (x : BitVec 8) : x.sdiv 252#8 <<< 2 + x = x - x.sdiv 4#8 * 4#8 := sorry + +theorem addhshlhsdivhscalar1_thm (x : BitVec 8) : x.sdiv 192#8 <<< 6 + x = x - x.sdiv 64#8 * 64#8 := sorry + +theorem addhshlhsdivhscalar2_thm (x : BitVec 32) : + x.sdiv 3221225472#32 <<< 30 + x = x - x.sdiv 1073741824#32 * 1073741824#32 := sorry + +theorem addhshlhsdivhnegative0_thm (x : BitVec 8) : + some (x.sdiv 4#8 <<< 2 + x) ⊑ + (if (x.sdiv 4#8 <<< 2).sshiftRight 2 = x.sdiv 4#8 then none else some (x.sdiv 4#8 <<< 2)).bind fun a => + some (a + x) := sorry + +theorem addhshlhsdivhnegative1_thm (x : BitVec 32) : + (Option.bind (if x = intMin 32 then none else some (x.sdiv 4294967295#32)) fun a => some (a <<< 1 + x)) ⊑ + some (-x) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean new file mode 100644 index 000000000..eb6b9ff53 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddnegneg_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 gaddnegneg_statements + +def l_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg1 : i32 + %2 = llvm.sub %0, %arg2 : i32 + %3 = llvm.add %2, %1 : i32 + %4 = llvm.add %3, %arg3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def l_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32, %arg3 : i32): + %0 = llvm.add %arg2, %arg1 : i32 + %1 = llvm.sub %arg3, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem l_proof : l_before ⊑ l_after := by + unfold l_before l_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN l + apply l_thm + ---END l + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg_proof.lean new file mode 100644 index 000000000..43c220326 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddnegneg_proof +theorem l_thm (x x_1 x_2 : BitVec 32) : -x_2 + -x_1 + x = x - (x_2 + x_1) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2.lean b/SSA/Projects/InstCombine/tests/proofs/gand2.lean new file mode 100644 index 000000000..1375b42bf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gand2.lean @@ -0,0 +1,387 @@ +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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 + simp_alive_case_bash + 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 new file mode 100644 index 000000000..1542c3220 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean @@ -0,0 +1,47 @@ + +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 a => + some (a &&& 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 a_1 => + some (a + (a_1 &&& 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 a_1 => some (a + (a_1 &&& 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 a_1 => + if a + (a_1 &&& 1#8) < a ∨ a + (a_1 &&& 1#8) < a_1 &&& 1#8 then none else some (a + (a_1 &&& 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 a => some (a &&& 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 a_1 => some (a + (a_1 &&& 1#8))) ⊑ + Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun a => + if (a <<< 1).sshiftRight 1 = a then none else if a <<< 1 >>> 1 = a then none else some (a <<< 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/gandhorhand.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean new file mode 100644 index 000000000..645d09955 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean @@ -0,0 +1,174 @@ +import SSA.Projects.InstCombine.tests.proofs.gandhorhand_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 gandhorhand_statements + +def test1_before := [llvm| +{ +^0(%arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg10, %0 : i32 + %3 = llvm.and %arg11, %1 : i32 + %4 = llvm.or %2, %3 : i32 + %5 = llvm.and %4, %0 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = llvm.and %arg10, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test3_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %arg7, %0 : i32 + %2 = llvm.or %arg6, %1 : i32 + %3 = llvm.and %2, %0 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + + +def test4_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.lshr %arg5, %0 : i32 + %3 = llvm.or %arg4, %2 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.and %arg4, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem test4_proof : test4_before ⊑ test4_after := by + unfold test4_before test4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test4 + apply test4_thm + ---END test4 + + + +def or_test1_before := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.and %arg2, %0 : i32 + %2 = llvm.or %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def or_test1_after := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by + unfold or_test1_before or_test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_test1 + apply or_test1_thm + ---END or_test1 + + + +def or_test2_before := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %2 = llvm.shl %arg0, %0 : i8 + %3 = llvm.or %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def or_test2_after := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by + unfold or_test2_before or_test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_test2 + apply or_test2_thm + ---END or_test2 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhand_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gandhorhand_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gandhorhand_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/gannotations.lean b/SSA/Projects/InstCombine/tests/proofs/gannotations.lean new file mode 100644 index 000000000..bc9af81c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gannotations.lean @@ -0,0 +1,44 @@ +import SSA.Projects.InstCombine.tests.proofs.gannotations_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 gannotations_statements + +def do_not_add_annotation_to_existing_instr_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.add %arg15, %arg16 : i32 + %2 = llvm.add %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def do_not_add_annotation_to_existing_instr_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.add %arg15, %arg16 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem do_not_add_annotation_to_existing_instr_proof : do_not_add_annotation_to_existing_instr_before ⊑ do_not_add_annotation_to_existing_instr_after := by + unfold do_not_add_annotation_to_existing_instr_before do_not_add_annotation_to_existing_instr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN do_not_add_annotation_to_existing_instr + all_goals (try extract_goal ; sorry) + ---END do_not_add_annotation_to_existing_instr + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean similarity index 79% rename from SSA/Projects/InstCombine/tests/LLVM/gsdivh1_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean index 7b64ad1ef..7ef0dfc3c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean @@ -3,4 +3,4 @@ import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics open BitVec -section gsdivh1_proof +section gannotations_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean new file mode 100644 index 000000000..385eb24ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean @@ -0,0 +1,254 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthand_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 gapinthand_statements + +def test0_before := [llvm| +{ +^0(%arg13 : i39): + %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 + %1 = llvm.and %arg13, %0 : i39 + "llvm.return"(%1) : (i39) -> () +} +] +def test0_after := [llvm| +{ +^0(%arg13 : i39): + %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 + "llvm.return"(%0) : (i39) -> () +} +] +theorem test0_proof : test0_before ⊑ test0_after := by + unfold test0_before test0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test0 + all_goals (try extract_goal ; sorry) + ---END test0 + + + +def test2_before := [llvm| +{ +^0(%arg12 : i15): + %0 = "llvm.mlir.constant"() <{value = -1 : i15}> : () -> i15 + %1 = llvm.and %arg12, %0 : i15 + "llvm.return"(%1) : (i15) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg12 : i15): + "llvm.return"(%arg12) : (i15) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg11 : i23): + %0 = "llvm.mlir.constant"() <{value = 127 : i23}> : () -> i23 + %1 = "llvm.mlir.constant"() <{value = 128 : i23}> : () -> i23 + %2 = llvm.and %arg11, %0 : i23 + %3 = llvm.and %2, %1 : i23 + "llvm.return"(%3) : (i23) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg11 : i23): + %0 = "llvm.mlir.constant"() <{value = 0 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + + +def test7_before := [llvm| +{ +^0(%arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 255 : i47}> : () -> i47 + %2 = llvm.ashr %arg7, %0 : i47 + %3 = llvm.and %2, %1 : i47 + "llvm.return"(%3) : (i47) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 + %1 = llvm.lshr %arg7, %0 : i47 + "llvm.return"(%1) : (i47) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + + +def test8_before := [llvm| +{ +^0(%arg6 : i999): + %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 + %1 = llvm.and %arg6, %0 : i999 + "llvm.return"(%1) : (i999) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg6 : i999): + %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 + "llvm.return"(%0) : (i999) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test8 + all_goals (try extract_goal ; sorry) + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg5 : i1005): + %0 = "llvm.mlir.constant"() <{value = -1 : i1005}> : () -> i1005 + %1 = llvm.and %arg5, %0 : i1005 + "llvm.return"(%1) : (i1005) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg5 : i1005): + "llvm.return"(%arg5) : (i1005) -> () +} +] +theorem test9_proof : test9_before ⊑ test9_after := by + unfold test9_before test9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test9 + apply test9_thm + ---END test9 + + + +def test10_before := [llvm| +{ +^0(%arg4 : i123): + %0 = "llvm.mlir.constant"() <{value = 127 : i123}> : () -> i123 + %1 = "llvm.mlir.constant"() <{value = 128 : i123}> : () -> i123 + %2 = llvm.and %arg4, %0 : i123 + %3 = llvm.and %2, %1 : i123 + "llvm.return"(%3) : (i123) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg4 : i123): + %0 = "llvm.mlir.constant"() <{value = 0 : i123}> : () -> i123 + "llvm.return"(%0) : (i123) -> () +} +] +theorem test10_proof : test10_before ⊑ test10_after := by + unfold test10_before test10_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test10 + apply test10_thm + ---END test10 + + + +def test13_before := [llvm| +{ +^0(%arg0 : i1024): + %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 + %1 = "llvm.mlir.constant"() <{value = 255 : i1024}> : () -> i1024 + %2 = llvm.ashr %arg0, %0 : i1024 + %3 = llvm.and %2, %1 : i1024 + "llvm.return"(%3) : (i1024) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg0 : i1024): + %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 + %1 = llvm.lshr %arg0, %0 : i1024 + "llvm.return"(%1) : (i1024) -> () +} +] +theorem test13_proof : test13_before ⊑ test13_after := by + unfold test13_before test13_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test13 + apply test13_thm + ---END test13 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean new file mode 100644 index 000000000..29f61586a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean @@ -0,0 +1,24 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthand_proof +theorem test2_thm (x : BitVec 15) : x &&& 32767#15 = x := sorry + +theorem test3_thm (x : BitVec 23) : x &&& 127#23 &&& 128#23 = 0#23 := sorry + +theorem test7_thm (x : BitVec 47) : x.sshiftRight 39 &&& 255#47 = x >>> 39 := sorry + +theorem test9_thm (x : BitVec 1005) : + x &&& + 342882754299605542703496015699200579379649539745770754382000124278512336359979559197823481221022674600830295333617006984059886491421540493951506482390354393725906168794375391533474387361995876540094533828897487199474622120556760561893297406274466013266278287285969349365133754612883980378790581378220031#1005 = + x := sorry + +theorem test10_thm (x : BitVec 123) : x &&& 127#123 &&& 128#123 = 0#123 := sorry + +theorem test13_thm (x : BitVec 1024) : + (Option.bind (if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x.sshiftRight (1016 % 2 ^ 1024))) fun a => + some (a &&& 255#1024)) ⊑ + if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x >>> (1016 % 2 ^ 1024)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean new file mode 100644 index 000000000..370aa31b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean @@ -0,0 +1,43 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthnot_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 gapinthnot_statements + +def test1_before := [llvm| +{ +^0(%arg2 : i33): + %0 = "llvm.mlir.constant"() <{value = -1 : i33}> : () -> i33 + %1 = llvm.xor %arg2, %0 : i33 + %2 = llvm.xor %1, %0 : i33 + "llvm.return"(%2) : (i33) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg2 : i33): + "llvm.return"(%arg2) : (i33) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthnot_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthnot_proof.lean new file mode 100644 index 000000000..6421c89b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthnot_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthnot_proof +theorem test1_thm (x : BitVec 33) : x ^^^ 8589934591#33 ^^^ 8589934591#33 = x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean new file mode 100644 index 000000000..2d6d7a073 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean @@ -0,0 +1,150 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthor_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 gapinthor_statements + +def test1_before := [llvm| +{ +^0(%arg5 : i23): + %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 + %1 = llvm.xor %0, %arg5 : i23 + %2 = llvm.or %arg5, %1 : i23 + "llvm.return"(%2) : (i23) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg5 : i23): + %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg3 : i39, %arg4 : i39): + %0 = "llvm.mlir.constant"() <{value = 274877906943 : i39}> : () -> i39 + %1 = "llvm.mlir.constant"() <{value = -1 : i39}> : () -> i39 + %2 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 + %3 = llvm.xor %0, %1 : i39 + %4 = llvm.and %arg4, %2 : i39 + %5 = llvm.add %arg3, %4 : i39 + %6 = llvm.and %5, %3 : i39 + %7 = llvm.and %arg3, %0 : i39 + %8 = llvm.or %6, %7 : i39 + "llvm.return"(%8) : (i39) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg3 : i39, %arg4 : i39): + %0 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 + %1 = llvm.and %arg4, %0 : i39 + %2 = llvm.add %arg3, %1 : i39 + "llvm.return"(%2) : (i39) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test4_before := [llvm| +{ +^0(%arg2 : i1023): + %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 + %1 = llvm.xor %0, %arg2 : i1023 + %2 = llvm.or %arg2, %1 : i1023 + "llvm.return"(%2) : (i1023) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg2 : i1023): + %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 + "llvm.return"(%0) : (i1023) -> () +} +] +theorem test4_proof : test4_before ⊑ test4_after := by + unfold test4_before test4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test4 + apply test4_thm + ---END test4 + + + +def test5_before := [llvm| +{ +^0(%arg0 : i399, %arg1 : i399): + %0 = "llvm.mlir.constant"() <{value = 274877906943 : i399}> : () -> i399 + %1 = "llvm.mlir.constant"() <{value = -1 : i399}> : () -> i399 + %2 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 + %3 = llvm.xor %0, %1 : i399 + %4 = llvm.and %arg1, %2 : i399 + %5 = llvm.add %arg0, %4 : i399 + %6 = llvm.and %5, %3 : i399 + %7 = llvm.and %arg0, %0 : i399 + %8 = llvm.or %6, %7 : i399 + "llvm.return"(%8) : (i399) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg0 : i399, %arg1 : i399): + %0 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 + %1 = llvm.and %arg1, %0 : i399 + %2 = llvm.add %arg0, %1 : i399 + "llvm.return"(%2) : (i399) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean new file mode 100644 index 000000000..84c8b8e3e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean @@ -0,0 +1,23 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthor_proof +theorem test1_thm (x : BitVec 23) : x ||| 8388607#23 ^^^ x = 8388607#23 := sorry + +theorem test2_thm (x x_1 : BitVec 39) : + x_1 + (x &&& 274877906944#39) &&& 274877906944#39 ||| x_1 &&& 274877906943#39 = x_1 + (x &&& 274877906944#39) := sorry + +theorem test4_thm (x : BitVec 1023) : + x ||| + 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 ^^^ + x = + 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 := sorry + +theorem test5_thm (x x_1 : BitVec 399) : + x_1 + (x &&& 18446742974197923840#399) &&& + 1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585711495839744#399 ||| + x_1 &&& 274877906943#399 = + x_1 + (x &&& 18446742974197923840#399) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean new file mode 100644 index 000000000..b75ee6e27 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean @@ -0,0 +1,76 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthrem2_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 gapinthrem2_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i333}> : () -> i333 + %1 = llvm.urem %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i333}> : () -> i333 + %1 = llvm.and %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 + simp_alive_case_bash + 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 = 111 : i499}> : () -> i499 + %2 = llvm.shl %0, %1 : i499 + %3 = llvm.urem %arg2, %2 : i499 + "llvm.return"(%3) : (i499) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 10633823966279326983230456482242756607 : i499}> : () -> i499 + %1 = llvm.and %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 + simp_alive_case_bash + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean new file mode 100644 index 000000000..fe79ad92a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean @@ -0,0 +1,13 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthrem2_proof +theorem test1_thm (x : BitVec 333) : x % 70368744177664#333 = x &&& 70368744177663#333 := sorry + +theorem test2_thm (x : BitVec 499) : + (Option.bind (if 499 % 2 ^ 499 ≤ 111 % 2 ^ 499 then none else some (4096#499 <<< (111 % 2 ^ 499))) fun a => + if a = 0#499 then none else some (x % a)) ⊑ + some (x &&& 10633823966279326983230456482242756607#499) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean new file mode 100644 index 000000000..edd513b41 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean @@ -0,0 +1,107 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthshifthsimplify_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 gapinthshifthsimplify_statements + +def test0_before := [llvm| +{ +^0(%arg6 : i41, %arg7 : i41, %arg8 : i41): + %0 = llvm.shl %arg6, %arg8 : i41 + %1 = llvm.shl %arg7, %arg8 : i41 + %2 = llvm.and %0, %1 : i41 + "llvm.return"(%2) : (i41) -> () +} +] +def test0_after := [llvm| +{ +^0(%arg6 : i41, %arg7 : i41, %arg8 : i41): + %0 = llvm.and %arg6, %arg7 : i41 + %1 = llvm.shl %0, %arg8 : i41 + "llvm.return"(%1) : (i41) -> () +} +] +theorem test0_proof : test0_before ⊑ test0_after := by + unfold test0_before test0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test0 + apply test0_thm + ---END test0 + + + +def test1_before := [llvm| +{ +^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): + %0 = llvm.lshr %arg3, %arg5 : i57 + %1 = llvm.lshr %arg4, %arg5 : i57 + %2 = llvm.or %0, %1 : i57 + "llvm.return"(%2) : (i57) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): + %0 = llvm.or %arg3, %arg4 : i57 + %1 = llvm.lshr %0, %arg5 : i57 + "llvm.return"(%1) : (i57) -> () +} +] +theorem test1_proof : test1_before ⊑ test1_after := by + unfold test1_before test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg0 : i49, %arg1 : i49, %arg2 : i49): + %0 = llvm.ashr %arg0, %arg2 : i49 + %1 = llvm.ashr %arg1, %arg2 : i49 + %2 = llvm.xor %0, %1 : i49 + "llvm.return"(%2) : (i49) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg0 : i49, %arg1 : i49, %arg2 : i49): + %0 = llvm.xor %arg0, %arg1 : i49 + %1 = llvm.ashr %0, %arg2 : 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 + simp_alive_case_bash + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean new file mode 100644 index 000000000..67a2586e8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean @@ -0,0 +1,21 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthshifthsimplify_proof +theorem test0_thm (x x_1 x_2 : BitVec 41) : + (Option.bind (if 41#41 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => + Option.bind (if 41#41 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a &&& a_1)) ⊑ + if 41#41 ≤ x_1 then none else some ((x_2 &&& x) <<< x_1.toNat) := sorry + +theorem test1_thm (x x_1 x_2 : BitVec 57) : + (Option.bind (if 57#57 ≤ x_1 then none else some (x_2 >>> x_1.toNat)) fun a => + Option.bind (if 57#57 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a_1 => some (a ||| a_1)) ⊑ + if 57#57 ≤ x_1 then none else some ((x_2 ||| x) >>> x_1.toNat) := sorry + +theorem test2_thm (x x_1 x_2 : BitVec 49) : + (Option.bind (if 49#49 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 49#49 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun a_1 => some (a ^^^ a_1)) ⊑ + if 49#49 ≤ x_1 then none else some ((x_2 ^^^ x).sshiftRight x_1.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean new file mode 100644 index 000000000..b0c2559a3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean @@ -0,0 +1,1018 @@ +import SSA.Projects.InstCombine.tests.proofs.gcanonicalizehashrhshlhtohmasking_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 gcanonicalizehashrhshlhtohmasking_statements + +def positive_samevar_before := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = llvm.ashr %arg62, %arg63 : i8 + %1 = llvm.shl %0, %arg63 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_after := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg63 overflow : i8 + %2 = llvm.and %1, %arg62 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_after := by + unfold positive_samevar_before positive_samevar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar + apply positive_samevar_thm + ---END positive_samevar + + + +def positive_sameconst_before := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg61, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_after := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg61, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameconst_after := by + unfold positive_sameconst_before positive_sameconst_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst + apply positive_sameconst_thm + ---END positive_sameconst + + + +def positive_biggerashr_before := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg60, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_after := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %2 = llvm.ashr %arg60, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerashr_proof : positive_biggerashr_before ⊑ positive_biggerashr_after := by + unfold positive_biggerashr_before positive_biggerashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr + apply positive_biggerashr_thm + ---END positive_biggerashr + + + +def positive_biggershl_before := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg59, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_after := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg59, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_biggershl_after := by + unfold positive_biggershl_before positive_biggershl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl + apply positive_biggershl_thm + ---END positive_biggershl + + + +def positive_samevar_shlnuw_before := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = llvm.ashr %arg57, %arg58 : i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_after := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + %2 = llvm.and %1, %arg57 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ positive_samevar_shlnuw_after := by + unfold positive_samevar_shlnuw_before positive_samevar_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuw + apply positive_samevar_shlnuw_thm + ---END positive_samevar_shlnuw + + + +def positive_sameconst_shlnuw_before := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg56, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_after := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg56, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ positive_sameconst_shlnuw_after := by + unfold positive_sameconst_shlnuw_before positive_sameconst_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuw + apply positive_sameconst_shlnuw_thm + ---END positive_sameconst_shlnuw + + + +def positive_biggerashr_shlnuw_before := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg55, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnuw_after := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %2 = llvm.ashr %arg55, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerashr_shlnuw_proof : positive_biggerashr_shlnuw_before ⊑ positive_biggerashr_shlnuw_after := by + unfold positive_biggerashr_shlnuw_before positive_biggerashr_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnuw + apply positive_biggerashr_shlnuw_thm + ---END positive_biggerashr_shlnuw + + + +def positive_biggershl_shlnuw_before := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg54, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_after := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg54, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ positive_biggershl_shlnuw_after := by + unfold positive_biggershl_shlnuw_before positive_biggershl_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuw + apply positive_biggershl_shlnuw_thm + ---END positive_biggershl_shlnuw + + + +def positive_samevar_shlnsw_before := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = llvm.ashr %arg52, %arg53 : i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_after := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + %2 = llvm.and %1, %arg52 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ positive_samevar_shlnsw_after := by + unfold positive_samevar_shlnsw_before positive_samevar_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnsw + apply positive_samevar_shlnsw_thm + ---END positive_samevar_shlnsw + + + +def positive_sameconst_shlnsw_before := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg51, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_after := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg51, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ positive_sameconst_shlnsw_after := by + unfold positive_sameconst_shlnsw_before positive_sameconst_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnsw + apply positive_sameconst_shlnsw_thm + ---END positive_sameconst_shlnsw + + + +def positive_biggerashr_shlnsw_before := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg50, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnsw_after := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %2 = llvm.ashr %arg50, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerashr_shlnsw_proof : positive_biggerashr_shlnsw_before ⊑ positive_biggerashr_shlnsw_after := by + unfold positive_biggerashr_shlnsw_before positive_biggerashr_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnsw + apply positive_biggerashr_shlnsw_thm + ---END positive_biggerashr_shlnsw + + + +def positive_biggershl_shlnsw_before := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg49, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_after := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg49, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ positive_biggershl_shlnsw_after := by + unfold positive_biggershl_shlnsw_before positive_biggershl_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnsw + apply positive_biggershl_shlnsw_thm + ---END positive_biggershl_shlnsw + + + +def positive_samevar_shlnuwnsw_before := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = llvm.ashr %arg47, %arg48 : i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_after := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + %2 = llvm.and %1, %arg47 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ positive_samevar_shlnuwnsw_after := by + unfold positive_samevar_shlnuwnsw_before positive_samevar_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuwnsw + apply positive_samevar_shlnuwnsw_thm + ---END positive_samevar_shlnuwnsw + + + +def positive_sameconst_shlnuwnsw_before := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg46, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_after := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg46, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before ⊑ positive_sameconst_shlnuwnsw_after := by + unfold positive_sameconst_shlnuwnsw_before positive_sameconst_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw + apply positive_sameconst_shlnuwnsw_thm + ---END positive_sameconst_shlnuwnsw + + + +def positive_biggerashr_shlnuwnsw_before := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg45, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnuwnsw_after := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %2 = llvm.ashr %arg45, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerashr_shlnuwnsw_proof : positive_biggerashr_shlnuwnsw_before ⊑ positive_biggerashr_shlnuwnsw_after := by + unfold positive_biggerashr_shlnuwnsw_before positive_biggerashr_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnuwnsw + apply positive_biggerashr_shlnuwnsw_thm + ---END positive_biggerashr_shlnuwnsw + + + +def positive_biggershl_shlnuwnsw_before := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg44, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_after := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = llvm.shl %arg44, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before ⊑ positive_biggershl_shlnuwnsw_after := by + unfold positive_biggershl_shlnuwnsw_before positive_biggershl_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw + apply positive_biggershl_shlnuwnsw_thm + ---END positive_biggershl_shlnuwnsw + + + +def positive_samevar_ashrexact_before := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + %0 = llvm.ashr %arg42, %arg43 : i8 + %1 = llvm.shl %0, %arg43 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_ashrexact_after := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + "llvm.return"(%arg42) : (i8) -> () +} +] +theorem positive_samevar_ashrexact_proof : positive_samevar_ashrexact_before ⊑ positive_samevar_ashrexact_after := by + unfold positive_samevar_ashrexact_before positive_samevar_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_ashrexact + apply positive_samevar_ashrexact_thm + ---END positive_samevar_ashrexact + + + +def positive_sameconst_ashrexact_before := [llvm| +{ +^0(%arg41 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg41, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_ashrexact_after := [llvm| +{ +^0(%arg41 : i8): + "llvm.return"(%arg41) : (i8) -> () +} +] +theorem positive_sameconst_ashrexact_proof : positive_sameconst_ashrexact_before ⊑ positive_sameconst_ashrexact_after := by + unfold positive_sameconst_ashrexact_before positive_sameconst_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_ashrexact + apply positive_sameconst_ashrexact_thm + ---END positive_sameconst_ashrexact + + + +def positive_biggerashr_ashrexact_before := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg40, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_ashrexact_after := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg40, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerashr_ashrexact_proof : positive_biggerashr_ashrexact_before ⊑ positive_biggerashr_ashrexact_after := by + unfold positive_biggerashr_ashrexact_before positive_biggerashr_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_ashrexact + apply positive_biggerashr_ashrexact_thm + ---END positive_biggerashr_ashrexact + + + +def positive_biggershl_ashrexact_before := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg39, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_ashrexact_after := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg39, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_ashrexact_proof : positive_biggershl_ashrexact_before ⊑ positive_biggershl_ashrexact_after := by + unfold positive_biggershl_ashrexact_before positive_biggershl_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_ashrexact + apply positive_biggershl_ashrexact_thm + ---END positive_biggershl_ashrexact + + + +def positive_samevar_shlnsw_ashrexact_before := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + %0 = llvm.ashr %arg37, %arg38 : i8 + %1 = llvm.shl %0, %arg38 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_ashrexact_after := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + "llvm.return"(%arg37) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_ashrexact_proof : positive_samevar_shlnsw_ashrexact_before ⊑ positive_samevar_shlnsw_ashrexact_after := by + unfold positive_samevar_shlnsw_ashrexact_before positive_samevar_shlnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnsw_ashrexact + apply positive_samevar_shlnsw_ashrexact_thm + ---END positive_samevar_shlnsw_ashrexact + + + +def positive_sameconst_shlnsw_ashrexact_before := [llvm| +{ +^0(%arg36 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg36, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_ashrexact_after := [llvm| +{ +^0(%arg36 : i8): + "llvm.return"(%arg36) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_ashrexact_proof : positive_sameconst_shlnsw_ashrexact_before ⊑ positive_sameconst_shlnsw_ashrexact_after := by + unfold positive_sameconst_shlnsw_ashrexact_before positive_sameconst_shlnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnsw_ashrexact + apply positive_sameconst_shlnsw_ashrexact_thm + ---END positive_sameconst_shlnsw_ashrexact + + + +def positive_biggerashr_shlnsw_ashrexact_before := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg35, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnsw_ashrexact_after := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg35, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerashr_shlnsw_ashrexact_proof : positive_biggerashr_shlnsw_ashrexact_before ⊑ positive_biggerashr_shlnsw_ashrexact_after := by + unfold positive_biggerashr_shlnsw_ashrexact_before positive_biggerashr_shlnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnsw_ashrexact + apply positive_biggerashr_shlnsw_ashrexact_thm + ---END positive_biggerashr_shlnsw_ashrexact + + + +def positive_biggershl_shlnsw_ashrexact_before := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg34, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_ashrexact_after := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg34, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_ashrexact_proof : positive_biggershl_shlnsw_ashrexact_before ⊑ positive_biggershl_shlnsw_ashrexact_after := by + unfold positive_biggershl_shlnsw_ashrexact_before positive_biggershl_shlnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnsw_ashrexact + apply positive_biggershl_shlnsw_ashrexact_thm + ---END positive_biggershl_shlnsw_ashrexact + + + +def positive_samevar_shlnuw_ashrexact_before := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + %0 = llvm.ashr %arg32, %arg33 : i8 + %1 = llvm.shl %0, %arg33 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_ashrexact_after := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + "llvm.return"(%arg32) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_ashrexact_proof : positive_samevar_shlnuw_ashrexact_before ⊑ positive_samevar_shlnuw_ashrexact_after := by + unfold positive_samevar_shlnuw_ashrexact_before positive_samevar_shlnuw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuw_ashrexact + apply positive_samevar_shlnuw_ashrexact_thm + ---END positive_samevar_shlnuw_ashrexact + + + +def positive_sameconst_shlnuw_ashrexact_before := [llvm| +{ +^0(%arg31 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg31, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_ashrexact_after := [llvm| +{ +^0(%arg31 : i8): + "llvm.return"(%arg31) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_ashrexact_proof : positive_sameconst_shlnuw_ashrexact_before ⊑ positive_sameconst_shlnuw_ashrexact_after := by + unfold positive_sameconst_shlnuw_ashrexact_before positive_sameconst_shlnuw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuw_ashrexact + apply positive_sameconst_shlnuw_ashrexact_thm + ---END positive_sameconst_shlnuw_ashrexact + + + +def positive_biggerashr_shlnuw_ashrexact_before := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg30, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnuw_ashrexact_after := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg30, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerashr_shlnuw_ashrexact_proof : positive_biggerashr_shlnuw_ashrexact_before ⊑ positive_biggerashr_shlnuw_ashrexact_after := by + unfold positive_biggerashr_shlnuw_ashrexact_before positive_biggerashr_shlnuw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnuw_ashrexact + apply positive_biggerashr_shlnuw_ashrexact_thm + ---END positive_biggerashr_shlnuw_ashrexact + + + +def positive_biggershl_shlnuw_ashrexact_before := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg29, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_ashrexact_after := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg29, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_ashrexact_proof : positive_biggershl_shlnuw_ashrexact_before ⊑ positive_biggershl_shlnuw_ashrexact_after := by + unfold positive_biggershl_shlnuw_ashrexact_before positive_biggershl_shlnuw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuw_ashrexact + apply positive_biggershl_shlnuw_ashrexact_thm + ---END positive_biggershl_shlnuw_ashrexact + + + +def positive_samevar_shlnuwnsw_ashrexact_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = llvm.ashr %arg27, %arg28 : i8 + %1 = llvm.shl %0, %arg28 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_ashrexact_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + "llvm.return"(%arg27) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_ashrexact_proof : positive_samevar_shlnuwnsw_ashrexact_before ⊑ positive_samevar_shlnuwnsw_ashrexact_after := by + unfold positive_samevar_shlnuwnsw_ashrexact_before positive_samevar_shlnuwnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuwnsw_ashrexact + apply positive_samevar_shlnuwnsw_ashrexact_thm + ---END positive_samevar_shlnuwnsw_ashrexact + + + +def positive_sameconst_shlnuwnsw_ashrexact_before := [llvm| +{ +^0(%arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg26, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_ashrexact_after := [llvm| +{ +^0(%arg26 : i8): + "llvm.return"(%arg26) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_ashrexact_proof : positive_sameconst_shlnuwnsw_ashrexact_before ⊑ positive_sameconst_shlnuwnsw_ashrexact_after := by + unfold positive_sameconst_shlnuwnsw_ashrexact_before positive_sameconst_shlnuwnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw_ashrexact + apply positive_sameconst_shlnuwnsw_ashrexact_thm + ---END positive_sameconst_shlnuwnsw_ashrexact + + + +def positive_biggerashr_shlnuwnsw_ashrexact_before := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.ashr %arg25, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerashr_shlnuwnsw_ashrexact_after := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg25, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerashr_shlnuwnsw_ashrexact_proof : positive_biggerashr_shlnuwnsw_ashrexact_before ⊑ positive_biggerashr_shlnuwnsw_ashrexact_after := by + unfold positive_biggerashr_shlnuwnsw_ashrexact_before positive_biggerashr_shlnuwnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerashr_shlnuwnsw_ashrexact + apply positive_biggerashr_shlnuwnsw_ashrexact_thm + ---END positive_biggerashr_shlnuwnsw_ashrexact + + + +def positive_biggershl_shlnuwnsw_ashrexact_before := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.ashr %arg24, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_ashrexact_after := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg24, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_ashrexact_proof : positive_biggershl_shlnuwnsw_ashrexact_before ⊑ positive_biggershl_shlnuwnsw_ashrexact_after := by + unfold positive_biggershl_shlnuwnsw_ashrexact_before positive_biggershl_shlnuwnsw_ashrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw_ashrexact + apply positive_biggershl_shlnuwnsw_ashrexact_thm + ---END positive_biggershl_shlnuwnsw_ashrexact + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean new file mode 100644 index 000000000..18407b4d4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean @@ -0,0 +1,146 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gcanonicalizehashrhshlhtohmasking_proof +theorem positive_samevar_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_thm (x : BitVec 8) : x.sshiftRight 3 <<< 3 = x &&& 248#8 := sorry + +theorem positive_biggerashr_thm (x : BitVec 8) : x.sshiftRight 6 <<< 3 = x.sshiftRight 3 &&& 248#8 := sorry + +theorem positive_biggershl_thm (x : BitVec 8) : x.sshiftRight 3 <<< 6 = x <<< 3 &&& 192#8 := sorry + +theorem positive_samevar_shlnuw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuw_thm (x : BitVec 8) : + (if x.sshiftRight 3 <<< 3 >>> 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ + some (x &&& 248#8) := sorry + +theorem positive_biggerashr_shlnuw_thm (x : BitVec 8) : + (if x.sshiftRight 6 <<< 3 >>> 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3 &&& 248#8) := sorry + +theorem positive_biggershl_shlnuw_thm (x : BitVec 8) : + (if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry + +theorem positive_samevar_shlnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 3).sshiftRight 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ + some (x &&& 248#8) := sorry + +theorem positive_biggerashr_shlnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 6 <<< 3).sshiftRight 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3 &&& 248#8) := sorry + +theorem positive_biggershl_shlnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry + +theorem positive_samevar_shlnuwnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuwnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 3).sshiftRight 3 = x.sshiftRight 3 then none + else if x.sshiftRight 3 <<< 3 >>> 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ + some (x &&& 248#8) := sorry + +theorem positive_biggerashr_shlnuwnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 6 <<< 3).sshiftRight 3 = x.sshiftRight 6 then none + else if x.sshiftRight 6 <<< 3 >>> 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3 &&& 248#8) := sorry + +theorem positive_biggershl_shlnuwnsw_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none + else if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => + some (a &&& 64#8) := sorry + +theorem positive_samevar_ashrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_ashrexact_thm (x : BitVec 8) : x.sshiftRight 3 <<< 3 = x := sorry + +theorem positive_biggerashr_ashrexact_thm (x : BitVec 8) : x.sshiftRight 6 <<< 3 = x.sshiftRight 3 := sorry + +theorem positive_biggershl_ashrexact_thm (x : BitVec 8) : x.sshiftRight 3 <<< 6 = x <<< 3 := sorry + +theorem positive_samevar_shlnsw_ashrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 3).sshiftRight 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ + some x := sorry + +theorem positive_biggerashr_shlnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 6 <<< 3).sshiftRight 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3) := sorry + +theorem positive_biggershl_shlnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuw_ashrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuw_ashrexact_thm (x : BitVec 8) : + (if x.sshiftRight 3 <<< 3 >>> 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ some x := sorry + +theorem positive_biggerashr_shlnuw_ashrexact_thm (x : BitVec 8) : + (if x.sshiftRight 6 <<< 3 >>> 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3) := sorry + +theorem positive_biggershl_shlnuw_ashrexact_thm (x : BitVec 8) : + (if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuwnsw_ashrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuwnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 3).sshiftRight 3 = x.sshiftRight 3 then none + else if x.sshiftRight 3 <<< 3 >>> 3 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 3)) ⊑ + some x := sorry + +theorem positive_biggerashr_shlnuwnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 6 <<< 3).sshiftRight 3 = x.sshiftRight 6 then none + else if x.sshiftRight 6 <<< 3 >>> 3 = x.sshiftRight 6 then none else some (x.sshiftRight 6 <<< 3)) ⊑ + some (x.sshiftRight 3) := sorry + +theorem positive_biggershl_shlnuwnsw_ashrexact_thm (x : BitVec 8) : + (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none + else if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean new file mode 100644 index 000000000..0e2c5487f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean @@ -0,0 +1,1018 @@ +import SSA.Projects.InstCombine.tests.proofs.gcanonicalizehlshrhshlhtohmasking_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 gcanonicalizehlshrhshlhtohmasking_statements + +def positive_samevar_before := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = llvm.lshr %arg62, %arg63 : i8 + %1 = llvm.shl %0, %arg63 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_after := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg63 overflow : i8 + %2 = llvm.and %1, %arg62 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_after := by + unfold positive_samevar_before positive_samevar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar + apply positive_samevar_thm + ---END positive_samevar + + + +def positive_sameconst_before := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg61, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_after := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg61, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameconst_after := by + unfold positive_sameconst_before positive_sameconst_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst + all_goals (try extract_goal ; sorry) + ---END positive_sameconst + + + +def positive_biggerlshr_before := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg60, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_after := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg60, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_proof : positive_biggerlshr_before ⊑ positive_biggerlshr_after := by + unfold positive_biggerlshr_before positive_biggerlshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr + apply positive_biggerlshr_thm + ---END positive_biggerlshr + + + +def positive_biggershl_before := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg59, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_after := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg59, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_biggershl_after := by + unfold positive_biggershl_before positive_biggershl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl + apply positive_biggershl_thm + ---END positive_biggershl + + + +def positive_samevar_shlnuw_before := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = llvm.lshr %arg57, %arg58 : i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_after := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + %2 = llvm.and %1, %arg57 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ positive_samevar_shlnuw_after := by + unfold positive_samevar_shlnuw_before positive_samevar_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuw + apply positive_samevar_shlnuw_thm + ---END positive_samevar_shlnuw + + + +def positive_sameconst_shlnuw_before := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg56, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_after := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg56, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ positive_sameconst_shlnuw_after := by + unfold positive_sameconst_shlnuw_before positive_sameconst_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuw + apply positive_sameconst_shlnuw_thm + ---END positive_sameconst_shlnuw + + + +def positive_biggerlshr_shlnuw_before := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg55, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuw_after := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg55, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuw_proof : positive_biggerlshr_shlnuw_before ⊑ positive_biggerlshr_shlnuw_after := by + unfold positive_biggerlshr_shlnuw_before positive_biggerlshr_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnuw + apply positive_biggerlshr_shlnuw_thm + ---END positive_biggerlshr_shlnuw + + + +def positive_biggershl_shlnuw_before := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg54, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_after := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg54, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ positive_biggershl_shlnuw_after := by + unfold positive_biggershl_shlnuw_before positive_biggershl_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuw + apply positive_biggershl_shlnuw_thm + ---END positive_biggershl_shlnuw + + + +def positive_samevar_shlnsw_before := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = llvm.lshr %arg52, %arg53 : i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_after := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + %2 = llvm.and %1, %arg52 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ positive_samevar_shlnsw_after := by + unfold positive_samevar_shlnsw_before positive_samevar_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnsw + apply positive_samevar_shlnsw_thm + ---END positive_samevar_shlnsw + + + +def positive_sameconst_shlnsw_before := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg51, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_after := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg51, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ positive_sameconst_shlnsw_after := by + unfold positive_sameconst_shlnsw_before positive_sameconst_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnsw + apply positive_sameconst_shlnsw_thm + ---END positive_sameconst_shlnsw + + + +def positive_biggerlshr_shlnsw_before := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg50, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnsw_after := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg50, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnsw_proof : positive_biggerlshr_shlnsw_before ⊑ positive_biggerlshr_shlnsw_after := by + unfold positive_biggerlshr_shlnsw_before positive_biggerlshr_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnsw + apply positive_biggerlshr_shlnsw_thm + ---END positive_biggerlshr_shlnsw + + + +def positive_biggershl_shlnsw_before := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg49, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_after := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = llvm.shl %arg49, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ positive_biggershl_shlnsw_after := by + unfold positive_biggershl_shlnsw_before positive_biggershl_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnsw + apply positive_biggershl_shlnsw_thm + ---END positive_biggershl_shlnsw + + + +def positive_samevar_shlnuwnsw_before := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = llvm.lshr %arg47, %arg48 : i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_after := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + %2 = llvm.and %1, %arg47 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ positive_samevar_shlnuwnsw_after := by + unfold positive_samevar_shlnuwnsw_before positive_samevar_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuwnsw + apply positive_samevar_shlnuwnsw_thm + ---END positive_samevar_shlnuwnsw + + + +def positive_sameconst_shlnuwnsw_before := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg46, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_after := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg46, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before ⊑ positive_sameconst_shlnuwnsw_after := by + unfold positive_sameconst_shlnuwnsw_before positive_sameconst_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw + apply positive_sameconst_shlnuwnsw_thm + ---END positive_sameconst_shlnuwnsw + + + +def positive_biggerlshr_shlnuwnsw_before := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg45, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuwnsw_after := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg45, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuwnsw_proof : positive_biggerlshr_shlnuwnsw_before ⊑ positive_biggerlshr_shlnuwnsw_after := by + unfold positive_biggerlshr_shlnuwnsw_before positive_biggerlshr_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnuwnsw + apply positive_biggerlshr_shlnuwnsw_thm + ---END positive_biggerlshr_shlnuwnsw + + + +def positive_biggershl_shlnuwnsw_before := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg44, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_after := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = llvm.shl %arg44, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before ⊑ positive_biggershl_shlnuwnsw_after := by + unfold positive_biggershl_shlnuwnsw_before positive_biggershl_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw + apply positive_biggershl_shlnuwnsw_thm + ---END positive_biggershl_shlnuwnsw + + + +def positive_samevar_lshrexact_before := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + %0 = llvm.lshr %arg42, %arg43 : i8 + %1 = llvm.shl %0, %arg43 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_lshrexact_after := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + "llvm.return"(%arg42) : (i8) -> () +} +] +theorem positive_samevar_lshrexact_proof : positive_samevar_lshrexact_before ⊑ positive_samevar_lshrexact_after := by + unfold positive_samevar_lshrexact_before positive_samevar_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_lshrexact + apply positive_samevar_lshrexact_thm + ---END positive_samevar_lshrexact + + + +def positive_sameconst_lshrexact_before := [llvm| +{ +^0(%arg41 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg41, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_lshrexact_after := [llvm| +{ +^0(%arg41 : i8): + "llvm.return"(%arg41) : (i8) -> () +} +] +theorem positive_sameconst_lshrexact_proof : positive_sameconst_lshrexact_before ⊑ positive_sameconst_lshrexact_after := by + unfold positive_sameconst_lshrexact_before positive_sameconst_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_lshrexact + apply positive_sameconst_lshrexact_thm + ---END positive_sameconst_lshrexact + + + +def positive_biggerlshr_lshrexact_before := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg40, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_lshrexact_after := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg40, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_lshrexact_proof : positive_biggerlshr_lshrexact_before ⊑ positive_biggerlshr_lshrexact_after := by + unfold positive_biggerlshr_lshrexact_before positive_biggerlshr_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_lshrexact + apply positive_biggerlshr_lshrexact_thm + ---END positive_biggerlshr_lshrexact + + + +def positive_biggershl_lshrexact_before := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg39, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_lshrexact_after := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg39, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_lshrexact_proof : positive_biggershl_lshrexact_before ⊑ positive_biggershl_lshrexact_after := by + unfold positive_biggershl_lshrexact_before positive_biggershl_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_lshrexact + apply positive_biggershl_lshrexact_thm + ---END positive_biggershl_lshrexact + + + +def positive_samevar_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + %0 = llvm.lshr %arg37, %arg38 : i8 + %1 = llvm.shl %0, %arg38 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + "llvm.return"(%arg37) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_lshrexact_proof : positive_samevar_shlnsw_lshrexact_before ⊑ positive_samevar_shlnsw_lshrexact_after := by + unfold positive_samevar_shlnsw_lshrexact_before positive_samevar_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnsw_lshrexact + apply positive_samevar_shlnsw_lshrexact_thm + ---END positive_samevar_shlnsw_lshrexact + + + +def positive_sameconst_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg36 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg36, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg36 : i8): + "llvm.return"(%arg36) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_lshrexact_proof : positive_sameconst_shlnsw_lshrexact_before ⊑ positive_sameconst_shlnsw_lshrexact_after := by + unfold positive_sameconst_shlnsw_lshrexact_before positive_sameconst_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnsw_lshrexact + apply positive_sameconst_shlnsw_lshrexact_thm + ---END positive_sameconst_shlnsw_lshrexact + + + +def positive_biggerlshr_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg35, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg35, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnsw_lshrexact_proof : positive_biggerlshr_shlnsw_lshrexact_before ⊑ positive_biggerlshr_shlnsw_lshrexact_after := by + unfold positive_biggerlshr_shlnsw_lshrexact_before positive_biggerlshr_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnsw_lshrexact + apply positive_biggerlshr_shlnsw_lshrexact_thm + ---END positive_biggerlshr_shlnsw_lshrexact + + + +def positive_biggershl_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg34, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg34, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_lshrexact_proof : positive_biggershl_shlnsw_lshrexact_before ⊑ positive_biggershl_shlnsw_lshrexact_after := by + unfold positive_biggershl_shlnsw_lshrexact_before positive_biggershl_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnsw_lshrexact + apply positive_biggershl_shlnsw_lshrexact_thm + ---END positive_biggershl_shlnsw_lshrexact + + + +def positive_samevar_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + %0 = llvm.lshr %arg32, %arg33 : i8 + %1 = llvm.shl %0, %arg33 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + "llvm.return"(%arg32) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_lshrexact_proof : positive_samevar_shlnuw_lshrexact_before ⊑ positive_samevar_shlnuw_lshrexact_after := by + unfold positive_samevar_shlnuw_lshrexact_before positive_samevar_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuw_lshrexact + apply positive_samevar_shlnuw_lshrexact_thm + ---END positive_samevar_shlnuw_lshrexact + + + +def positive_sameconst_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg31 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg31, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg31 : i8): + "llvm.return"(%arg31) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_lshrexact_proof : positive_sameconst_shlnuw_lshrexact_before ⊑ positive_sameconst_shlnuw_lshrexact_after := by + unfold positive_sameconst_shlnuw_lshrexact_before positive_sameconst_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuw_lshrexact + apply positive_sameconst_shlnuw_lshrexact_thm + ---END positive_sameconst_shlnuw_lshrexact + + + +def positive_biggerlshr_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg30, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg30, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuw_lshrexact_proof : positive_biggerlshr_shlnuw_lshrexact_before ⊑ positive_biggerlshr_shlnuw_lshrexact_after := by + unfold positive_biggerlshr_shlnuw_lshrexact_before positive_biggerlshr_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnuw_lshrexact + apply positive_biggerlshr_shlnuw_lshrexact_thm + ---END positive_biggerlshr_shlnuw_lshrexact + + + +def positive_biggershl_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg29, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg29, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_lshrexact_proof : positive_biggershl_shlnuw_lshrexact_before ⊑ positive_biggershl_shlnuw_lshrexact_after := by + unfold positive_biggershl_shlnuw_lshrexact_before positive_biggershl_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuw_lshrexact + apply positive_biggershl_shlnuw_lshrexact_thm + ---END positive_biggershl_shlnuw_lshrexact + + + +def positive_samevar_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = llvm.lshr %arg27, %arg28 : i8 + %1 = llvm.shl %0, %arg28 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + "llvm.return"(%arg27) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_lshrexact_proof : positive_samevar_shlnuwnsw_lshrexact_before ⊑ positive_samevar_shlnuwnsw_lshrexact_after := by + unfold positive_samevar_shlnuwnsw_lshrexact_before positive_samevar_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_samevar_shlnuwnsw_lshrexact + apply positive_samevar_shlnuwnsw_lshrexact_thm + ---END positive_samevar_shlnuwnsw_lshrexact + + + +def positive_sameconst_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg26, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg26 : i8): + "llvm.return"(%arg26) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_lshrexact_proof : positive_sameconst_shlnuwnsw_lshrexact_before ⊑ positive_sameconst_shlnuwnsw_lshrexact_after := by + unfold positive_sameconst_shlnuwnsw_lshrexact_before positive_sameconst_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw_lshrexact + apply positive_sameconst_shlnuwnsw_lshrexact_thm + ---END positive_sameconst_shlnuwnsw_lshrexact + + + +def positive_biggerlshr_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg25, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg25, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuwnsw_lshrexact_proof : positive_biggerlshr_shlnuwnsw_lshrexact_before ⊑ positive_biggerlshr_shlnuwnsw_lshrexact_after := by + unfold positive_biggerlshr_shlnuwnsw_lshrexact_before positive_biggerlshr_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggerlshr_shlnuwnsw_lshrexact + apply positive_biggerlshr_shlnuwnsw_lshrexact_thm + ---END positive_biggerlshr_shlnuwnsw_lshrexact + + + +def positive_biggershl_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg24, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg24, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_lshrexact_proof : positive_biggershl_shlnuwnsw_lshrexact_before ⊑ positive_biggershl_shlnuwnsw_lshrexact_after := by + unfold positive_biggershl_shlnuwnsw_lshrexact_before positive_biggershl_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw_lshrexact + apply positive_biggershl_shlnuwnsw_lshrexact_thm + ---END positive_biggershl_shlnuwnsw_lshrexact + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean new file mode 100644 index 000000000..5594096e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean @@ -0,0 +1,138 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gcanonicalizehlshrhshlhtohmasking_proof +theorem positive_samevar_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_biggerlshr_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 &&& 24#8 := sorry + +theorem positive_biggershl_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 &&& 192#8 := sorry + +theorem positive_samevar_shlnuw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuw_thm (x : BitVec 8) : + (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnuw_thm (x : BitVec 8) : + (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnuw_thm (x : BitVec 8) : + (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry + +theorem positive_samevar_shlnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnsw_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnsw_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnsw_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => + some (a &&& 64#8) := sorry + +theorem positive_samevar_shlnuwnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuwnsw_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none + else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ + some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnuwnsw_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none + else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ + some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnuwnsw_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none + else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => + some (a &&& 64#8) := sorry + +theorem positive_samevar_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_lshrexact_thm (x : BitVec 8) : x &&& 248#8 = x := sorry + +theorem positive_biggerlshr_lshrexact_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 := sorry + +theorem positive_biggershl_lshrexact_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 := sorry + +theorem positive_samevar_shlnsw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry + +theorem positive_biggerlshr_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry + +theorem positive_biggershl_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry + +theorem positive_biggerlshr_shlnuw_lshrexact_thm (x : BitVec 8) : + (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry + +theorem positive_biggershl_shlnuw_lshrexact_thm (x : BitVec 8) : + (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuwnsw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none + else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ + some x := sorry + +theorem positive_biggerlshr_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none + else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ + some (x >>> 3) := sorry + +theorem positive_biggershl_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none + else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean new file mode 100644 index 000000000..1966b2573 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean @@ -0,0 +1,204 @@ +import SSA.Projects.InstCombine.tests.proofs.gdistribute_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 gdistribute_statements + +def factorize_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.or %arg9, %0 : i32 + %3 = llvm.or %arg9, %1 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def factorize_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + "llvm.return"(%arg9) : (i32) -> () +} +] +theorem factorize_proof : factorize_before ⊑ factorize_after := by + unfold factorize_before factorize_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN factorize + apply factorize_thm + ---END factorize + + + +def factorize2_before := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %0, %arg8 : i32 + %3 = llvm.mul %1, %arg8 : i32 + %4 = llvm.sub %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def factorize2_after := [llvm| +{ +^0(%arg8 : i32): + "llvm.return"(%arg8) : (i32) -> () +} +] +theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by + unfold factorize2_before factorize2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN factorize2 + apply factorize2_thm + ---END factorize2 + + + +def factorize3_before := [llvm| +{ +^0(%arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = llvm.or %arg6, %arg7 : i32 + %1 = llvm.or %arg5, %0 : i32 + %2 = llvm.or %arg5, %arg7 : i32 + %3 = llvm.and %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def factorize3_after := [llvm| +{ +^0(%arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = llvm.or %arg5, %arg7 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by + unfold factorize3_before factorize3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN factorize3 + apply factorize3_thm + ---END factorize3 + + + +def factorize4_before := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %arg4, %0 : i32 + %2 = llvm.mul %1, %arg3 : i32 + %3 = llvm.mul %arg3, %arg4 : i32 + %4 = llvm.sub %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def factorize4_after := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32): + %0 = llvm.mul %arg4, %arg3 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by + unfold factorize4_before factorize4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN factorize4 + apply factorize4_thm + ---END factorize4 + + + +def factorize5_before := [llvm| +{ +^0(%arg1 : i32, %arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.mul %arg2, %0 : i32 + %2 = llvm.mul %1, %arg1 : i32 + %3 = llvm.mul %arg1, %arg2 : i32 + %4 = llvm.sub %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def factorize5_after := [llvm| +{ +^0(%arg1 : i32, %arg2 : i32): + %0 = llvm.mul %arg2, %arg1 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by + unfold factorize5_before factorize5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN factorize5 + apply factorize5_thm + ---END factorize5 + + + +def expand_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.and %arg0, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = llvm.and %3, %0 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def expand_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem expand_proof : expand_before ⊑ expand_after := by + unfold expand_before expand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN expand + apply expand_thm + ---END expand + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdistribute_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gdistribute_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gdistribute_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gdistribute_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean new file mode 100644 index 000000000..842af1449 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean @@ -0,0 +1,296 @@ +import SSA.Projects.InstCombine.tests.proofs.gdivhshift_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 gdivhshift_statements + +def t7_before := [llvm| +{ +^0(%arg209 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg209, %0 overflow : i32 + %2 = llvm.sdiv %1, %arg209 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def t7_after := [llvm| +{ +^0(%arg209 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem t7_proof : t7_before ⊑ t7_after := by + unfold t7_before t7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t7 + apply t7_thm + ---END t7 + + + +def t10_before := [llvm| +{ +^0(%arg205 : i32, %arg206 : i32): + %0 = llvm.shl %arg205, %arg206 overflow : i32 + %1 = llvm.sdiv %0, %arg205 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def t10_after := [llvm| +{ +^0(%arg205 : i32, %arg206 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg206 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem t10_proof : t10_before ⊑ t10_after := by + unfold t10_before t10_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t10 + apply t10_thm + ---END t10 + + + +def sdiv_mul_shl_nsw_before := [llvm| +{ +^0(%arg193 : i5, %arg194 : i5, %arg195 : i5): + %0 = llvm.mul %arg193, %arg194 overflow : i5 + %1 = llvm.shl %arg193, %arg195 overflow : i5 + %2 = llvm.sdiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_mul_shl_nsw_after := [llvm| +{ +^0(%arg193 : i5, %arg194 : i5, %arg195 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg195 overflow : i5 + %2 = llvm.sdiv %arg194, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem sdiv_mul_shl_nsw_proof : sdiv_mul_shl_nsw_before ⊑ sdiv_mul_shl_nsw_after := by + unfold sdiv_mul_shl_nsw_before sdiv_mul_shl_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_mul_shl_nsw + apply sdiv_mul_shl_nsw_thm + ---END sdiv_mul_shl_nsw + + + +def sdiv_mul_shl_nsw_exact_commute1_before := [llvm| +{ +^0(%arg190 : i5, %arg191 : i5, %arg192 : i5): + %0 = llvm.mul %arg191, %arg190 overflow : i5 + %1 = llvm.shl %arg190, %arg192 overflow : i5 + %2 = llvm.sdiv %0, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sdiv_mul_shl_nsw_exact_commute1_after := [llvm| +{ +^0(%arg190 : i5, %arg191 : i5, %arg192 : i5): + %0 = "llvm.mlir.constant"() <{value = 1 : i5}> : () -> i5 + %1 = llvm.shl %0, %arg192 overflow : i5 + %2 = llvm.sdiv %arg191, %1 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_before ⊑ sdiv_mul_shl_nsw_exact_commute1_after := by + unfold sdiv_mul_shl_nsw_exact_commute1_before sdiv_mul_shl_nsw_exact_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_mul_shl_nsw_exact_commute1 + apply sdiv_mul_shl_nsw_exact_commute1_thm + ---END sdiv_mul_shl_nsw_exact_commute1 + + + +def sdiv_shl_shl_nsw2_nuw_before := [llvm| +{ +^0(%arg82 : i8, %arg83 : i8, %arg84 : i8): + %0 = llvm.shl %arg82, %arg84 overflow : i8 + %1 = llvm.shl %arg83, %arg84 overflow : i8 + %2 = llvm.sdiv %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sdiv_shl_shl_nsw2_nuw_after := [llvm| +{ +^0(%arg82 : i8, %arg83 : i8, %arg84 : i8): + %0 = llvm.sdiv %arg82, %arg83 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_shl_nsw2_nuw_after := by + unfold sdiv_shl_shl_nsw2_nuw_before sdiv_shl_shl_nsw2_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_shl_shl_nsw2_nuw + apply sdiv_shl_shl_nsw2_nuw_thm + ---END sdiv_shl_shl_nsw2_nuw + + + +def sdiv_shl_pair_const_before := [llvm| +{ +^0(%arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.shl %arg47, %0 overflow : i32 + %3 = llvm.shl %arg47, %1 overflow : i32 + %4 = llvm.sdiv %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def sdiv_shl_pair_const_after := [llvm| +{ +^0(%arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair_const_after := by + unfold sdiv_shl_pair_const_before sdiv_shl_pair_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_shl_pair_const + apply sdiv_shl_pair_const_thm + ---END sdiv_shl_pair_const + + + +def sdiv_shl_pair1_before := [llvm| +{ +^0(%arg43 : i32, %arg44 : i32, %arg45 : i32): + %0 = llvm.shl %arg43, %arg44 overflow : i32 + %1 = llvm.shl %arg43, %arg45 overflow : i32 + %2 = llvm.sdiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sdiv_shl_pair1_after := [llvm| +{ +^0(%arg43 : i32, %arg44 : i32, %arg45 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg44 overflow : i32 + %2 = llvm.lshr %1, %arg45 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sdiv_shl_pair1_proof : sdiv_shl_pair1_before ⊑ sdiv_shl_pair1_after := by + unfold sdiv_shl_pair1_before sdiv_shl_pair1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_shl_pair1 + apply sdiv_shl_pair1_thm + ---END sdiv_shl_pair1 + + + +def sdiv_shl_pair2_before := [llvm| +{ +^0(%arg40 : i32, %arg41 : i32, %arg42 : i32): + %0 = llvm.shl %arg40, %arg41 overflow : i32 + %1 = llvm.shl %arg40, %arg42 overflow : i32 + %2 = llvm.sdiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sdiv_shl_pair2_after := [llvm| +{ +^0(%arg40 : i32, %arg41 : i32, %arg42 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg41 overflow : i32 + %2 = llvm.lshr %1, %arg42 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sdiv_shl_pair2_proof : sdiv_shl_pair2_before ⊑ sdiv_shl_pair2_after := by + unfold sdiv_shl_pair2_before sdiv_shl_pair2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_shl_pair2 + apply sdiv_shl_pair2_thm + ---END sdiv_shl_pair2 + + + +def sdiv_shl_pair3_before := [llvm| +{ +^0(%arg37 : i32, %arg38 : i32, %arg39 : i32): + %0 = llvm.shl %arg37, %arg38 overflow : i32 + %1 = llvm.shl %arg37, %arg39 overflow : i32 + %2 = llvm.sdiv %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sdiv_shl_pair3_after := [llvm| +{ +^0(%arg37 : i32, %arg38 : i32, %arg39 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg38 overflow : i32 + %2 = llvm.lshr %1, %arg39 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := by + unfold sdiv_shl_pair3_before sdiv_shl_pair3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv_shl_pair3 + apply sdiv_shl_pair3_thm + ---END sdiv_shl_pair3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean new file mode 100644 index 000000000..4dad1db4a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean @@ -0,0 +1,101 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gdivhshift_proof +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)) ⊑ + some 4#32 := sorry + +theorem t10_thm (x x_1 : BitVec 32) : + ((if (x_1 <<< x.toNat).sshiftRight 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 ∨ a = intMin 32 ∧ x_1 = 4294967295#32 then none else some (a.sdiv x_1)) ⊑ + if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + 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 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) ∨ + twoPow 10 4 ≤ signExtend 10 x_2 * signExtend 10 x_1 then + none + else some (x_2 * x_1)).bind + fun a => + (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none + else if 5#5 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun a_1 => if a_1 = 0#5 ∨ a = intMin 5 ∧ a_1 = 31#5 then none else some (a.sdiv a_1)) ⊑ + (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 a => + if a = 0#5 ∨ x_1 = intMin 5 ∧ a = 31#5 then none else some (x_1.sdiv a) := sorry + +theorem sdiv_mul_shl_nsw_exact_commute1_thm (x x_1 x_2 : BitVec 5) : + ((if + signExtend 10 x_2 * signExtend 10 x_1 < signExtend 10 (twoPow 5 4) ∨ + twoPow 10 4 ≤ signExtend 10 x_2 * signExtend 10 x_1 then + none + else some (x_2 * x_1)).bind + fun a => + (if (x_1 <<< x.toNat).sshiftRight x.toNat = x_1 then none + else if 5#5 ≤ x then none else some (x_1 <<< x.toNat)).bind + fun a_1 => if a_1 = 0#5 ∨ a = intMin 5 ∧ a_1 = 31#5 then none else some (a.sdiv a_1)) ⊑ + (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 a => + if a = 0#5 ∨ x_2 = intMin 5 ∧ a = 31#5 then none else some (x_2.sdiv a) := 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 + fun a => + (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none + else + if x <<< x_1.toNat >>> x_1.toNat = x then none else if 8#8 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => if a_1 = 0#8 ∨ a = intMin 8 ∧ a_1 = 255#8 then none else some (a.sdiv a_1)) ⊑ + if x = 0#8 ∨ x_2 = intMin 8 ∧ x = 255#8 then none else some (x_2.sdiv 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 a_1 => + if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + 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 + 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 a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + (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 sdiv_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).sshiftRight x.toNat = x_2 then none + else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + (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 sdiv_shl_pair3_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 + fun a => + (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none + else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind + fun a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + (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/gearly_constfold_changes_IR.lean b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean new file mode 100644 index 000000000..5a4e77b7b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.gearly_constfold_changes_IR_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 gearly_constfold_changes_IR_statements + +def foo_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.or %0, %1 : i32 + %3 = llvm.and %arg0, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def foo_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem foo_proof : foo_before ⊑ foo_after := by + unfold foo_before foo_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN foo + all_goals (try extract_goal ; sorry) + ---END foo + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean new file mode 100644 index 000000000..810e83af1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean @@ -0,0 +1,6 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gearly_constfold_changes_IR_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean new file mode 100644 index 000000000..842620e35 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.gfoldhsubhofhnothtohinchofhadd_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 gfoldhsubhofhnothtohinchofhadd_statements + +def p0_scalar_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg14, %0 : i32 + %2 = llvm.sub %arg15, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def p0_scalar_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.add %arg14, %0 : i32 + %2 = llvm.add %1, %arg15 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by + unfold p0_scalar_before p0_scalar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p0_scalar + apply p0_scalar_thm + ---END p0_scalar + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean new file mode 100644 index 000000000..f8270fd2d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean @@ -0,0 +1,160 @@ +import SSA.Projects.InstCombine.tests.proofs.ggethlowbitmaskhuptohandhincludinghbit_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 ggethlowbitmaskhuptohandhincludinghbit_statements + +def t0_before := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg18 : i8 + %3 = llvm.add %2, %1 : i8 + %4 = llvm.or %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg18 : i8 + %3 = llvm.lshr %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t1_before := [llvm| +{ +^0(%arg17 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -1 : i16}> : () -> i16 + %2 = llvm.shl %0, %arg17 : i16 + %3 = llvm.add %2, %1 : i16 + %4 = llvm.or %3, %2 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def t1_after := [llvm| +{ +^0(%arg17 : i16): + %0 = "llvm.mlir.constant"() <{value = 15 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -1 : i16}> : () -> i16 + %2 = llvm.sub %0, %arg17 : i16 + %3 = llvm.lshr %1, %2 : i16 + "llvm.return"(%3) : (i16) -> () +} +] +theorem t1_proof : t1_before ⊑ t1_after := by + unfold t1_before t1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t1 + apply t1_thm + ---END t1 + + + +def t9_nocse_before := [llvm| +{ +^0(%arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg9 : i8 + %3 = llvm.shl %0, %arg9 : i8 + %4 = llvm.add %2, %1 : i8 + %5 = llvm.or %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def t9_nocse_after := [llvm| +{ +^0(%arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg9 overflow : i8 + %3 = llvm.shl %1, %arg9 overflow : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem t9_nocse_proof : t9_nocse_before ⊑ t9_nocse_after := by + unfold t9_nocse_before t9_nocse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t9_nocse + apply t9_nocse_thm + ---END t9_nocse + + + +def t17_nocse_mismatching_x_before := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg0 : i8 + %3 = llvm.shl %0, %arg1 : i8 + %4 = llvm.add %2, %1 : i8 + %5 = llvm.or %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def t17_nocse_mismatching_x_after := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg1 overflow : i8 + %3 = llvm.shl %1, %arg0 overflow : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem t17_nocse_mismatching_x_proof : t17_nocse_mismatching_x_before ⊑ t17_nocse_mismatching_x_after := by + unfold t17_nocse_mismatching_x_before t17_nocse_mismatching_x_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t17_nocse_mismatching_x + apply t17_nocse_mismatching_x_thm + ---END t17_nocse_mismatching_x + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean new file mode 100644 index 000000000..e5dd0f25c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean @@ -0,0 +1,32 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ggethlowbitmaskhuptohandhincludinghbit_proof +theorem t0_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 a_1 => some (a + 255#8 ||| a_1)) ⊑ + if 8#8 ≤ 7#8 - x then none else some (255#8 >>> ((256 - x.toNat + 7) % 256)) := sorry + +theorem t1_thm (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (1#16 <<< x.toNat)) fun a => + Option.bind (if 16#16 ≤ x then none else some (1#16 <<< x.toNat)) fun a_1 => some (a + 65535#16 ||| a_1)) ⊑ + if 16#16 ≤ 15#16 - x then none else some (65535#16 >>> ((65536 - x.toNat + 15) % 65536)) := sorry + +theorem t9_nocse_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 a_1 => some (a + 255#8 ||| a_1)) ⊑ + (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 (255#8 <<< x.toNat).sshiftRight x.toNat = 255#8 then none + else if 8#8 ≤ x then none else some (255#8 <<< x.toNat)).bind + fun a_1 => some (a ||| a_1 ^^^ 255#8) := sorry + +theorem t17_nocse_mismatching_x_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (1#8 <<< x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun a_1 => some (a + 255#8 ||| a_1)) ⊑ + (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 (255#8 <<< x_1.toNat).sshiftRight x_1.toNat = 255#8 then none + else if 8#8 ≤ x_1 then none else some (255#8 <<< x_1.toNat)).bind + fun a_1 => some (a ||| a_1 ^^^ 255#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean new file mode 100644 index 000000000..0af255b92 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean @@ -0,0 +1,82 @@ +import SSA.Projects.InstCombine.tests.proofs.ghoisthnegationhouthofhbiashcalculation_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 ghoisthnegationhouthofhbiashcalculation_statements + +def t0_before := [llvm| +{ +^0(%arg18 : i8, %arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg19 : i8 + %2 = llvm.and %1, %arg18 : i8 + %3 = llvm.sub %2, %arg18 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg18 : i8, %arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg19, %0 : i8 + %3 = llvm.and %arg18, %2 : i8 + %4 = llvm.sub %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def n7_before := [llvm| +{ +^0(%arg5 : i8, %arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg6 : i8 + %2 = llvm.and %1, %arg5 : i8 + %3 = llvm.sub %arg5, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def n7_after := [llvm| +{ +^0(%arg5 : i8, %arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.add %arg6, %0 : i8 + %2 = llvm.and %arg5, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem n7_proof : n7_before ⊑ n7_after := by + unfold n7_before n7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN n7 + apply n7_thm + ---END n7 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation_proof.lean new file mode 100644 index 000000000..05c1ce61a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghoisthnegationhouthofhbiashcalculation_proof +theorem t0_thm (x x_1 : BitVec 8) : (-x_1 &&& x) - x = -(x &&& x_1 + 255#8) := sorry + +theorem n7_thm (x x_1 : BitVec 8) : x_1 - (-x &&& x_1) = x_1 &&& x + 255#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean new file mode 100644 index 000000000..3a5c2e508 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.ghoisthnothfromhashrhoperand_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 ghoisthnothfromhashrhoperand_statements + +def t0_before := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg8, %0 : i8 + %2 = llvm.ashr %1, %arg9 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg8, %arg9 : i8 + %2 = llvm.xor %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t1_before := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg6, %0 : i8 + %2 = llvm.ashr %1, %arg7 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t1_after := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg6, %arg7 : i8 + %2 = llvm.xor %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t1_proof : t1_before ⊑ t1_after := by + unfold t1_before t1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t1 + apply t1_thm + ---END t1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean new file mode 100644 index 000000000..48c30e8bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghoisthnothfromhashrhoperand_proof +theorem t0_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry + +theorem t1_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean new file mode 100644 index 000000000..b8647a975 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.ghoisthxorhbyhconstanthfromhxorhbyhvalue_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 ghoisthxorhbyhconstanthfromhxorhbyhvalue_statements + +def t0_scalar_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.xor %arg10, %0 : i8 + %2 = llvm.xor %1, %arg11 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t0_scalar_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.xor %arg10, %arg11 : i8 + %2 = llvm.xor %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_scalar_proof : t0_scalar_before ⊑ t0_scalar_after := by + unfold t0_scalar_before t0_scalar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t0_scalar + apply t0_scalar_thm + ---END t0_scalar + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean new file mode 100644 index 000000000..94f29eb56 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof +theorem t0_scalar_thm (x x_1 : BitVec 8) : x_1 ^^^ 42#8 ^^^ x = x_1 ^^^ x ^^^ 42#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean new file mode 100644 index 000000000..73d51dc58 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean @@ -0,0 +1,48 @@ +import SSA.Projects.InstCombine.tests.proofs.gicmphmul_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 gicmphmul_statements + +def mul_of_pow2s_before := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %3 = llvm.and %arg79, %0 : i32 + %4 = llvm.and %arg80, %1 : i32 + %5 = llvm.mul %3, %4 : i32 + %6 = llvm.or %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def mul_of_pow2s_after := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by + unfold mul_of_pow2s_before mul_of_pow2s_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN mul_of_pow2s + apply mul_of_pow2s_thm + ---END mul_of_pow2s + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gicmphmul_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean new file mode 100644 index 000000000..8d5ab2977 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean @@ -0,0 +1,336 @@ +import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehadd_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 gmaskedhmergehadd_statements + +def p_before := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %2, %arg61 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_after := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %arg61, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_proof : p_before ⊑ p_after := by + unfold p_before p_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p + apply p_thm + ---END p + + + +def p_constmask_before := [llvm| +{ +^0(%arg49 : i32, %arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg49, %0 : i32 + %3 = llvm.and %arg50, %1 : i32 + %4 = llvm.add %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask_after := [llvm| +{ +^0(%arg49 : i32, %arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg49, %0 : i32 + %3 = llvm.and %arg50, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by + unfold p_constmask_before p_constmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_constmask + apply p_constmask_thm + ---END p_constmask + + + +def p_constmask2_before := [llvm| +{ +^0(%arg41 : i32, %arg42 : i32): + %0 = "llvm.mlir.constant"() <{value = 61440 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg41, %0 : i32 + %3 = llvm.and %arg42, %1 : i32 + %4 = llvm.add %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask2_after := [llvm| +{ +^0(%arg41 : i32, %arg42 : i32): + %0 = "llvm.mlir.constant"() <{value = 61440 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg41, %0 : i32 + %3 = llvm.and %arg42, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by + unfold p_constmask2_before p_constmask2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_constmask2 + apply p_constmask2_thm + ---END p_constmask2 + + + +def p_commutative0_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %2, %arg33 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative0_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %arg33, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := by + unfold p_commutative0_before p_commutative0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_commutative0 + apply p_commutative0_thm + ---END p_commutative0 + + + +def p_commutative2_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %2, %arg28 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative2_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %arg28, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by + unfold p_commutative2_before p_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_commutative2 + apply p_commutative2_thm + ---END p_commutative2 + + + +def p_commutative4_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %2, %arg23 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative4_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %arg23, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := by + unfold p_commutative4_before p_commutative4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_commutative4 + apply p_commutative4_thm + ---END p_commutative4 + + + +def p_constmask_commutative_before := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg16, %0 : i32 + %3 = llvm.and %arg17, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask_commutative_after := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg16, %0 : i32 + %3 = llvm.and %arg17, %1 : i32 + %4 = llvm.or %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_constmask_commutative_after := by + unfold p_constmask_commutative_before p_constmask_commutative_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_constmask_commutative + apply p_constmask_commutative_thm + ---END p_constmask_commutative + + + +def n2_badmask_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %2, %arg5 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n2_badmask_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %arg5, %2 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by + unfold n2_badmask_before n2_badmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN n2_badmask + apply n2_badmask_thm + ---END n2_badmask + + + +def n3_constmask_samemask_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + %2 = llvm.and %arg1, %0 : i32 + %3 = llvm.add %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n3_constmask_samemask_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + %2 = llvm.and %arg1, %0 : i32 + %3 = llvm.add %1, %2 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by + unfold n3_constmask_samemask_before n3_constmask_samemask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN n3_constmask_samemask + apply n3_constmask_samemask_thm + ---END n3_constmask_samemask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd_proof.lean new file mode 100644 index 000000000..dad99b584 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd_proof.lean @@ -0,0 +1,42 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmaskedhmergehadd_proof +theorem p_thm (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1) + ((x_1 ^^^ 4294967295#32) &&& x) = x_2 &&& x_1 ||| x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem p_constmask_thm (x x_1 : BitVec 32) : + (x_1 &&& 65280#32) + (x &&& 4294902015#32) = x_1 &&& 65280#32 ||| x &&& 4294902015#32 := sorry + +theorem p_constmask2_thm (x x_1 : BitVec 32) : + (x_1 &&& 61440#32) + (x &&& 4294902015#32) = x_1 &&& 61440#32 ||| x &&& 4294902015#32 := sorry + +theorem p_commutative0_thm (x x_1 x_2 : BitVec 32) : + (x_2 &&& x_1) + ((x_2 ^^^ 4294967295#32) &&& x) = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 4294967295#32) := sorry + +theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : + ((x_2 ^^^ 4294967295#32) &&& x_1) + (x &&& x_2) = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x &&& x_2 := sorry + +theorem p_commutative4_thm (x x_1 x_2 : BitVec 32) : + ((x_2 ^^^ 4294967295#32) &&& x_1) + (x_2 &&& x) = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x_2 &&& x := sorry + +theorem p_constmask_commutative_thm (x x_1 : BitVec 32) : + (x_1 &&& 4294902015#32) + (x &&& 65280#32) = x_1 &&& 4294902015#32 ||| x &&& 65280#32 := sorry + +theorem n2_badmask_thm (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32) &&& x = x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : + some ((x_1 &&& 65280#32) + (x &&& 65280#32)) ⊑ + if + (x_1.msb && (65280#32).msb) = (x.msb && (65280#32).msb) ∧ + ¬((x_1 &&& 65280#32) + (x &&& 65280#32)).msb = (x_1.msb && (65280#32).msb) then + none + else + if + (x_1 &&& 65280#32) + (x &&& 65280#32) < x_1 &&& 65280#32 ∨ + (x_1 &&& 65280#32) + (x &&& 65280#32) < x &&& 65280#32 then + none + else some ((x_1 &&& 65280#32) + (x &&& 65280#32)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean new file mode 100644 index 000000000..03057209b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean @@ -0,0 +1,155 @@ +import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehandhofhors_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 gmaskedhmergehandhofhors_statements + +def p_before := [llvm| +{ +^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg75, %0 : i32 + %2 = llvm.or %1, %arg73 : i32 + %3 = llvm.or %arg74, %arg75 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_after := [llvm| +{ +^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg75, %0 : i32 + %2 = llvm.or %arg73, %1 : i32 + %3 = llvm.or %arg74, %arg75 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_proof : p_before ⊑ p_after := by + unfold p_before p_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p + apply p_thm + ---END p + + + +def p_commutative2_before := [llvm| +{ +^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg53, %0 : i32 + %2 = llvm.or %1, %arg51 : i32 + %3 = llvm.or %arg52, %arg53 : i32 + %4 = llvm.and %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative2_after := [llvm| +{ +^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg53, %0 : i32 + %2 = llvm.or %arg51, %1 : i32 + %3 = llvm.or %arg52, %arg53 : i32 + %4 = llvm.and %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by + unfold p_commutative2_before p_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN p_commutative2 + apply p_commutative2_thm + ---END p_commutative2 + + + +def n2_badmask_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg9, %0 : i32 + %2 = llvm.or %1, %arg6 : i32 + %3 = llvm.or %arg8, %arg7 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n2_badmask_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg9, %0 : i32 + %2 = llvm.or %arg6, %1 : i32 + %3 = llvm.or %arg8, %arg7 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by + unfold n2_badmask_before n2_badmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN n2_badmask + apply n2_badmask_thm + ---END n2_badmask + + + +def n3_constmask_samemask_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %1 = llvm.or %arg0, %0 : i32 + %2 = llvm.or %arg1, %0 : i32 + %3 = llvm.and %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n3_constmask_samemask_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %1 = llvm.and %arg0, %arg1 : i32 + %2 = llvm.or %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by + unfold n3_constmask_samemask_before n3_constmask_samemask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN n3_constmask_samemask + apply n3_constmask_samemask_thm + ---END n3_constmask_samemask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean new file mode 100644 index 000000000..95060e9d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean @@ -0,0 +1,18 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmaskedhmergehandhofhors_proof +theorem p_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1) &&& (x ||| x_2) = (x_1 ||| x_2 ^^^ 4294967295#32) &&& (x ||| x_2) := sorry + +theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1) &&& (x_1 ^^^ 4294967295#32 ||| x) = (x_2 ||| x_1) &&& (x ||| x_1 ^^^ 4294967295#32) := sorry + +theorem n2_badmask_thm (x x_1 x_2 x_3 : BitVec 32) : + (x_3 ^^^ 4294967295#32 ||| x_2) &&& (x_1 ||| x) = (x_2 ||| x_3 ^^^ 4294967295#32) &&& (x_1 ||| x) := sorry + +theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : + (x_1 ||| 4294902015#32) &&& (x ||| 4294902015#32) = x_1 &&& x ||| 4294902015#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean new file mode 100644 index 000000000..6f1c8ae9f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gmulhpow2_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 gmulhpow2_statements + +def shl_add_log_may_cause_poison_pr62175_with_nuw_before := [llvm| +{ +^0(%arg2 : i8, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg2 overflow : i8 + %2 = llvm.mul %arg3, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def shl_add_log_may_cause_poison_pr62175_with_nuw_after := [llvm| +{ +^0(%arg2 : i8, %arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = llvm.add %arg2, %0 : i8 + %2 = llvm.shl %arg3, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem shl_add_log_may_cause_poison_pr62175_with_nuw_proof : shl_add_log_may_cause_poison_pr62175_with_nuw_before ⊑ shl_add_log_may_cause_poison_pr62175_with_nuw_after := by + unfold shl_add_log_may_cause_poison_pr62175_with_nuw_before shl_add_log_may_cause_poison_pr62175_with_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nuw + apply shl_add_log_may_cause_poison_pr62175_with_nuw_thm + ---END shl_add_log_may_cause_poison_pr62175_with_nuw + + + +def shl_add_log_may_cause_poison_pr62175_with_nsw_before := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg0 overflow : i8 + %2 = llvm.mul %arg1, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def shl_add_log_may_cause_poison_pr62175_with_nsw_after := [llvm| +{ +^0(%arg0 : i8, %arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = llvm.add %arg0, %0 : i8 + %2 = llvm.shl %arg1, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem shl_add_log_may_cause_poison_pr62175_with_nsw_proof : shl_add_log_may_cause_poison_pr62175_with_nsw_before ⊑ shl_add_log_may_cause_poison_pr62175_with_nsw_after := by + unfold shl_add_log_may_cause_poison_pr62175_with_nsw_before shl_add_log_may_cause_poison_pr62175_with_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nsw + apply shl_add_log_may_cause_poison_pr62175_with_nsw_thm + ---END shl_add_log_may_cause_poison_pr62175_with_nsw + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean new file mode 100644 index 000000000..7d4442d1f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean @@ -0,0 +1,16 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmulhpow2_proof +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 a => + some (x_1 * a)) ⊑ + if 8#8 ≤ x + 2#8 then none else some (x_1 <<< ((x.toNat + 2) % 256)) := sorry + +theorem shl_add_log_may_cause_poison_pr62175_with_nsw_thm (x x_1 : BitVec 8) : + ((if (4#8 <<< x.toNat).sshiftRight x.toNat = 4#8 then none else if 8#8 ≤ x then none else some (4#8 <<< x.toNat)).bind + fun a => some (x_1 * a)) ⊑ + if 8#8 ≤ x + 2#8 then none else some (x_1 <<< ((x.toNat + 2) % 256)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean new file mode 100644 index 000000000..f7ac33390 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean @@ -0,0 +1,169 @@ +import SSA.Projects.InstCombine.tests.proofs.gnothadd_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 gnothadd_statements + +def basic_before := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg25, %0 : i8 + %2 = llvm.add %1, %arg26 : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def basic_after := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = llvm.sub %arg25, %arg26 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem basic_proof : basic_before ⊑ basic_after := by + unfold basic_before basic_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN basic + apply basic_thm + ---END basic + + + +def basic_com_add_before := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg24, %0 : i8 + %2 = llvm.add %arg23, %1 : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def basic_com_add_after := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = llvm.sub %arg24, %arg23 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem basic_com_add_proof : basic_com_add_before ⊑ basic_com_add_after := by + unfold basic_com_add_before basic_com_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN basic_com_add + apply basic_com_add_thm + ---END basic_com_add + + + +def basic_preserve_nsw_before := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg15, %0 : i8 + %2 = llvm.add %1, %arg16 overflow : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def basic_preserve_nsw_after := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8): + %0 = llvm.sub %arg15, %arg16 overflow : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem basic_preserve_nsw_proof : basic_preserve_nsw_before ⊑ basic_preserve_nsw_after := by + unfold basic_preserve_nsw_before basic_preserve_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN basic_preserve_nsw + apply basic_preserve_nsw_thm + ---END basic_preserve_nsw + + + +def basic_preserve_nuw_before := [llvm| +{ +^0(%arg13 : i8, %arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg13, %0 : i8 + %2 = llvm.add %1, %arg14 overflow : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def basic_preserve_nuw_after := [llvm| +{ +^0(%arg13 : i8, %arg14 : i8): + %0 = llvm.sub %arg13, %arg14 overflow : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem basic_preserve_nuw_proof : basic_preserve_nuw_before ⊑ basic_preserve_nuw_after := by + unfold basic_preserve_nuw_before basic_preserve_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN basic_preserve_nuw + apply basic_preserve_nuw_thm + ---END basic_preserve_nuw + + + +def basic_preserve_nuw_nsw_before := [llvm| +{ +^0(%arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg11, %0 : i8 + %2 = llvm.add %1, %arg12 overflow : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def basic_preserve_nuw_nsw_after := [llvm| +{ +^0(%arg11 : i8, %arg12 : i8): + %0 = llvm.sub %arg11, %arg12 overflow : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem basic_preserve_nuw_nsw_proof : basic_preserve_nuw_nsw_before ⊑ basic_preserve_nuw_nsw_after := by + unfold basic_preserve_nuw_nsw_before basic_preserve_nuw_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN basic_preserve_nuw_nsw + apply basic_preserve_nuw_nsw_thm + ---END basic_preserve_nuw_nsw + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean new file mode 100644 index 000000000..b0771dfcb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean @@ -0,0 +1,32 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gnothadd_proof +theorem basic_thm (x x_1 : BitVec 8) : (x_1 ^^^ 255#8) + x ^^^ 255#8 = x_1 - x := sorry + +theorem basic_com_add_thm (x x_1 : BitVec 8) : x_1 + (x ^^^ 255#8) ^^^ 255#8 = x - x_1 := sorry + +theorem basic_preserve_nsw_thm (x x_1 : BitVec 8) : + ((if (x_1.msb ^^ (255#8).msb) = x.msb ∧ ¬((x_1 ^^^ 255#8) + x).msb = (x_1.msb ^^ (255#8).msb) then none + else some ((x_1 ^^^ 255#8) + x)).bind + fun a => some (a ^^^ 255#8)) ⊑ + if (signExtend 9 x_1 - signExtend 9 x).msb = (signExtend 9 x_1 - signExtend 9 x).getMsbD 1 then some (x_1 - x) + else none := sorry + +theorem basic_preserve_nuw_thm (x x_1 : BitVec 8) : + ((if (x_1 ^^^ 255#8) + x < x_1 ^^^ 255#8 ∨ (x_1 ^^^ 255#8) + x < x then none else some ((x_1 ^^^ 255#8) + x)).bind + fun a => some (a ^^^ 255#8)) ⊑ + if x_1 < x then none else some (x_1 - x) := sorry + +theorem basic_preserve_nuw_nsw_thm (x x_1 : BitVec 8) : + ((if (x_1.msb ^^ (255#8).msb) = x.msb ∧ ¬((x_1 ^^^ 255#8) + x).msb = (x_1.msb ^^ (255#8).msb) then none + else + if (x_1 ^^^ 255#8) + x < x_1 ^^^ 255#8 ∨ (x_1 ^^^ 255#8) + x < x then none + else some ((x_1 ^^^ 255#8) + x)).bind + fun a => some (a ^^^ 255#8)) ⊑ + if (signExtend 9 x_1 - signExtend 9 x).msb = (signExtend 9 x_1 - signExtend 9 x).getMsbD 1 then + if x_1 < x then none else some (x_1 - x) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean new file mode 100644 index 000000000..65fcc1d78 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean @@ -0,0 +1,171 @@ +import SSA.Projects.InstCombine.tests.proofs.gorhxorhxor_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 gorhxorhxor_statements + +def or_xor_xor_normal_variant1_before := [llvm| +{ +^0(%arg17 : i1, %arg18 : i1): + %0 = llvm.and %arg17, %arg18 : i1 + %1 = llvm.xor %0, %arg17 : i1 + %2 = llvm.xor %0, %arg18 : i1 + %3 = llvm.or %1, %2 : i1 + "llvm.return"(%3) : (i1) -> () +} +] +def or_xor_xor_normal_variant1_after := [llvm| +{ +^0(%arg17 : i1, %arg18 : i1): + %0 = llvm.xor %arg17, %arg18 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem or_xor_xor_normal_variant1_proof : or_xor_xor_normal_variant1_before ⊑ or_xor_xor_normal_variant1_after := by + unfold or_xor_xor_normal_variant1_before or_xor_xor_normal_variant1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_xor_xor_normal_variant1 + apply or_xor_xor_normal_variant1_thm + ---END or_xor_xor_normal_variant1 + + + +def or_xor_xor_normal_variant2_before := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8): + %0 = llvm.and %arg15, %arg16 : i8 + %1 = llvm.xor %0, %arg16 : i8 + %2 = llvm.xor %arg15, %0 : i8 + %3 = llvm.or %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def or_xor_xor_normal_variant2_after := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8): + %0 = llvm.xor %arg15, %arg16 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem or_xor_xor_normal_variant2_proof : or_xor_xor_normal_variant2_before ⊑ or_xor_xor_normal_variant2_after := by + unfold or_xor_xor_normal_variant2_before or_xor_xor_normal_variant2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_xor_xor_normal_variant2 + apply or_xor_xor_normal_variant2_thm + ---END or_xor_xor_normal_variant2 + + + +def or_xor_xor_normal_variant3_before := [llvm| +{ +^0(%arg13 : i16, %arg14 : i16): + %0 = llvm.and %arg14, %arg13 : i16 + %1 = llvm.xor %arg14, %0 : i16 + %2 = llvm.xor %arg13, %0 : i16 + %3 = llvm.or %1, %2 : i16 + "llvm.return"(%3) : (i16) -> () +} +] +def or_xor_xor_normal_variant3_after := [llvm| +{ +^0(%arg13 : i16, %arg14 : i16): + %0 = llvm.xor %arg14, %arg13 : i16 + "llvm.return"(%0) : (i16) -> () +} +] +theorem or_xor_xor_normal_variant3_proof : or_xor_xor_normal_variant3_before ⊑ or_xor_xor_normal_variant3_after := by + unfold or_xor_xor_normal_variant3_before or_xor_xor_normal_variant3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_xor_xor_normal_variant3 + apply or_xor_xor_normal_variant3_thm + ---END or_xor_xor_normal_variant3 + + + +def or_xor_xor_normal_variant4_before := [llvm| +{ +^0(%arg11 : i64, %arg12 : i64): + %0 = llvm.and %arg12, %arg11 : i64 + %1 = llvm.xor %0, %arg12 : i64 + %2 = llvm.xor %0, %arg11 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def or_xor_xor_normal_variant4_after := [llvm| +{ +^0(%arg11 : i64, %arg12 : i64): + %0 = llvm.xor %arg12, %arg11 : i64 + "llvm.return"(%0) : (i64) -> () +} +] +theorem or_xor_xor_normal_variant4_proof : or_xor_xor_normal_variant4_before ⊑ or_xor_xor_normal_variant4_after := by + unfold or_xor_xor_normal_variant4_before or_xor_xor_normal_variant4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_xor_xor_normal_variant4 + apply or_xor_xor_normal_variant4_thm + ---END or_xor_xor_normal_variant4 + + + +def or_xor_xor_normal_binops_before := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32, %arg10 : i32): + %0 = llvm.xor %arg8, %arg10 : i32 + %1 = llvm.xor %arg9, %arg10 : i32 + %2 = llvm.and %1, %0 : i32 + %3 = llvm.xor %1, %2 : i32 + %4 = llvm.xor %0, %2 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def or_xor_xor_normal_binops_after := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32, %arg10 : i32): + %0 = llvm.xor %arg9, %arg8 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem or_xor_xor_normal_binops_proof : or_xor_xor_normal_binops_before ⊑ or_xor_xor_normal_binops_after := by + unfold or_xor_xor_normal_binops_before or_xor_xor_normal_binops_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN or_xor_xor_normal_binops + apply or_xor_xor_normal_binops_thm + ---END or_xor_xor_normal_binops + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean new file mode 100644 index 000000000..a04ae1009 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean @@ -0,0 +1,524 @@ +import SSA.Projects.InstCombine.tests.proofs.greassociatehnuw_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 greassociatehnuw_statements + +def reassoc_add_nuw_before := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %2 = llvm.add %arg26, %0 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def reassoc_add_nuw_after := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 68 : i32}> : () -> i32 + %1 = llvm.add %arg26, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem reassoc_add_nuw_proof : reassoc_add_nuw_before ⊑ reassoc_add_nuw_after := by + unfold reassoc_add_nuw_before reassoc_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_add_nuw + apply reassoc_add_nuw_thm + ---END reassoc_add_nuw + + + +def reassoc_sub_nuw_before := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %2 = llvm.sub %arg25, %0 overflow : i32 + %3 = llvm.sub %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def reassoc_sub_nuw_after := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = -68 : i32}> : () -> i32 + %1 = llvm.add %arg25, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem reassoc_sub_nuw_proof : reassoc_sub_nuw_before ⊑ reassoc_sub_nuw_after := by + unfold reassoc_sub_nuw_before reassoc_sub_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_sub_nuw + apply reassoc_sub_nuw_thm + ---END reassoc_sub_nuw + + + +def reassoc_mul_nuw_before := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 65 : i32}> : () -> i32 + %2 = llvm.mul %arg24, %0 overflow : i32 + %3 = llvm.mul %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def reassoc_mul_nuw_after := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = 260 : i32}> : () -> i32 + %1 = llvm.mul %arg24, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem reassoc_mul_nuw_proof : reassoc_mul_nuw_before ⊑ reassoc_mul_nuw_after := by + unfold reassoc_mul_nuw_before reassoc_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_mul_nuw + apply reassoc_mul_nuw_thm + ---END reassoc_mul_nuw + + + +def no_reassoc_add_nuw_none_before := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %2 = llvm.add %arg23, %0 : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def no_reassoc_add_nuw_none_after := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 68 : i32}> : () -> i32 + %1 = llvm.add %arg23, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem no_reassoc_add_nuw_none_proof : no_reassoc_add_nuw_none_before ⊑ no_reassoc_add_nuw_none_after := by + unfold no_reassoc_add_nuw_none_before no_reassoc_add_nuw_none_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN no_reassoc_add_nuw_none + apply no_reassoc_add_nuw_none_thm + ---END no_reassoc_add_nuw_none + + + +def no_reassoc_add_none_nuw_before := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %2 = llvm.add %arg22, %0 overflow : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def no_reassoc_add_none_nuw_after := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 68 : i32}> : () -> i32 + %1 = llvm.add %arg22, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem no_reassoc_add_none_nuw_proof : no_reassoc_add_none_nuw_before ⊑ no_reassoc_add_none_nuw_after := by + unfold no_reassoc_add_none_nuw_before no_reassoc_add_none_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN no_reassoc_add_none_nuw + apply no_reassoc_add_none_nuw_thm + ---END no_reassoc_add_none_nuw + + + +def reassoc_x2_add_nuw_before := [llvm| +{ +^0(%arg20 : i32, %arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg20, %0 overflow : i32 + %3 = llvm.add %arg21, %1 overflow : i32 + %4 = llvm.add %2, %3 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def reassoc_x2_add_nuw_after := [llvm| +{ +^0(%arg20 : i32, %arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = llvm.add %arg20, %arg21 overflow : i32 + %2 = llvm.add %1, %0 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem reassoc_x2_add_nuw_proof : reassoc_x2_add_nuw_before ⊑ reassoc_x2_add_nuw_after := by + unfold reassoc_x2_add_nuw_before reassoc_x2_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_x2_add_nuw + apply reassoc_x2_add_nuw_thm + ---END reassoc_x2_add_nuw + + + +def reassoc_x2_mul_nuw_before := [llvm| +{ +^0(%arg18 : i32, %arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 9 : i32}> : () -> i32 + %2 = llvm.mul %arg18, %0 overflow : i32 + %3 = llvm.mul %arg19, %1 overflow : i32 + %4 = llvm.mul %2, %3 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def reassoc_x2_mul_nuw_after := [llvm| +{ +^0(%arg18 : i32, %arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 45 : i32}> : () -> i32 + %1 = llvm.mul %arg18, %arg19 : i32 + %2 = llvm.mul %1, %0 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem reassoc_x2_mul_nuw_proof : reassoc_x2_mul_nuw_before ⊑ reassoc_x2_mul_nuw_after := by + unfold reassoc_x2_mul_nuw_before reassoc_x2_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_x2_mul_nuw + apply reassoc_x2_mul_nuw_thm + ---END reassoc_x2_mul_nuw + + + +def reassoc_x2_sub_nuw_before := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.sub %arg16, %0 overflow : i32 + %3 = llvm.sub %arg17, %1 overflow : i32 + %4 = llvm.sub %2, %3 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def reassoc_x2_sub_nuw_after := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = llvm.sub %arg16, %arg17 : i32 + %2 = llvm.add %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem reassoc_x2_sub_nuw_proof : reassoc_x2_sub_nuw_before ⊑ reassoc_x2_sub_nuw_after := by + unfold reassoc_x2_sub_nuw_before reassoc_x2_sub_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN reassoc_x2_sub_nuw + apply reassoc_x2_sub_nuw_thm + ---END reassoc_x2_sub_nuw + + + +def tryFactorization_add_nuw_mul_nuw_before := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.mul %arg15, %0 overflow : i32 + %2 = llvm.add %1, %arg15 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_nuw_after := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg15, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_nuw_proof : tryFactorization_add_nuw_mul_nuw_before ⊑ tryFactorization_add_nuw_mul_nuw_after := by + unfold tryFactorization_add_nuw_mul_nuw_before tryFactorization_add_nuw_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul_nuw + apply tryFactorization_add_nuw_mul_nuw_thm + ---END tryFactorization_add_nuw_mul_nuw + + + +def tryFactorization_add_nuw_mul_nuw_int_max_before := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147483647 : i32}> : () -> i32 + %1 = llvm.mul %arg14, %0 overflow : i32 + %2 = llvm.add %1, %arg14 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_nuw_int_max_after := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = llvm.shl %arg14, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_nuw_int_max_proof : tryFactorization_add_nuw_mul_nuw_int_max_before ⊑ tryFactorization_add_nuw_mul_nuw_int_max_after := by + unfold tryFactorization_add_nuw_mul_nuw_int_max_before tryFactorization_add_nuw_mul_nuw_int_max_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul_nuw_int_max + apply tryFactorization_add_nuw_mul_nuw_int_max_thm + ---END tryFactorization_add_nuw_mul_nuw_int_max + + + +def tryFactorization_add_mul_nuw_before := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.mul %arg13, %0 : i32 + %2 = llvm.add %1, %arg13 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_mul_nuw_after := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg13, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_mul_nuw_proof : tryFactorization_add_mul_nuw_before ⊑ tryFactorization_add_mul_nuw_after := by + unfold tryFactorization_add_mul_nuw_before tryFactorization_add_mul_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_mul_nuw + apply tryFactorization_add_mul_nuw_thm + ---END tryFactorization_add_mul_nuw + + + +def tryFactorization_add_nuw_mul_before := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.mul %arg12, %0 overflow : i32 + %2 = llvm.add %1, %arg12 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_after := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.shl %arg12, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_proof : tryFactorization_add_nuw_mul_before ⊑ tryFactorization_add_nuw_mul_after := by + unfold tryFactorization_add_nuw_mul_before tryFactorization_add_nuw_mul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul + apply tryFactorization_add_nuw_mul_thm + ---END tryFactorization_add_nuw_mul + + + +def tryFactorization_add_nuw_mul_nuw_mul_nuw_var_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = llvm.mul %arg9, %arg10 overflow : i32 + %1 = llvm.mul %arg9, %arg11 overflow : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_nuw_mul_nuw_var_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = llvm.add %arg10, %arg11 : i32 + %1 = llvm.mul %arg9, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_proof : tryFactorization_add_nuw_mul_nuw_mul_nuw_var_before ⊑ tryFactorization_add_nuw_mul_nuw_mul_nuw_var_after := by + unfold tryFactorization_add_nuw_mul_nuw_mul_nuw_var_before tryFactorization_add_nuw_mul_nuw_mul_nuw_var_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_nuw_var + apply tryFactorization_add_nuw_mul_nuw_mul_nuw_var_thm + ---END tryFactorization_add_nuw_mul_nuw_mul_nuw_var + + + +def tryFactorization_add_nuw_mul_mul_nuw_var_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = llvm.mul %arg6, %arg7 : i32 + %1 = llvm.mul %arg6, %arg8 overflow : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_mul_nuw_var_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = llvm.add %arg7, %arg8 : i32 + %1 = llvm.mul %arg6, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_mul_nuw_var_proof : tryFactorization_add_nuw_mul_mul_nuw_var_before ⊑ tryFactorization_add_nuw_mul_mul_nuw_var_after := by + unfold tryFactorization_add_nuw_mul_mul_nuw_var_before tryFactorization_add_nuw_mul_mul_nuw_var_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul_mul_nuw_var + apply tryFactorization_add_nuw_mul_mul_nuw_var_thm + ---END tryFactorization_add_nuw_mul_mul_nuw_var + + + +def tryFactorization_add_nuw_mul_nuw_mul_var_before := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32, %arg5 : i32): + %0 = llvm.mul %arg3, %arg4 overflow : i32 + %1 = llvm.mul %arg3, %arg5 : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_nuw_mul_nuw_mul_var_after := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32, %arg5 : i32): + %0 = llvm.add %arg4, %arg5 : i32 + %1 = llvm.mul %arg3, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_nuw_mul_nuw_mul_var_proof : tryFactorization_add_nuw_mul_nuw_mul_var_before ⊑ tryFactorization_add_nuw_mul_nuw_mul_var_after := by + unfold tryFactorization_add_nuw_mul_nuw_mul_var_before tryFactorization_add_nuw_mul_nuw_mul_var_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_var + apply tryFactorization_add_nuw_mul_nuw_mul_var_thm + ---END tryFactorization_add_nuw_mul_nuw_mul_var + + + +def tryFactorization_add_mul_nuw_mul_var_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32): + %0 = llvm.mul %arg0, %arg1 overflow : i32 + %1 = llvm.mul %arg0, %arg2 overflow : i32 + %2 = llvm.add %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def tryFactorization_add_mul_nuw_mul_var_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32): + %0 = llvm.add %arg1, %arg2 : i32 + %1 = llvm.mul %arg0, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem tryFactorization_add_mul_nuw_mul_var_proof : tryFactorization_add_mul_nuw_mul_var_before ⊑ tryFactorization_add_mul_nuw_mul_var_after := by + unfold tryFactorization_add_mul_nuw_mul_var_before tryFactorization_add_mul_nuw_mul_var_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN tryFactorization_add_mul_nuw_mul_var + apply tryFactorization_add_mul_nuw_mul_var_thm + ---END tryFactorization_add_mul_nuw_mul_var + + diff --git a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean new file mode 100644 index 000000000..40310a459 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean @@ -0,0 +1,85 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section greassociatehnuw_proof +theorem reassoc_add_nuw_thm (x : BitVec 32) : + ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun a => + if a + 64#32 < a ∨ a + 64#32 < 64#32 then none else some (a + 64#32)) ⊑ + if x + 68#32 < x ∨ x + 68#32 < 68#32 then none else some (x + 68#32) := sorry + +theorem reassoc_sub_nuw_thm (x : BitVec 32) : + ((if x < 4#32 then none else some (x - 4#32)).bind fun a => if a < 64#32 then none else some (a - 64#32)) ⊑ + some (x + 4294967228#32) := sorry + +theorem reassoc_mul_nuw_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 4#64 then none else some (x * 4#32)).bind fun a => + if twoPow 64 31 <<< 1 ≤ setWidth 64 a * 65#64 then none else some (a * 65#32)) ⊑ + if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 260#64 then none else some (x * 260#32) := sorry + +theorem no_reassoc_add_nuw_none_thm (x : BitVec 32) : + (if x + 4#32 + 64#32 < x + 4#32 ∨ x + 4#32 + 64#32 < 64#32 then none else some (x + 4#32 + 64#32)) ⊑ + some (x + 68#32) := sorry + +theorem no_reassoc_add_none_nuw_thm (x : BitVec 32) : + ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun a => some (a + 64#32)) ⊑ + some (x + 68#32) := sorry + +theorem reassoc_x2_add_nuw_thm (x x_1 : BitVec 32) : + ((if x_1 + 4#32 < x_1 ∨ x_1 + 4#32 < 4#32 then none else some (x_1 + 4#32)).bind fun a => + (if x + 8#32 < x ∨ x + 8#32 < 8#32 then none else some (x + 8#32)).bind fun a_1 => + if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + (if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x)).bind fun a => + if a + 12#32 < a ∨ a + 12#32 < 12#32 then none else some (a + 12#32) := sorry + +theorem reassoc_x2_mul_nuw_thm (x x_1 : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_1 * 5#64 then none else some (x_1 * 5#32)).bind fun a => + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 9#64 then none else some (x * 9#32)).bind fun a_1 => + if twoPow 64 31 <<< 1 ≤ setWidth 64 a * setWidth 64 a_1 then none else some (a * a_1)) ⊑ + if twoPow 64 31 <<< 1 ≤ setWidth 64 (x_1 * x) * 45#64 then none else some (x_1 * x * 45#32) := sorry + +theorem reassoc_x2_sub_nuw_thm (x x_1 : BitVec 32) : + ((if x_1 < 4#32 then none else some (x_1 - 4#32)).bind fun a => + (if x < 8#32 then none else some (x - 8#32)).bind fun a_1 => if a < a_1 then none else some (a - a_1)) ⊑ + some (x_1 - x + 4#32) := sorry + +theorem tryFactorization_add_nuw_mul_nuw_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 3#64 then none else some (x * 3#32)).bind fun a => + if a + x < a ∨ a + x < x then none else some (a + x)) ⊑ + if x <<< 2 >>> 2 = x then none else some (x <<< 2) := sorry + +theorem tryFactorization_add_nuw_mul_nuw_int_max_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 2147483647#64 then none else some (x * 2147483647#32)).bind fun a => + if a + x < a ∨ a + x < x then none else some (a + x)) ⊑ + if x <<< 31 >>> 31 = x then none else some (x <<< 31) := sorry + +theorem tryFactorization_add_mul_nuw_thm (x : BitVec 32) : + (if x * 3#32 + x < x * 3#32 ∨ x * 3#32 + x < x then none else some (x * 3#32 + x)) ⊑ some (x <<< 2) := sorry + +theorem tryFactorization_add_nuw_mul_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 3#64 then none else some (x * 3#32)).bind fun a => some (a + x)) ⊑ + some (x <<< 2) := sorry + +theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_thm (x x_1 x_2 : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x_1 then none else some (x_2 * x_1)).bind fun a => + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a_1 => + if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 (x_1 + x) then none else some (x_2 * (x_1 + x)) := sorry + +theorem tryFactorization_add_nuw_mul_mul_nuw_var_thm (x x_1 x_2 : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a => + if x_2 * x_1 + a < x_2 * x_1 ∨ x_2 * x_1 + a < a then none else some (x_2 * x_1 + a)) ⊑ + some (x_2 * (x_1 + x)) := sorry + +theorem tryFactorization_add_nuw_mul_nuw_mul_var_thm (x x_1 x_2 : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x_1 then none else some (x_2 * x_1)).bind fun a => + if a + x_2 * x < a ∨ a + x_2 * x < x_2 * x then none else some (a + x_2 * x)) ⊑ + some (x_2 * (x_1 + x)) := sorry + +theorem tryFactorization_add_mul_nuw_mul_var_thm (x x_1 x_2 : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x_1 then none else some (x_2 * x_1)).bind fun a => + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a_1 => + some (a + a_1)) ⊑ + some (x_2 * (x_1 + x)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean new file mode 100644 index 000000000..ea2e2712a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gsdivhcanonicalize_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 gsdivhcanonicalize_statements + +def test_sdiv_canonicalize_op0_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg15 overflow : i32 + %2 = llvm.sdiv %1, %arg16 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test_sdiv_canonicalize_op0_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sdiv %arg15, %arg16 : i32 + %2 = llvm.sub %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test_sdiv_canonicalize_op0_proof : test_sdiv_canonicalize_op0_before ⊑ test_sdiv_canonicalize_op0_after := by + unfold test_sdiv_canonicalize_op0_before test_sdiv_canonicalize_op0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test_sdiv_canonicalize_op0 + apply test_sdiv_canonicalize_op0_thm + ---END test_sdiv_canonicalize_op0 + + + +def test_sdiv_canonicalize_op0_exact_before := [llvm| +{ +^0(%arg13 : i32, %arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg13 overflow : i32 + %2 = llvm.sdiv %1, %arg14 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test_sdiv_canonicalize_op0_exact_after := [llvm| +{ +^0(%arg13 : i32, %arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sdiv %arg13, %arg14 : i32 + %2 = llvm.sub %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test_sdiv_canonicalize_op0_exact_proof : test_sdiv_canonicalize_op0_exact_before ⊑ test_sdiv_canonicalize_op0_exact_after := by + unfold test_sdiv_canonicalize_op0_exact_before test_sdiv_canonicalize_op0_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test_sdiv_canonicalize_op0_exact + apply test_sdiv_canonicalize_op0_exact_thm + ---END test_sdiv_canonicalize_op0_exact + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize_proof.lean new file mode 100644 index 000000000..6b4bd24e7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize_proof.lean @@ -0,0 +1,18 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsdivhcanonicalize_proof +theorem test_sdiv_canonicalize_op0_thm (x x_1 : BitVec 32) : + ((if (-signExtend 33 x_1).msb = (-signExtend 33 x_1).getMsbD 1 then some (-x_1) else none).bind fun a => + if x = 0#32 ∨ a = intMin 32 ∧ x = 4294967295#32 then none else some (a.sdiv x)) ⊑ + Option.bind (if x = 0#32 ∨ x_1 = intMin 32 ∧ x = 4294967295#32 then none else some (x_1.sdiv x)) fun a => + if (-signExtend 33 a).msb = (-signExtend 33 a).getMsbD 1 then some (-a) else none := sorry + +theorem test_sdiv_canonicalize_op0_exact_thm (x x_1 : BitVec 32) : + ((if (-signExtend 33 x_1).msb = (-signExtend 33 x_1).getMsbD 1 then some (-x_1) else none).bind fun a => + if x = 0#32 ∨ a = intMin 32 ∧ x = 4294967295#32 then none else some (a.sdiv x)) ⊑ + Option.bind (if x = 0#32 ∨ x_1 = intMin 32 ∧ x = 4294967295#32 then none else some (x_1.sdiv x)) fun a => + if (-signExtend 33 a).msb = (-signExtend 33 a).getMsbD 1 then some (-a) else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean new file mode 100644 index 000000000..e5b4a785c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean @@ -0,0 +1,172 @@ +import SSA.Projects.InstCombine.tests.proofs.gsdivhexacthbyhpowerhofhtwo_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 gsdivhexacthbyhpowerhofhtwo_statements + +def t0_before := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 32 : i8}> : () -> i8 + %1 = llvm.sdiv %arg22, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = llvm.ashr %arg22, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def shl1_nsw_before := [llvm| +{ +^0(%arg14 : i8, %arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg15 overflow : i8 + %2 = llvm.sdiv %arg14, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def shl1_nsw_after := [llvm| +{ +^0(%arg14 : i8, %arg15 : i8): + %0 = llvm.ashr %arg14, %arg15 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem shl1_nsw_proof : shl1_nsw_before ⊑ shl1_nsw_after := by + unfold shl1_nsw_before shl1_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl1_nsw + apply shl1_nsw_thm + ---END shl1_nsw + + + +def shl1_nsw_not_exact_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg11 overflow : i8 + %2 = llvm.sdiv %arg10, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def shl1_nsw_not_exact_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg11 overflow : i8 + %2 = llvm.sdiv %arg10, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem shl1_nsw_not_exact_proof : shl1_nsw_not_exact_before ⊑ shl1_nsw_not_exact_after := by + unfold shl1_nsw_not_exact_before shl1_nsw_not_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl1_nsw_not_exact + apply shl1_nsw_not_exact_thm + ---END shl1_nsw_not_exact + + + +def prove_exact_with_high_mask_before := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = llvm.and %arg8, %0 : i8 + %3 = llvm.sdiv %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def prove_exact_with_high_mask_after := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -2 : i8}> : () -> i8 + %2 = llvm.ashr %arg8, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ prove_exact_with_high_mask_after := by + unfold prove_exact_with_high_mask_before prove_exact_with_high_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN prove_exact_with_high_mask + apply prove_exact_with_high_mask_thm + ---END prove_exact_with_high_mask + + + +def prove_exact_with_high_mask_limit_before := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 8 : i8}> : () -> i8 + %2 = llvm.and %arg6, %0 : i8 + %3 = llvm.sdiv %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def prove_exact_with_high_mask_limit_after := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.ashr %arg6, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limit_before ⊑ prove_exact_with_high_mask_limit_after := by + unfold prove_exact_with_high_mask_limit_before prove_exact_with_high_mask_limit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN prove_exact_with_high_mask_limit + apply prove_exact_with_high_mask_limit_thm + ---END prove_exact_with_high_mask_limit + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean new file mode 100644 index 000000000..c09bd68e3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean @@ -0,0 +1,24 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsdivhexacthbyhpowerhofhtwo_proof +theorem t0_thm (x : BitVec 8) : x.sdiv 32#8 = x.sshiftRight 5 := sorry + +theorem shl1_nsw_thm (x x_1 : BitVec 8) : + ((if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind + fun a => if a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a)) ⊑ + if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat) := sorry + +theorem shl1_nsw_not_exact_thm (x x_1 : BitVec 8) : + ((if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind + fun a => if a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a)) ⊑ + (if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none + else 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 a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a) := sorry + +theorem prove_exact_with_high_mask_thm (x : BitVec 8) : (x &&& 248#8).sdiv 4#8 = x.sshiftRight 2 &&& 254#8 := sorry + +theorem prove_exact_with_high_mask_limit_thm (x : BitVec 8) : (x &&& 248#8).sdiv 8#8 = x.sshiftRight 3 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean new file mode 100644 index 000000000..81d775be6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean @@ -0,0 +1,83 @@ +import SSA.Projects.InstCombine.tests.proofs.gshifthaddhinseltpoison_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 gshifthaddhinseltpoison_statements + +def ashr_C1_add_A_C2_i32_before := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 65535 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %3 = llvm.and %arg7, %0 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.ashr %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def ashr_C1_add_A_C2_i32_after := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add_A_C2_i32_after := by + unfold ashr_C1_add_A_C2_i32_before ashr_C1_add_A_C2_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_C1_add_A_C2_i32 + apply ashr_C1_add_A_C2_i32_thm + ---END ashr_C1_add_A_C2_i32 + + + +def lshr_C1_add_A_C2_i32_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 65535 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %3 = llvm.and %arg6, %0 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.shl %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def lshr_C1_add_A_C2_i32_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 65535 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 192 : i32}> : () -> i32 + %2 = llvm.and %arg6, %0 : i32 + %3 = llvm.shl %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add_A_C2_i32_after := by + unfold lshr_C1_add_A_C2_i32_before lshr_C1_add_A_C2_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_C1_add_A_C2_i32 + apply lshr_C1_add_A_C2_i32_thm + ---END lshr_C1_add_A_C2_i32 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison_proof.lean similarity index 59% rename from SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison_proof.lean index b13d57b83..ab97d35de 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison_proof.lean @@ -5,12 +5,11 @@ open BitVec section gshifthaddhinseltpoison_proof theorem ashr_C1_add_A_C2_i32_thm (x : BitVec 32) : - (if 32 ≤ ((x.toNat &&& 65535) + 5) % 4294967296 then none + (if 32#32 ≤ (x &&& 65535#32) + 5#32 then none else some ((6#32).sshiftRight (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ some 0#32 := sorry theorem lshr_C1_add_A_C2_i32_thm (x : BitVec 32) : - (if 32 ≤ ((x.toNat &&& 65535) + 5) % 4294967296 then none - else some (6#32 <<< (((x.toNat &&& 65535) + 5) % 4294967296))) ⊑ - if 32 ≤ x.toNat &&& 65535 then none else some (192#32 <<< (x.toNat &&& 65535)) := sorry + (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 diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean new file mode 100644 index 000000000..d0eb4adc2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean @@ -0,0 +1,122 @@ +import SSA.Projects.InstCombine.tests.proofs.gshifthflags_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 gshifthflags_statements + +def shl_add_nuw_before := [llvm| +{ +^0(%arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 63 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.and %arg16, %0 : i8 + %3 = llvm.and %arg17, %1 : i8 + %4 = llvm.shl %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_add_nuw_after := [llvm| +{ +^0(%arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = 63 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.and %arg16, %0 : i8 + %3 = llvm.and %arg17, %1 : i8 + %4 = llvm.shl %2, %3 overflow : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by + unfold shl_add_nuw_before shl_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nuw + apply shl_add_nuw_thm + ---END shl_add_nuw + + + +def shl_add_nuw_and_nsw_before := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 31 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.and %arg12, %0 : i8 + %3 = llvm.and %arg13, %1 : i8 + %4 = llvm.shl %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_add_nuw_and_nsw_after := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 31 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.and %arg12, %0 : i8 + %3 = llvm.and %arg13, %1 : i8 + %4 = llvm.shl %2, %3 overflow : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_nuw_and_nsw_proof : shl_add_nuw_and_nsw_before ⊑ shl_add_nuw_and_nsw_after := by + unfold shl_add_nuw_and_nsw_before shl_add_nuw_and_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nuw_and_nsw + apply shl_add_nuw_and_nsw_thm + ---END shl_add_nuw_and_nsw + + + +def shl_add_nsw_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.or %arg10, %0 : i8 + %3 = llvm.and %arg11, %1 : i8 + %4 = llvm.shl %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_add_nsw_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.or %arg10, %0 : i8 + %3 = llvm.and %arg11, %1 : i8 + %4 = llvm.shl %2, %3 overflow : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by + unfold shl_add_nsw_before shl_add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nsw + apply shl_add_nsw_thm + ---END shl_add_nsw + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthflags_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthflags_proof.lean new file mode 100644 index 000000000..160b7fd27 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthflags_proof.lean @@ -0,0 +1,23 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshifthflags_proof +theorem shl_add_nuw_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x &&& 2#8 then none else some ((x_1 &&& 63#8) <<< (x.toNat &&& 2))) ⊑ + if (x_1 &&& 63#8) <<< (x.toNat &&& 2) >>> (x.toNat &&& 2) = x_1 &&& 63#8 then none + else if 8#8 ≤ x &&& 2#8 then none else some ((x_1 &&& 63#8) <<< (x.toNat &&& 2)) := sorry + +theorem shl_add_nuw_and_nsw_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x &&& 2#8 then none else some ((x_1 &&& 31#8) <<< (x.toNat &&& 2))) ⊑ + if ((x_1 &&& 31#8) <<< (x.toNat &&& 2)).sshiftRight (x.toNat &&& 2) = x_1 &&& 31#8 then none + else + if (x_1 &&& 31#8) <<< (x.toNat &&& 2) >>> (x.toNat &&& 2) = x_1 &&& 31#8 then none + else if 8#8 ≤ x &&& 2#8 then none else some ((x_1 &&& 31#8) <<< (x.toNat &&& 2)) := sorry + +theorem shl_add_nsw_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x &&& 2#8 then none else some ((x_1 ||| 224#8) <<< (x.toNat &&& 2))) ⊑ + if ((x_1 ||| 224#8) <<< (x.toNat &&& 2)).sshiftRight (x.toNat &&& 2) = x_1 ||| 224#8 then none + else if 8#8 ≤ x &&& 2#8 then none else some ((x_1 ||| 224#8) <<< (x.toNat &&& 2)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean new file mode 100644 index 000000000..6cf110b12 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean @@ -0,0 +1,254 @@ +import SSA.Projects.InstCombine.tests.proofs.gshifthshift_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 gshifthshift_statements + +def shl_shl_before := [llvm| +{ +^0(%arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 28 : i32}> : () -> i32 + %2 = llvm.shl %arg50, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_shl_after := [llvm| +{ +^0(%arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_shl_proof : shl_shl_before ⊑ shl_shl_after := by + unfold shl_shl_before shl_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_shl + apply shl_shl_thm + ---END shl_shl + + + +def lshr_lshr_before := [llvm| +{ +^0(%arg47 : i232): + %0 = "llvm.mlir.constant"() <{value = 231 : i232}> : () -> i232 + %1 = "llvm.mlir.constant"() <{value = 1 : i232}> : () -> i232 + %2 = llvm.lshr %arg47, %0 : i232 + %3 = llvm.lshr %2, %1 : i232 + "llvm.return"(%3) : (i232) -> () +} +] +def lshr_lshr_after := [llvm| +{ +^0(%arg47 : i232): + %0 = "llvm.mlir.constant"() <{value = 0 : i232}> : () -> i232 + "llvm.return"(%0) : (i232) -> () +} +] +theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by + unfold lshr_lshr_before lshr_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_lshr + apply lshr_lshr_thm + ---END lshr_lshr + + + +def ashr_shl_constants_before := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = -33 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %2 = llvm.ashr %0, %arg25 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_shl_constants_after := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = -33 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %2 = llvm.ashr %0, %arg25 : i32 + %3 = llvm.shl %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem ashr_shl_constants_proof : ashr_shl_constants_before ⊑ ashr_shl_constants_after := by + unfold ashr_shl_constants_before ashr_shl_constants_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_shl_constants + apply ashr_shl_constants_thm + ---END ashr_shl_constants + + + +def shl_lshr_demand1_before := [llvm| +{ +^0(%arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = 40 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg20 : i8 + %4 = llvm.lshr %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_lshr_demand1_after := [llvm| +{ +^0(%arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg20 : i8 + %3 = llvm.or %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem shl_lshr_demand1_proof : shl_lshr_demand1_before ⊑ shl_lshr_demand1_after := by + unfold shl_lshr_demand1_before shl_lshr_demand1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_lshr_demand1 + apply shl_lshr_demand1_thm + ---END shl_lshr_demand1 + + + +def shl_lshr_demand6_before := [llvm| +{ +^0(%arg10 : i16): + %0 = "llvm.mlir.constant"() <{value = -32624 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 4 : i16}> : () -> i16 + %2 = "llvm.mlir.constant"() <{value = 4094 : i16}> : () -> i16 + %3 = llvm.shl %0, %arg10 : i16 + %4 = llvm.lshr %3, %1 : i16 + %5 = llvm.and %4, %2 : i16 + "llvm.return"(%5) : (i16) -> () +} +] +def shl_lshr_demand6_after := [llvm| +{ +^0(%arg10 : i16): + %0 = "llvm.mlir.constant"() <{value = 2057 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 4094 : i16}> : () -> i16 + %2 = llvm.shl %0, %arg10 : i16 + %3 = llvm.and %2, %1 : i16 + "llvm.return"(%3) : (i16) -> () +} +] +theorem shl_lshr_demand6_proof : shl_lshr_demand6_before ⊑ shl_lshr_demand6_after := by + unfold shl_lshr_demand6_before shl_lshr_demand6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN shl_lshr_demand6 + apply shl_lshr_demand6_thm + ---END shl_lshr_demand6 + + + +def lshr_shl_demand1_before := [llvm| +{ +^0(%arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 28 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg9 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_shl_demand1_after := [llvm| +{ +^0(%arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = llvm.lshr %0, %arg9 : i8 + %3 = llvm.or %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem lshr_shl_demand1_proof : lshr_shl_demand1_before ⊑ lshr_shl_demand1_after := by + unfold lshr_shl_demand1_before lshr_shl_demand1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_shl_demand1 + apply lshr_shl_demand1_thm + ---END lshr_shl_demand1 + + + +def lshr_shl_demand3_before := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 28 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %0, %arg7 : i8 + %3 = llvm.shl %2, %1 : i8 + %4 = llvm.or %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def lshr_shl_demand3_after := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 28 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %0, %arg7 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + %4 = llvm.or %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem lshr_shl_demand3_proof : lshr_shl_demand3_before ⊑ lshr_shl_demand3_after := by + unfold lshr_shl_demand3_before lshr_shl_demand3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_shl_demand3 + apply lshr_shl_demand3_thm + ---END lshr_shl_demand3 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean new file mode 100644 index 000000000..3d11b8570 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean @@ -0,0 +1,32 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshifthshift_proof +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 ashr_shl_constants_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun a => some (a <<< 3)) ⊑ + Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun a => + if (a <<< 3).sshiftRight 3 = a then none else some (a <<< 3) := sorry + +theorem shl_lshr_demand1_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (40#8 <<< x.toNat)) fun a => some (a >>> 3 ||| 224#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (5#8 <<< x.toNat)) fun a => some (a ||| 224#8) := sorry + +theorem shl_lshr_demand6_thm (x : BitVec 16) : + (Option.bind (if 16#16 ≤ x then none else some (32912#16 <<< x.toNat)) fun a => some (a >>> 4 &&& 4094#16)) ⊑ + Option.bind (if 16#16 ≤ x then none else some (2057#16 <<< x.toNat)) fun a => some (a &&& 4094#16) := sorry + +theorem lshr_shl_demand1_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => some (a <<< 3 ||| 7#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (224#8 >>> x.toNat)) fun a => some (a ||| 7#8) := sorry + +theorem lshr_shl_demand3_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => some (a <<< 3 ||| 3#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => + (if a <<< 3 >>> 3 = a then none else some (a <<< 3)).bind fun a => some (a ||| 3#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean new file mode 100644 index 000000000..66e731864 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean @@ -0,0 +1,310 @@ +import SSA.Projects.InstCombine.tests.proofs.gshlhdemand_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 gshlhdemand_statements + +def src_srem_shl_demand_max_signbit_before := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 30 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -2147483648 : i32}> : () -> i32 + %3 = llvm.srem %arg24, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_max_signbit_after := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2147483648 : i32}> : () -> i32 + %2 = llvm.srem %arg24, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem src_srem_shl_demand_max_signbit_proof : src_srem_shl_demand_max_signbit_before ⊑ src_srem_shl_demand_max_signbit_after := by + unfold src_srem_shl_demand_max_signbit_before src_srem_shl_demand_max_signbit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_max_signbit + apply src_srem_shl_demand_max_signbit_thm + ---END src_srem_shl_demand_max_signbit + + + +def src_srem_shl_demand_min_signbit_before := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 1073741823 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -2147483648 : i32}> : () -> i32 + %3 = llvm.srem %arg23, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_min_signbit_after := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 1073741823 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2147483648 : i32}> : () -> i32 + %2 = llvm.srem %arg23, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem src_srem_shl_demand_min_signbit_proof : src_srem_shl_demand_min_signbit_before ⊑ src_srem_shl_demand_min_signbit_after := by + unfold src_srem_shl_demand_min_signbit_before src_srem_shl_demand_min_signbit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_min_signbit + apply src_srem_shl_demand_min_signbit_thm + ---END src_srem_shl_demand_min_signbit + + + +def src_srem_shl_demand_max_mask_before := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -4 : i32}> : () -> i32 + %3 = llvm.srem %arg22, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_max_mask_after := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -4 : i32}> : () -> i32 + %2 = llvm.srem %arg22, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem src_srem_shl_demand_max_mask_proof : src_srem_shl_demand_max_mask_before ⊑ src_srem_shl_demand_max_mask_after := by + unfold src_srem_shl_demand_max_mask_before src_srem_shl_demand_max_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_max_mask + apply src_srem_shl_demand_max_mask_thm + ---END src_srem_shl_demand_max_mask + + + +def src_srem_shl_demand_max_signbit_mask_hit_first_demand_before := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 29 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1073741824 : i32}> : () -> i32 + %3 = llvm.srem %arg21, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_max_signbit_mask_hit_first_demand_after := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 29 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1073741824 : i32}> : () -> i32 + %3 = llvm.srem %arg21, %0 : i32 + %4 = llvm.shl %3, %1 overflow : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_proof : src_srem_shl_demand_max_signbit_mask_hit_first_demand_before ⊑ src_srem_shl_demand_max_signbit_mask_hit_first_demand_after := by + unfold src_srem_shl_demand_max_signbit_mask_hit_first_demand_before src_srem_shl_demand_max_signbit_mask_hit_first_demand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_max_signbit_mask_hit_first_demand + apply src_srem_shl_demand_max_signbit_mask_hit_first_demand_thm + ---END src_srem_shl_demand_max_signbit_mask_hit_first_demand + + + +def src_srem_shl_demand_min_signbit_mask_hit_last_demand_before := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 536870912 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1073741822 : i32}> : () -> i32 + %3 = llvm.srem %arg20, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_min_signbit_mask_hit_last_demand_after := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 536870912 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1073741822 : i32}> : () -> i32 + %3 = llvm.srem %arg20, %0 : i32 + %4 = llvm.shl %3, %1 overflow : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_proof : src_srem_shl_demand_min_signbit_mask_hit_last_demand_before ⊑ src_srem_shl_demand_min_signbit_mask_hit_last_demand_after := by + unfold src_srem_shl_demand_min_signbit_mask_hit_last_demand_before src_srem_shl_demand_min_signbit_mask_hit_last_demand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_min_signbit_mask_hit_last_demand + apply src_srem_shl_demand_min_signbit_mask_hit_last_demand_thm + ---END src_srem_shl_demand_min_signbit_mask_hit_last_demand + + + +def src_srem_shl_demand_eliminate_signbit_before := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 1073741824 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %3 = llvm.srem %arg19, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_eliminate_signbit_after := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 1073741824 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %3 = llvm.srem %arg19, %0 : i32 + %4 = llvm.shl %3, %1 overflow : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem src_srem_shl_demand_eliminate_signbit_proof : src_srem_shl_demand_eliminate_signbit_before ⊑ src_srem_shl_demand_eliminate_signbit_after := by + unfold src_srem_shl_demand_eliminate_signbit_before src_srem_shl_demand_eliminate_signbit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_eliminate_signbit + apply src_srem_shl_demand_eliminate_signbit_thm + ---END src_srem_shl_demand_eliminate_signbit + + + +def src_srem_shl_demand_max_mask_hit_demand_before := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -4 : i32}> : () -> i32 + %3 = llvm.srem %arg18, %0 : i32 + %4 = llvm.shl %3, %1 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src_srem_shl_demand_max_mask_hit_demand_after := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -4 : i32}> : () -> i32 + %3 = llvm.srem %arg18, %0 : i32 + %4 = llvm.shl %3, %1 overflow : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem src_srem_shl_demand_max_mask_hit_demand_proof : src_srem_shl_demand_max_mask_hit_demand_before ⊑ src_srem_shl_demand_max_mask_hit_demand_after := by + unfold src_srem_shl_demand_max_mask_hit_demand_before src_srem_shl_demand_max_mask_hit_demand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN src_srem_shl_demand_max_mask_hit_demand + apply src_srem_shl_demand_max_mask_hit_demand_thm + ---END src_srem_shl_demand_max_mask_hit_demand + + + +def set_shl_mask_before := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 196609 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 65536 : i32}> : () -> i32 + %2 = llvm.or %arg3, %0 : i32 + %3 = llvm.shl %2, %arg4 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def set_shl_mask_after := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 65537 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 65536 : i32}> : () -> i32 + %2 = llvm.or %arg3, %0 : i32 + %3 = llvm.shl %2, %arg4 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem set_shl_mask_proof : set_shl_mask_before ⊑ set_shl_mask_after := by + unfold set_shl_mask_before set_shl_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN set_shl_mask + apply set_shl_mask_thm + ---END set_shl_mask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean new file mode 100644 index 000000000..0e9463eb2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean @@ -0,0 +1,47 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshlhdemand_proof +theorem src_srem_shl_demand_max_signbit_thm (x : BitVec 32) : + (x - x.sdiv 2#32 * 2#32) <<< 30 &&& 2147483648#32 = x - x.sdiv 2#32 * 2#32 &&& 2147483648#32 := sorry + +theorem src_srem_shl_demand_min_signbit_thm (x : BitVec 32) : + (x - x.sdiv 1073741823#32 * 1073741823#32) <<< 1 &&& 2147483648#32 = + x - x.sdiv 1073741823#32 * 1073741823#32 &&& 2147483648#32 := sorry + +theorem src_srem_shl_demand_max_mask_thm (x : BitVec 32) : + (x - x.sdiv 2#32 * 2#32) <<< 1 &&& 4294967292#32 = x - x.sdiv 2#32 * 2#32 &&& 4294967292#32 := sorry + +theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_thm (x : BitVec 32) : + some ((x - x.sdiv 4#32 * 4#32) <<< 29 &&& 3221225472#32) ⊑ + (if ((x - x.sdiv 4#32 * 4#32) <<< 29).sshiftRight 29 = x - x.sdiv 4#32 * 4#32 then none + else some ((x - x.sdiv 4#32 * 4#32) <<< 29)).bind + fun a => some (a &&& 3221225472#32) := sorry + +theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_thm (x : BitVec 32) : + some ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1 &&& 3221225474#32) ⊑ + (if ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1).sshiftRight 1 = x - x.sdiv 536870912#32 * 536870912#32 then + none + else some ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1)).bind + fun a => some (a &&& 3221225474#32) := sorry + +theorem src_srem_shl_demand_eliminate_signbit_thm (x : BitVec 32) : + some ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1 &&& 2#32) ⊑ + (if ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1).sshiftRight 1 = x - x.sdiv 1073741824#32 * 1073741824#32 then + none + else some ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1)).bind + fun a => some (a &&& 2#32) := sorry + +theorem src_srem_shl_demand_max_mask_hit_demand_thm (x : BitVec 32) : + some ((x - x.sdiv 4#32 * 4#32) <<< 1 &&& 4294967292#32) ⊑ + (if ((x - x.sdiv 4#32 * 4#32) <<< 1).sshiftRight 1 = x - x.sdiv 4#32 * 4#32 then none + else some ((x - x.sdiv 4#32 * 4#32) <<< 1)).bind + fun a => some (a &&& 4294967292#32) := sorry + +theorem set_shl_mask_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 196609#32) <<< x.toNat)) fun a => some (a &&& 65536#32)) ⊑ + Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 65537#32) <<< x.toNat)) fun a => + some (a &&& 65536#32) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean new file mode 100644 index 000000000..5b78c4c1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean @@ -0,0 +1,419 @@ +import SSA.Projects.InstCombine.tests.proofs.gshlhfactor_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 gshlhfactor_statements + +def add_shl_same_amount_before := [llvm| +{ +^0(%arg59 : i6, %arg60 : i6, %arg61 : i6): + %0 = llvm.shl %arg59, %arg61 : i6 + %1 = llvm.shl %arg60, %arg61 : i6 + %2 = llvm.add %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def add_shl_same_amount_after := [llvm| +{ +^0(%arg59 : i6, %arg60 : i6, %arg61 : i6): + %0 = llvm.add %arg59, %arg60 : i6 + %1 = llvm.shl %0, %arg61 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem add_shl_same_amount_proof : add_shl_same_amount_before ⊑ add_shl_same_amount_after := by + unfold add_shl_same_amount_before add_shl_same_amount_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount + apply add_shl_same_amount_thm + ---END add_shl_same_amount + + + +def add_shl_same_amount_nuw_before := [llvm| +{ +^0(%arg53 : i64, %arg54 : i64, %arg55 : i64): + %0 = llvm.shl %arg53, %arg55 overflow : i64 + %1 = llvm.shl %arg54, %arg55 overflow : i64 + %2 = llvm.add %0, %1 overflow : i64 + "llvm.return"(%2) : (i64) -> () +} +] +def add_shl_same_amount_nuw_after := [llvm| +{ +^0(%arg53 : i64, %arg54 : i64, %arg55 : i64): + %0 = llvm.add %arg53, %arg54 overflow : i64 + %1 = llvm.shl %0, %arg55 overflow : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem add_shl_same_amount_nuw_proof : add_shl_same_amount_nuw_before ⊑ add_shl_same_amount_nuw_after := by + unfold add_shl_same_amount_nuw_before add_shl_same_amount_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_nuw + apply add_shl_same_amount_nuw_thm + ---END add_shl_same_amount_nuw + + + +def add_shl_same_amount_partial_nsw1_before := [llvm| +{ +^0(%arg41 : i6, %arg42 : i6, %arg43 : i6): + %0 = llvm.shl %arg41, %arg43 overflow : i6 + %1 = llvm.shl %arg42, %arg43 overflow : i6 + %2 = llvm.add %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def add_shl_same_amount_partial_nsw1_after := [llvm| +{ +^0(%arg41 : i6, %arg42 : i6, %arg43 : i6): + %0 = llvm.add %arg41, %arg42 : i6 + %1 = llvm.shl %0, %arg43 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem add_shl_same_amount_partial_nsw1_proof : add_shl_same_amount_partial_nsw1_before ⊑ add_shl_same_amount_partial_nsw1_after := by + unfold add_shl_same_amount_partial_nsw1_before add_shl_same_amount_partial_nsw1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_partial_nsw1 + apply add_shl_same_amount_partial_nsw1_thm + ---END add_shl_same_amount_partial_nsw1 + + + +def add_shl_same_amount_partial_nsw2_before := [llvm| +{ +^0(%arg38 : i6, %arg39 : i6, %arg40 : i6): + %0 = llvm.shl %arg38, %arg40 : i6 + %1 = llvm.shl %arg39, %arg40 overflow : i6 + %2 = llvm.add %0, %1 overflow : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def add_shl_same_amount_partial_nsw2_after := [llvm| +{ +^0(%arg38 : i6, %arg39 : i6, %arg40 : i6): + %0 = llvm.add %arg38, %arg39 : i6 + %1 = llvm.shl %0, %arg40 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem add_shl_same_amount_partial_nsw2_proof : add_shl_same_amount_partial_nsw2_before ⊑ add_shl_same_amount_partial_nsw2_after := by + unfold add_shl_same_amount_partial_nsw2_before add_shl_same_amount_partial_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_partial_nsw2 + apply add_shl_same_amount_partial_nsw2_thm + ---END add_shl_same_amount_partial_nsw2 + + + +def add_shl_same_amount_partial_nuw1_before := [llvm| +{ +^0(%arg35 : i6, %arg36 : i6, %arg37 : i6): + %0 = llvm.shl %arg35, %arg37 overflow : i6 + %1 = llvm.shl %arg36, %arg37 overflow : i6 + %2 = llvm.add %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def add_shl_same_amount_partial_nuw1_after := [llvm| +{ +^0(%arg35 : i6, %arg36 : i6, %arg37 : i6): + %0 = llvm.add %arg35, %arg36 : i6 + %1 = llvm.shl %0, %arg37 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem add_shl_same_amount_partial_nuw1_proof : add_shl_same_amount_partial_nuw1_before ⊑ add_shl_same_amount_partial_nuw1_after := by + unfold add_shl_same_amount_partial_nuw1_before add_shl_same_amount_partial_nuw1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_partial_nuw1 + apply add_shl_same_amount_partial_nuw1_thm + ---END add_shl_same_amount_partial_nuw1 + + + +def add_shl_same_amount_partial_nuw2_before := [llvm| +{ +^0(%arg32 : i6, %arg33 : i6, %arg34 : i6): + %0 = llvm.shl %arg32, %arg34 overflow : i6 + %1 = llvm.shl %arg33, %arg34 : i6 + %2 = llvm.add %0, %1 overflow : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def add_shl_same_amount_partial_nuw2_after := [llvm| +{ +^0(%arg32 : i6, %arg33 : i6, %arg34 : i6): + %0 = llvm.add %arg32, %arg33 : i6 + %1 = llvm.shl %0, %arg34 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem add_shl_same_amount_partial_nuw2_proof : add_shl_same_amount_partial_nuw2_before ⊑ add_shl_same_amount_partial_nuw2_after := by + unfold add_shl_same_amount_partial_nuw2_before add_shl_same_amount_partial_nuw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_partial_nuw2 + apply add_shl_same_amount_partial_nuw2_thm + ---END add_shl_same_amount_partial_nuw2 + + + +def sub_shl_same_amount_before := [llvm| +{ +^0(%arg29 : i6, %arg30 : i6, %arg31 : i6): + %0 = llvm.shl %arg29, %arg31 : i6 + %1 = llvm.shl %arg30, %arg31 : i6 + %2 = llvm.sub %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def sub_shl_same_amount_after := [llvm| +{ +^0(%arg29 : i6, %arg30 : i6, %arg31 : i6): + %0 = llvm.sub %arg29, %arg30 : i6 + %1 = llvm.shl %0, %arg31 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem sub_shl_same_amount_proof : sub_shl_same_amount_before ⊑ sub_shl_same_amount_after := by + unfold sub_shl_same_amount_before sub_shl_same_amount_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount + apply sub_shl_same_amount_thm + ---END sub_shl_same_amount + + + +def sub_shl_same_amount_nuw_before := [llvm| +{ +^0(%arg23 : i64, %arg24 : i64, %arg25 : i64): + %0 = llvm.shl %arg23, %arg25 overflow : i64 + %1 = llvm.shl %arg24, %arg25 overflow : i64 + %2 = llvm.sub %0, %1 overflow : i64 + "llvm.return"(%2) : (i64) -> () +} +] +def sub_shl_same_amount_nuw_after := [llvm| +{ +^0(%arg23 : i64, %arg24 : i64, %arg25 : i64): + %0 = llvm.sub %arg23, %arg24 overflow : i64 + %1 = llvm.shl %0, %arg25 overflow : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem sub_shl_same_amount_nuw_proof : sub_shl_same_amount_nuw_before ⊑ sub_shl_same_amount_nuw_after := by + unfold sub_shl_same_amount_nuw_before sub_shl_same_amount_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount_nuw + apply sub_shl_same_amount_nuw_thm + ---END sub_shl_same_amount_nuw + + + +def sub_shl_same_amount_partial_nsw1_before := [llvm| +{ +^0(%arg11 : i6, %arg12 : i6, %arg13 : i6): + %0 = llvm.shl %arg11, %arg13 overflow : i6 + %1 = llvm.shl %arg12, %arg13 overflow : i6 + %2 = llvm.sub %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def sub_shl_same_amount_partial_nsw1_after := [llvm| +{ +^0(%arg11 : i6, %arg12 : i6, %arg13 : i6): + %0 = llvm.sub %arg11, %arg12 : i6 + %1 = llvm.shl %0, %arg13 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem sub_shl_same_amount_partial_nsw1_proof : sub_shl_same_amount_partial_nsw1_before ⊑ sub_shl_same_amount_partial_nsw1_after := by + unfold sub_shl_same_amount_partial_nsw1_before sub_shl_same_amount_partial_nsw1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount_partial_nsw1 + apply sub_shl_same_amount_partial_nsw1_thm + ---END sub_shl_same_amount_partial_nsw1 + + + +def sub_shl_same_amount_partial_nsw2_before := [llvm| +{ +^0(%arg8 : i6, %arg9 : i6, %arg10 : i6): + %0 = llvm.shl %arg8, %arg10 : i6 + %1 = llvm.shl %arg9, %arg10 overflow : i6 + %2 = llvm.sub %0, %1 overflow : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def sub_shl_same_amount_partial_nsw2_after := [llvm| +{ +^0(%arg8 : i6, %arg9 : i6, %arg10 : i6): + %0 = llvm.sub %arg8, %arg9 : i6 + %1 = llvm.shl %0, %arg10 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem sub_shl_same_amount_partial_nsw2_proof : sub_shl_same_amount_partial_nsw2_before ⊑ sub_shl_same_amount_partial_nsw2_after := by + unfold sub_shl_same_amount_partial_nsw2_before sub_shl_same_amount_partial_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount_partial_nsw2 + apply sub_shl_same_amount_partial_nsw2_thm + ---END sub_shl_same_amount_partial_nsw2 + + + +def sub_shl_same_amount_partial_nuw1_before := [llvm| +{ +^0(%arg5 : i6, %arg6 : i6, %arg7 : i6): + %0 = llvm.shl %arg5, %arg7 overflow : i6 + %1 = llvm.shl %arg6, %arg7 overflow : i6 + %2 = llvm.sub %0, %1 : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def sub_shl_same_amount_partial_nuw1_after := [llvm| +{ +^0(%arg5 : i6, %arg6 : i6, %arg7 : i6): + %0 = llvm.sub %arg5, %arg6 : i6 + %1 = llvm.shl %0, %arg7 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem sub_shl_same_amount_partial_nuw1_proof : sub_shl_same_amount_partial_nuw1_before ⊑ sub_shl_same_amount_partial_nuw1_after := by + unfold sub_shl_same_amount_partial_nuw1_before sub_shl_same_amount_partial_nuw1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount_partial_nuw1 + apply sub_shl_same_amount_partial_nuw1_thm + ---END sub_shl_same_amount_partial_nuw1 + + + +def sub_shl_same_amount_partial_nuw2_before := [llvm| +{ +^0(%arg2 : i6, %arg3 : i6, %arg4 : i6): + %0 = llvm.shl %arg2, %arg4 overflow : i6 + %1 = llvm.shl %arg3, %arg4 : i6 + %2 = llvm.sub %0, %1 overflow : i6 + "llvm.return"(%2) : (i6) -> () +} +] +def sub_shl_same_amount_partial_nuw2_after := [llvm| +{ +^0(%arg2 : i6, %arg3 : i6, %arg4 : i6): + %0 = llvm.sub %arg2, %arg3 : i6 + %1 = llvm.shl %0, %arg4 : i6 + "llvm.return"(%1) : (i6) -> () +} +] +theorem sub_shl_same_amount_partial_nuw2_proof : sub_shl_same_amount_partial_nuw2_before ⊑ sub_shl_same_amount_partial_nuw2_after := by + unfold sub_shl_same_amount_partial_nuw2_before sub_shl_same_amount_partial_nuw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_shl_same_amount_partial_nuw2 + apply sub_shl_same_amount_partial_nuw2_thm + ---END sub_shl_same_amount_partial_nuw2 + + + +def add_shl_same_amount_constants_before := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.shl %0, %arg1 : i8 + %3 = llvm.shl %1, %arg1 : i8 + %4 = llvm.add %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def add_shl_same_amount_constants_after := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg1 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_shl_same_amount_constants_proof : add_shl_same_amount_constants_before ⊑ add_shl_same_amount_constants_after := by + unfold add_shl_same_amount_constants_before add_shl_same_amount_constants_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN add_shl_same_amount_constants + apply add_shl_same_amount_constants_thm + ---END add_shl_same_amount_constants + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean new file mode 100644 index 000000000..eb56796c2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean @@ -0,0 +1,99 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshlhfactor_proof +theorem add_shl_same_amount_thm (x x_1 x_2 : BitVec 6) : + (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a + a_1)) ⊑ + if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_nuw_thm (x x_1 x_2 : BitVec 64) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 64#64 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 64#64 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + (if x_2 + x < x_2 ∨ x_2 + x < x then none else some (x_2 + x)).bind fun a => + if a <<< x_1.toNat >>> x_1.toNat = a then none else if 64#64 ≤ x_1 then none else some (a <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_partial_nsw1_thm (x x_1 x_2 : BitVec 6) : + ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none + else if 6#6 ≤ 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 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => some (a + a_1)) ⊑ + if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_partial_nsw2_thm (x x_1 x_2 : BitVec 6) : + (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => + (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none + else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => if a.msb = a_1.msb ∧ ¬(a + a_1).msb = a.msb then none else some (a + a_1)) ⊑ + if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_partial_nuw1_thm (x x_1 x_2 : BitVec 6) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => some (a + a_1)) ⊑ + if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_partial_nuw2_thm (x x_1 x_2 : BitVec 6) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => + if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_thm (x x_1 x_2 : BitVec 6) : + (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a - a_1)) ⊑ + if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_nuw_thm (x x_1 x_2 : BitVec 64) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 64#64 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 64#64 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => if a < a_1 then none else some (a - a_1)) ⊑ + (if x_2 < x then none else some (x_2 - x)).bind fun a => + if a <<< x_1.toNat >>> x_1.toNat = a then none else if 64#64 ≤ x_1 then none else some (a <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_partial_nsw1_thm (x x_1 x_2 : BitVec 6) : + ((if (x_2 <<< x_1.toNat).sshiftRight x_1.toNat = x_2 then none + else if 6#6 ≤ 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 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => some (a - a_1)) ⊑ + if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_partial_nsw2_thm (x x_1 x_2 : BitVec 6) : + (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => + (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none + else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => + if (signExtend 7 a - signExtend 7 a_1).msb = (signExtend 7 a - signExtend 7 a_1).getMsbD 1 then some (a - a_1) + else none) ⊑ + if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_partial_nuw1_thm (x x_1 x_2 : BitVec 6) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind + fun a_1 => some (a - a_1)) ⊑ + if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry + +theorem sub_shl_same_amount_partial_nuw2_thm (x x_1 x_2 : BitVec 6) : + ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind + fun a => + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => + if a < a_1 then none else some (a - a_1)) ⊑ + if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry + +theorem add_shl_same_amount_constants_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (4#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x then none else some (3#8 <<< x.toNat)) fun a_1 => some (a + a_1)) ⊑ + if 8#8 ≤ x then none else some (7#8 <<< x.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean new file mode 100644 index 000000000..d16d32172 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean @@ -0,0 +1,110 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhxorhorhneghand_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 gsubhxorhorhneghand_statements + +def sub_to_and_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = llvm.or %arg14, %arg15 : i32 + %1 = llvm.xor %arg14, %arg15 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_and_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.and %arg14, %arg15 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by + unfold sub_to_and_before sub_to_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_and + apply sub_to_and_thm + ---END sub_to_and + + + +def sub_to_and_or_commuted_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = llvm.or %arg7, %arg6 : i32 + %1 = llvm.xor %arg6, %arg7 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_and_or_commuted_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg7 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_and_or_commuted_after := by + unfold sub_to_and_or_commuted_before sub_to_and_or_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_and_or_commuted + apply sub_to_and_or_commuted_thm + ---END sub_to_and_or_commuted + + + +def sub_to_and_and_commuted_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = llvm.or %arg4, %arg5 : i32 + %1 = llvm.xor %arg5, %arg4 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_and_and_commuted_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.and %arg5, %arg4 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_to_and_and_commuted_after := by + unfold sub_to_and_and_commuted_before sub_to_and_and_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_and_and_commuted + apply sub_to_and_and_commuted_thm + ---END sub_to_and_and_commuted + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand_proof.lean diff --git a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean new file mode 100644 index 000000000..ad4bf4795 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean @@ -0,0 +1,354 @@ +import SSA.Projects.InstCombine.tests.proofs.gunfoldhmaskedhmergehwithhconsthmaskhscalar_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 gunfoldhmaskedhmergehwithhconsthmaskhscalar_statements + +def scalar0_before := [llvm| +{ +^0(%arg32 : i4, %arg33 : i4): + %0 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %1 = llvm.xor %arg32, %arg33 : i4 + %2 = llvm.and %1, %0 : i4 + %3 = llvm.xor %2, %arg33 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def scalar0_after := [llvm| +{ +^0(%arg32 : i4, %arg33 : i4): + %0 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %2 = llvm.and %arg32, %0 : i4 + %3 = llvm.and %arg33, %1 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem scalar0_proof : scalar0_before ⊑ scalar0_after := by + unfold scalar0_before scalar0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN scalar0 + apply scalar0_thm + ---END scalar0 + + + +def scalar1_before := [llvm| +{ +^0(%arg30 : i4, %arg31 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.xor %arg30, %arg31 : i4 + %2 = llvm.and %1, %0 : i4 + %3 = llvm.xor %2, %arg31 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def scalar1_after := [llvm| +{ +^0(%arg30 : i4, %arg31 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.and %arg30, %0 : i4 + %3 = llvm.and %arg31, %1 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem scalar1_proof : scalar1_before ⊑ scalar1_after := by + unfold scalar1_before scalar1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN scalar1 + apply scalar1_thm + ---END scalar1 + + + +def in_constant_varx_mone_before := [llvm| +{ +^0(%arg28 : i4, %arg29 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg28, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %0 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_varx_mone_after := [llvm| +{ +^0(%arg28 : i4, %arg29 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.or %arg28, %0 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem in_constant_varx_mone_proof : in_constant_varx_mone_before ⊑ in_constant_varx_mone_after := by + unfold in_constant_varx_mone_before in_constant_varx_mone_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN in_constant_varx_mone + apply in_constant_varx_mone_thm + ---END in_constant_varx_mone + + + +def in_constant_varx_14_before := [llvm| +{ +^0(%arg26 : i4, %arg27 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg26, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %0 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_varx_14_after := [llvm| +{ +^0(%arg26 : i4, %arg27 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.or %arg26, %0 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem in_constant_varx_14_proof : in_constant_varx_14_before ⊑ in_constant_varx_14_after := by + unfold in_constant_varx_14_before in_constant_varx_14_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN in_constant_varx_14 + apply in_constant_varx_14_thm + ---END in_constant_varx_14 + + + +def in_constant_mone_vary_before := [llvm| +{ +^0(%arg24 : i4, %arg25 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg24, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg24 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_mone_vary_after := [llvm| +{ +^0(%arg24 : i4, %arg25 : i4): + %0 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %1 = llvm.or %arg24, %0 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem in_constant_mone_vary_proof : in_constant_mone_vary_before ⊑ in_constant_mone_vary_after := by + unfold in_constant_mone_vary_before in_constant_mone_vary_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN in_constant_mone_vary + apply in_constant_mone_vary_thm + ---END in_constant_mone_vary + + + +def in_constant_14_vary_before := [llvm| +{ +^0(%arg22 : i4, %arg23 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg22, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg22 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_14_vary_after := [llvm| +{ +^0(%arg22 : i4, %arg23 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.and %arg22, %0 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem in_constant_14_vary_proof : in_constant_14_vary_before ⊑ in_constant_14_vary_after := by + unfold in_constant_14_vary_before in_constant_14_vary_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN in_constant_14_vary + apply in_constant_14_vary_thm + ---END in_constant_14_vary + + + +def c_1_0_0_before := [llvm| +{ +^0(%arg20 : i4, %arg21 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.xor %arg21, %arg20 : i4 + %2 = llvm.and %1, %0 : i4 + %3 = llvm.xor %2, %arg21 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def c_1_0_0_after := [llvm| +{ +^0(%arg20 : i4, %arg21 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.and %arg20, %0 : i4 + %3 = llvm.and %arg21, %1 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by + unfold c_1_0_0_before c_1_0_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN c_1_0_0 + apply c_1_0_0_thm + ---END c_1_0_0 + + + +def c_0_1_0_before := [llvm| +{ +^0(%arg18 : i4, %arg19 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.xor %arg18, %arg19 : i4 + %2 = llvm.and %1, %0 : i4 + %3 = llvm.xor %2, %arg18 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def c_0_1_0_after := [llvm| +{ +^0(%arg18 : i4, %arg19 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.and %arg19, %0 : i4 + %3 = llvm.and %arg18, %1 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by + unfold c_0_1_0_before c_0_1_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN c_0_1_0 + apply c_0_1_0_thm + ---END c_0_1_0 + + + +def c_1_1_0_before := [llvm| +{ +^0(%arg16 : i4, %arg17 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.xor %arg17, %arg16 : i4 + %2 = llvm.and %1, %0 : i4 + %3 = llvm.xor %2, %arg16 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def c_1_1_0_after := [llvm| +{ +^0(%arg16 : i4, %arg17 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.and %arg17, %0 : i4 + %3 = llvm.and %arg16, %1 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by + unfold c_1_1_0_before c_1_1_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN c_1_1_0 + apply c_1_1_0_thm + ---END c_1_1_0 + + + +def commutativity_constant_14_vary_before := [llvm| +{ +^0(%arg12 : i4, %arg13 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg12, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %arg12, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def commutativity_constant_14_vary_after := [llvm| +{ +^0(%arg12 : i4, %arg13 : i4): + %0 = "llvm.mlir.constant"() <{value = -2 : i4}> : () -> i4 + %1 = llvm.and %arg12, %0 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem commutativity_constant_14_vary_proof : commutativity_constant_14_vary_before ⊑ commutativity_constant_14_vary_after := by + unfold commutativity_constant_14_vary_before commutativity_constant_14_vary_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN commutativity_constant_14_vary + apply commutativity_constant_14_vary_thm + ---END commutativity_constant_14_vary + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar_proof.lean new file mode 100644 index 000000000..1a1edd6b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar_proof.lean @@ -0,0 +1,26 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gunfoldhmaskedhmergehwithhconsthmaskhscalar_proof +theorem scalar0_thm (x x_1 : BitVec 4) : (x_1 ^^^ x) &&& 1#4 ^^^ x = x_1 &&& 1#4 ||| x &&& 14#4 := sorry + +theorem scalar1_thm (x x_1 : BitVec 4) : (x_1 ^^^ x) &&& 14#4 ^^^ x = x_1 &&& 14#4 ||| x &&& 1#4 := sorry + +theorem in_constant_varx_mone_thm (x : BitVec 4) : (x ^^^ 15#4) &&& 1#4 ^^^ 15#4 = x ||| 14#4 := sorry + +theorem in_constant_varx_14_thm (x : BitVec 4) : (x ^^^ 14#4) &&& 1#4 ^^^ 14#4 = x ||| 14#4 := sorry + +theorem in_constant_mone_vary_thm (x : BitVec 4) : (x ^^^ 15#4) &&& 1#4 ^^^ x = x ||| 1#4 := sorry + +theorem in_constant_14_vary_thm (x : BitVec 4) : (x ^^^ 14#4) &&& 1#4 ^^^ x = x &&& 14#4 := sorry + +theorem c_1_0_0_thm (x x_1 : BitVec 4) : (x_1 ^^^ x) &&& 14#4 ^^^ x_1 = x &&& 14#4 ||| x_1 &&& 1#4 := sorry + +theorem c_0_1_0_thm (x x_1 : BitVec 4) : (x_1 ^^^ x) &&& 14#4 ^^^ x_1 = x &&& 14#4 ||| x_1 &&& 1#4 := sorry + +theorem c_1_1_0_thm (x x_1 : BitVec 4) : (x_1 ^^^ x) &&& 14#4 ^^^ x = x_1 &&& 14#4 ||| x &&& 1#4 := sorry + +theorem commutativity_constant_14_vary_thm (x : BitVec 4) : x ^^^ (x ^^^ 14#4) &&& 1#4 = x &&& 14#4 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gxor2.lean b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean new file mode 100644 index 000000000..f421317c4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean @@ -0,0 +1,1332 @@ +import SSA.Projects.InstCombine.tests.proofs.gxor2_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 gxor2_statements + +def test2_before := [llvm| +{ +^0(%arg120 : i32): + %0 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 145 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 153 : i32}> : () -> i32 + %3 = llvm.and %arg120, %0 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg120 : i32): + %0 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg120, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test2_proof : test2_before ⊑ test2_after := by + unfold test2_before test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg119 : i32): + %0 = "llvm.mlir.constant"() <{value = 145 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 177 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 153 : i32}> : () -> i32 + %3 = llvm.or %arg119, %0 : i32 + %4 = llvm.and %3, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg119 : i32): + %0 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg119, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem test3_proof : test3_before ⊑ test3_after := by + unfold test3_before test3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + + +def test5_before := [llvm| +{ +^0(%arg118 : i32): + %0 = "llvm.mlir.constant"() <{value = 1234 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %3 = llvm.xor %arg118, %0 : i32 + %4 = llvm.lshr %3, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.add %5, %3 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg118 : i32): + %0 = "llvm.mlir.constant"() <{value = 1234 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %3 = llvm.xor %arg118, %0 : i32 + %4 = llvm.lshr %arg118, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.add %5, %3 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + + +def test6_before := [llvm| +{ +^0(%arg117 : i32): + %0 = "llvm.mlir.constant"() <{value = 1234 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = llvm.xor %arg117, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test6_after := [llvm| +{ +^0(%arg117 : i32): + %0 = "llvm.mlir.constant"() <{value = 1234 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = llvm.xor %arg117, %0 : i32 + %3 = llvm.lshr %arg117, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem test6_proof : test6_before ⊑ test6_after := by + unfold test6_before test6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test6 + apply test6_thm + ---END test6 + + + +def test7_before := [llvm| +{ +^0(%arg115 : i32, %arg116 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg115, %arg116 : i32 + %2 = llvm.xor %arg115, %0 : i32 + %3 = llvm.xor %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg115 : i32, %arg116 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg116, %0 : i32 + %2 = llvm.or %arg115, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + + +def test8_before := [llvm| +{ +^0(%arg113 : i32, %arg114 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg113, %0 : i32 + %2 = llvm.or %arg113, %arg114 : i32 + %3 = llvm.xor %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg113 : i32, %arg114 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg114, %0 : i32 + %2 = llvm.or %arg113, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test8 + apply test8_thm + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg111 : i32, %arg112 : i32): + %0 = llvm.and %arg111, %arg112 : i32 + %1 = llvm.xor %arg111, %arg112 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg111 : i32, %arg112 : i32): + %0 = llvm.or %arg111, %arg112 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test9_proof : test9_before ⊑ test9_after := by + unfold test9_before test9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test9 + apply test9_thm + ---END test9 + + + +def test9b_before := [llvm| +{ +^0(%arg109 : i32, %arg110 : i32): + %0 = llvm.and %arg109, %arg110 : i32 + %1 = llvm.xor %arg110, %arg109 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test9b_after := [llvm| +{ +^0(%arg109 : i32, %arg110 : i32): + %0 = llvm.or %arg109, %arg110 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test9b_proof : test9b_before ⊑ test9b_after := by + unfold test9b_before test9b_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test9b + apply test9b_thm + ---END test9b + + + +def test10_before := [llvm| +{ +^0(%arg107 : i32, %arg108 : i32): + %0 = llvm.xor %arg107, %arg108 : i32 + %1 = llvm.and %arg107, %arg108 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg107 : i32, %arg108 : i32): + %0 = llvm.or %arg107, %arg108 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test10_proof : test10_before ⊑ test10_after := by + unfold test10_before test10_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test10 + apply test10_thm + ---END test10 + + + +def test10b_before := [llvm| +{ +^0(%arg105 : i32, %arg106 : i32): + %0 = llvm.xor %arg105, %arg106 : i32 + %1 = llvm.and %arg106, %arg105 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test10b_after := [llvm| +{ +^0(%arg105 : i32, %arg106 : i32): + %0 = llvm.or %arg105, %arg106 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test10b_proof : test10b_before ⊑ test10b_after := by + unfold test10b_before test10b_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test10b + apply test10b_thm + ---END test10b + + + +def test11_before := [llvm| +{ +^0(%arg103 : i32, %arg104 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg104, %arg103 : i32 + %2 = llvm.xor %arg103, %0 : i32 + %3 = llvm.xor %2, %arg104 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test11_after := [llvm| +{ +^0(%arg103 : i32, %arg104 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg104, %arg103 : i32 + %2 = llvm.xor %arg103, %arg104 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : 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 + simp_alive_case_bash + intros + try simp + ---BEGIN test11 + apply test11_thm + ---END test11 + + + +def test11b_before := [llvm| +{ +^0(%arg101 : i32, %arg102 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg102, %arg101 : i32 + %2 = llvm.xor %arg101, %0 : i32 + %3 = llvm.xor %2, %arg102 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test11b_after := [llvm| +{ +^0(%arg101 : i32, %arg102 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg102, %arg101 : i32 + %2 = llvm.xor %arg101, %arg102 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem test11b_proof : test11b_before ⊑ test11b_after := by + unfold test11b_before test11b_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test11b + apply test11b_thm + ---END test11b + + + +def test11c_before := [llvm| +{ +^0(%arg99 : i32, %arg100 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg99, %arg100 : i32 + %2 = llvm.xor %arg99, %0 : i32 + %3 = llvm.xor %2, %arg100 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test11c_after := [llvm| +{ +^0(%arg99 : i32, %arg100 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg99, %arg100 : i32 + %2 = llvm.xor %arg99, %arg100 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem test11c_proof : test11c_before ⊑ test11c_after := by + unfold test11c_before test11c_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test11c + apply test11c_thm + ---END test11c + + + +def test11d_before := [llvm| +{ +^0(%arg97 : i32, %arg98 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg97, %arg98 : i32 + %2 = llvm.xor %arg97, %0 : i32 + %3 = llvm.xor %2, %arg98 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test11d_after := [llvm| +{ +^0(%arg97 : i32, %arg98 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg97, %arg98 : i32 + %2 = llvm.xor %arg97, %arg98 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem test11d_proof : test11d_before ⊑ test11d_after := by + unfold test11d_before test11d_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test11d + apply test11d_thm + ---END test11d + + + +def test11e_before := [llvm| +{ +^0(%arg94 : i32, %arg95 : i32, %arg96 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg95, %arg96 : i32 + %2 = llvm.xor %1, %arg94 : i32 + %3 = llvm.xor %arg94, %0 : i32 + %4 = llvm.xor %1, %3 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test11e_after := [llvm| +{ +^0(%arg94 : i32, %arg95 : i32, %arg96 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg95, %arg96 : i32 + %2 = llvm.xor %1, %arg94 : i32 + %3 = llvm.xor %arg94, %1 : i32 + %4 = llvm.xor %3, %0 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem test11e_proof : test11e_before ⊑ test11e_after := by + unfold test11e_before test11e_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test11e + apply test11e_thm + ---END test11e + + + +def test11f_before := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32, %arg93 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg92, %arg93 : i32 + %2 = llvm.xor %1, %arg91 : i32 + %3 = llvm.xor %arg91, %0 : i32 + %4 = llvm.xor %1, %3 : i32 + %5 = llvm.and %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test11f_after := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32, %arg93 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg92, %arg93 : i32 + %2 = llvm.xor %1, %arg91 : i32 + %3 = llvm.xor %arg91, %1 : i32 + %4 = llvm.xor %3, %0 : i32 + %5 = llvm.and %2, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem test11f_proof : test11f_before ⊑ test11f_after := by + unfold test11f_before test11f_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test11f + apply test11f_thm + ---END test11f + + + +def test12_before := [llvm| +{ +^0(%arg89 : i32, %arg90 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg90, %0 : i32 + %2 = llvm.and %arg89, %1 : i32 + %3 = llvm.xor %arg89, %0 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg89 : i32, %arg90 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg89, %arg90 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test12_proof : test12_before ⊑ test12_after := by + unfold test12_before test12_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test12 + apply test12_thm + ---END test12 + + + +def test12commuted_before := [llvm| +{ +^0(%arg87 : i32, %arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg88, %0 : i32 + %2 = llvm.and %1, %arg87 : i32 + %3 = llvm.xor %arg87, %0 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test12commuted_after := [llvm| +{ +^0(%arg87 : i32, %arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg87, %arg88 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := by + unfold test12commuted_before test12commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test12commuted + apply test12commuted_thm + ---END test12commuted + + + +def test13_before := [llvm| +{ +^0(%arg85 : i32, %arg86 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg85, %0 : i32 + %2 = llvm.xor %arg86, %0 : i32 + %3 = llvm.and %arg85, %2 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg85 : i32, %arg86 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg85, %arg86 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test13_proof : test13_before ⊑ test13_after := by + unfold test13_before test13_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test13 + apply test13_thm + ---END test13 + + + +def test13commuted_before := [llvm| +{ +^0(%arg83 : i32, %arg84 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg83, %0 : i32 + %2 = llvm.xor %arg84, %0 : i32 + %3 = llvm.and %2, %arg83 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test13commuted_after := [llvm| +{ +^0(%arg83 : i32, %arg84 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg83, %arg84 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := by + unfold test13commuted_before test13commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test13commuted + apply test13commuted_thm + ---END test13commuted + + + +def xor_or_xor_common_op_commute1_before := [llvm| +{ +^0(%arg80 : i32, %arg81 : i32, %arg82 : i32): + %0 = llvm.xor %arg80, %arg82 : i32 + %1 = llvm.or %arg80, %arg81 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute1_after := [llvm| +{ +^0(%arg80 : i32, %arg81 : i32, %arg82 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg80, %0 : i32 + %2 = llvm.and %arg81, %1 : i32 + %3 = llvm.xor %2, %arg82 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_before ⊑ xor_or_xor_common_op_commute1_after := by + unfold xor_or_xor_common_op_commute1_before xor_or_xor_common_op_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute1 + apply xor_or_xor_common_op_commute1_thm + ---END xor_or_xor_common_op_commute1 + + + +def xor_or_xor_common_op_commute2_before := [llvm| +{ +^0(%arg77 : i32, %arg78 : i32, %arg79 : i32): + %0 = llvm.xor %arg79, %arg77 : i32 + %1 = llvm.or %arg77, %arg78 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute2_after := [llvm| +{ +^0(%arg77 : i32, %arg78 : i32, %arg79 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg77, %0 : i32 + %2 = llvm.and %arg78, %1 : i32 + %3 = llvm.xor %2, %arg79 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_before ⊑ xor_or_xor_common_op_commute2_after := by + unfold xor_or_xor_common_op_commute2_before xor_or_xor_common_op_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute2 + apply xor_or_xor_common_op_commute2_thm + ---END xor_or_xor_common_op_commute2 + + + +def xor_or_xor_common_op_commute3_before := [llvm| +{ +^0(%arg74 : i32, %arg75 : i32, %arg76 : i32): + %0 = llvm.xor %arg74, %arg76 : i32 + %1 = llvm.or %arg75, %arg74 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute3_after := [llvm| +{ +^0(%arg74 : i32, %arg75 : i32, %arg76 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg74, %0 : i32 + %2 = llvm.and %arg75, %1 : i32 + %3 = llvm.xor %2, %arg76 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_before ⊑ xor_or_xor_common_op_commute3_after := by + unfold xor_or_xor_common_op_commute3_before xor_or_xor_common_op_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute3 + apply xor_or_xor_common_op_commute3_thm + ---END xor_or_xor_common_op_commute3 + + + +def xor_or_xor_common_op_commute4_before := [llvm| +{ +^0(%arg71 : i32, %arg72 : i32, %arg73 : i32): + %0 = llvm.xor %arg73, %arg71 : i32 + %1 = llvm.or %arg72, %arg71 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute4_after := [llvm| +{ +^0(%arg71 : i32, %arg72 : i32, %arg73 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg71, %0 : i32 + %2 = llvm.and %arg72, %1 : i32 + %3 = llvm.xor %2, %arg73 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_before ⊑ xor_or_xor_common_op_commute4_after := by + unfold xor_or_xor_common_op_commute4_before xor_or_xor_common_op_commute4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute4 + apply xor_or_xor_common_op_commute4_thm + ---END xor_or_xor_common_op_commute4 + + + +def xor_or_xor_common_op_commute5_before := [llvm| +{ +^0(%arg68 : i32, %arg69 : i32, %arg70 : i32): + %0 = llvm.xor %arg68, %arg70 : i32 + %1 = llvm.or %arg68, %arg69 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute5_after := [llvm| +{ +^0(%arg68 : i32, %arg69 : i32, %arg70 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg68, %0 : i32 + %2 = llvm.and %arg69, %1 : i32 + %3 = llvm.xor %2, %arg70 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_before ⊑ xor_or_xor_common_op_commute5_after := by + unfold xor_or_xor_common_op_commute5_before xor_or_xor_common_op_commute5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute5 + apply xor_or_xor_common_op_commute5_thm + ---END xor_or_xor_common_op_commute5 + + + +def xor_or_xor_common_op_commute6_before := [llvm| +{ +^0(%arg65 : i32, %arg66 : i32, %arg67 : i32): + %0 = llvm.xor %arg67, %arg65 : i32 + %1 = llvm.or %arg65, %arg66 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute6_after := [llvm| +{ +^0(%arg65 : i32, %arg66 : i32, %arg67 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg65, %0 : i32 + %2 = llvm.and %arg66, %1 : i32 + %3 = llvm.xor %2, %arg67 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_before ⊑ xor_or_xor_common_op_commute6_after := by + unfold xor_or_xor_common_op_commute6_before xor_or_xor_common_op_commute6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute6 + apply xor_or_xor_common_op_commute6_thm + ---END xor_or_xor_common_op_commute6 + + + +def xor_or_xor_common_op_commute7_before := [llvm| +{ +^0(%arg62 : i32, %arg63 : i32, %arg64 : i32): + %0 = llvm.xor %arg62, %arg64 : i32 + %1 = llvm.or %arg63, %arg62 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute7_after := [llvm| +{ +^0(%arg62 : i32, %arg63 : i32, %arg64 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg62, %0 : i32 + %2 = llvm.and %arg63, %1 : i32 + %3 = llvm.xor %2, %arg64 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_before ⊑ xor_or_xor_common_op_commute7_after := by + unfold xor_or_xor_common_op_commute7_before xor_or_xor_common_op_commute7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute7 + apply xor_or_xor_common_op_commute7_thm + ---END xor_or_xor_common_op_commute7 + + + +def xor_or_xor_common_op_commute8_before := [llvm| +{ +^0(%arg59 : i32, %arg60 : i32, %arg61 : i32): + %0 = llvm.xor %arg61, %arg59 : i32 + %1 = llvm.or %arg60, %arg59 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_or_xor_common_op_commute8_after := [llvm| +{ +^0(%arg59 : i32, %arg60 : i32, %arg61 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg59, %0 : i32 + %2 = llvm.and %arg60, %1 : i32 + %3 = llvm.xor %2, %arg61 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_before ⊑ xor_or_xor_common_op_commute8_after := by + unfold xor_or_xor_common_op_commute8_before xor_or_xor_common_op_commute8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_or_xor_common_op_commute8 + apply xor_or_xor_common_op_commute8_thm + ---END xor_or_xor_common_op_commute8 + + + +def test15_before := [llvm| +{ +^0(%arg44 : i8, %arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg45, %arg44 : i8 + %2 = llvm.xor %arg44, %0 : i8 + %3 = llvm.xor %2, %arg45 : i8 + %4 = llvm.and %1, %3 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def test15_after := [llvm| +{ +^0(%arg44 : i8, %arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg45, %arg44 : i8 + %2 = llvm.xor %arg44, %arg45 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.and %1, %3 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem test15_proof : test15_before ⊑ test15_after := by + unfold test15_before test15_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test15 + apply test15_thm + ---END test15 + + + +def test16_before := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg43, %arg42 : i8 + %2 = llvm.xor %arg42, %0 : i8 + %3 = llvm.xor %2, %arg43 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def test16_after := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg43, %arg42 : i8 + %2 = llvm.xor %arg42, %arg43 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem test16_proof : test16_before ⊑ test16_after := by + unfold test16_before test16_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN test16 + apply test16_thm + ---END test16 + + + +def not_xor_to_or_not1_before := [llvm| +{ +^0(%arg39 : i3, %arg40 : i3, %arg41 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg40, %arg41 : i3 + %2 = llvm.and %arg39, %arg41 : i3 + %3 = llvm.xor %2, %1 : i3 + %4 = llvm.xor %3, %0 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def not_xor_to_or_not1_after := [llvm| +{ +^0(%arg39 : i3, %arg40 : i3, %arg41 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg40, %arg41 : i3 + %2 = llvm.and %arg39, %arg41 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_not1_after := by + unfold not_xor_to_or_not1_before not_xor_to_or_not1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN not_xor_to_or_not1 + apply not_xor_to_or_not1_thm + ---END not_xor_to_or_not1 + + + +def not_xor_to_or_not2_before := [llvm| +{ +^0(%arg36 : i3, %arg37 : i3, %arg38 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg38, %arg37 : i3 + %2 = llvm.and %arg36, %arg38 : i3 + %3 = llvm.xor %2, %1 : i3 + %4 = llvm.xor %3, %0 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def not_xor_to_or_not2_after := [llvm| +{ +^0(%arg36 : i3, %arg37 : i3, %arg38 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg38, %arg37 : i3 + %2 = llvm.and %arg36, %arg38 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_not2_after := by + unfold not_xor_to_or_not2_before not_xor_to_or_not2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN not_xor_to_or_not2 + apply not_xor_to_or_not2_thm + ---END not_xor_to_or_not2 + + + +def not_xor_to_or_not3_before := [llvm| +{ +^0(%arg33 : i3, %arg34 : i3, %arg35 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg35, %arg34 : i3 + %2 = llvm.and %arg35, %arg33 : i3 + %3 = llvm.xor %2, %1 : i3 + %4 = llvm.xor %3, %0 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def not_xor_to_or_not3_after := [llvm| +{ +^0(%arg33 : i3, %arg34 : i3, %arg35 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg35, %arg34 : i3 + %2 = llvm.and %arg35, %arg33 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_not3_after := by + unfold not_xor_to_or_not3_before not_xor_to_or_not3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN not_xor_to_or_not3 + apply not_xor_to_or_not3_thm + ---END not_xor_to_or_not3 + + + +def not_xor_to_or_not4_before := [llvm| +{ +^0(%arg30 : i3, %arg31 : i3, %arg32 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg31, %arg32 : i3 + %2 = llvm.and %arg32, %arg30 : i3 + %3 = llvm.xor %2, %1 : i3 + %4 = llvm.xor %3, %0 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def not_xor_to_or_not4_after := [llvm| +{ +^0(%arg30 : i3, %arg31 : i3, %arg32 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg31, %arg32 : i3 + %2 = llvm.and %arg32, %arg30 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_not4_after := by + unfold not_xor_to_or_not4_before not_xor_to_or_not4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN not_xor_to_or_not4 + apply not_xor_to_or_not4_thm + ---END not_xor_to_or_not4 + + + +def xor_notand_to_or_not1_before := [llvm| +{ +^0(%arg18 : i3, %arg19 : i3, %arg20 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg19, %arg20 : i3 + %2 = llvm.and %arg18, %arg20 : i3 + %3 = llvm.xor %2, %0 : i3 + %4 = llvm.xor %3, %1 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def xor_notand_to_or_not1_after := [llvm| +{ +^0(%arg18 : i3, %arg19 : i3, %arg20 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg19, %arg20 : i3 + %2 = llvm.and %arg18, %arg20 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notand_to_or_not1_after := by + unfold xor_notand_to_or_not1_before xor_notand_to_or_not1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_notand_to_or_not1 + apply xor_notand_to_or_not1_thm + ---END xor_notand_to_or_not1 + + + +def xor_notand_to_or_not2_before := [llvm| +{ +^0(%arg15 : i3, %arg16 : i3, %arg17 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg17, %arg16 : i3 + %2 = llvm.and %arg15, %arg17 : i3 + %3 = llvm.xor %2, %0 : i3 + %4 = llvm.xor %3, %1 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def xor_notand_to_or_not2_after := [llvm| +{ +^0(%arg15 : i3, %arg16 : i3, %arg17 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg17, %arg16 : i3 + %2 = llvm.and %arg15, %arg17 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notand_to_or_not2_after := by + unfold xor_notand_to_or_not2_before xor_notand_to_or_not2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_notand_to_or_not2 + apply xor_notand_to_or_not2_thm + ---END xor_notand_to_or_not2 + + + +def xor_notand_to_or_not3_before := [llvm| +{ +^0(%arg12 : i3, %arg13 : i3, %arg14 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg14, %arg13 : i3 + %2 = llvm.and %arg14, %arg12 : i3 + %3 = llvm.xor %2, %0 : i3 + %4 = llvm.xor %3, %1 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def xor_notand_to_or_not3_after := [llvm| +{ +^0(%arg12 : i3, %arg13 : i3, %arg14 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg14, %arg13 : i3 + %2 = llvm.and %arg14, %arg12 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notand_to_or_not3_after := by + unfold xor_notand_to_or_not3_before xor_notand_to_or_not3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_notand_to_or_not3 + apply xor_notand_to_or_not3_thm + ---END xor_notand_to_or_not3 + + + +def xor_notand_to_or_not4_before := [llvm| +{ +^0(%arg9 : i3, %arg10 : i3, %arg11 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg10, %arg11 : i3 + %2 = llvm.and %arg11, %arg9 : i3 + %3 = llvm.xor %2, %0 : i3 + %4 = llvm.xor %3, %1 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +def xor_notand_to_or_not4_after := [llvm| +{ +^0(%arg9 : i3, %arg10 : i3, %arg11 : i3): + %0 = "llvm.mlir.constant"() <{value = -1 : i3}> : () -> i3 + %1 = llvm.or %arg10, %arg11 : i3 + %2 = llvm.and %arg11, %arg9 : i3 + %3 = llvm.xor %1, %0 : i3 + %4 = llvm.or %2, %3 : i3 + "llvm.return"(%4) : (i3) -> () +} +] +theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notand_to_or_not4_after := by + unfold xor_notand_to_or_not4_before xor_notand_to_or_not4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + simp_alive_case_bash + intros + try simp + ---BEGIN xor_notand_to_or_not4 + apply xor_notand_to_or_not4_thm + ---END xor_notand_to_or_not4 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gxor2_proof.lean similarity index 100% rename from SSA/Projects/InstCombine/tests/LLVM/gxor2_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gxor2_proof.lean From 48b1be29dca4c19828e148515f636f9187f32956 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 16 Oct 2024 16:47:31 +0100 Subject: [PATCH 03/21] Edits to the gen files --- SSA/Projects/InstCombine/scripts/proof-gen.py | 6 ++---- SSA/Projects/InstCombine/scripts/test-gen.py | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index 06ac7846d..481b603a7 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -46,11 +46,11 @@ def process_file(file_path): lines[l - 1] = f" apply {n}_thm" + "\n" lines[0] = f"import SSA.Projects.InstCombine.tests.proofs.{stem_name}_proof\n" # Write the modified content to the new file - with open(new_file_path, "a") as file: + with open(new_file_path, "w") as file: file.writelines(lines) # Append the messages to the end of the file - with open(proof_name + ".lean", "a") as file: + with open(proof_name + ".lean", "w") as file: file.write( f""" import SSA.Projects.InstCombine.TacticAuto @@ -70,8 +70,6 @@ def process_file(file_path): def main(): proof_directory = "./SSA/Projects/InstCombine/tests/proofs" - rm_proofs = "\nrm -r " + proof_directory + "/*\n" - subprocess.run(rm_proofs, shell=True) directory = "./SSA/Projects/InstCombine/tests/LLVM" diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index 2dc3aae04..fda512110 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -194,6 +194,7 @@ def {name}_after := [llvm| simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp From 1011dc2e6a1d2038dc4a2cc3f51a449dfc70737f Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 16 Oct 2024 16:47:41 +0100 Subject: [PATCH 04/21] re-ran the tests --- .../LLVM/g2004h02h23hShiftShiftOverflow.lean | 2 + .../LLVM/g2004h11h22hMissedhandhfold.lean | 1 + .../tests/LLVM/g2008h02h16hSDivOverflow2.lean | 1 + .../tests/LLVM/g2008h02h23hMulSub.lean | 1 + .../tests/LLVM/g2008h05h31hAddBool.lean | 1 + .../tests/LLVM/g2008h05h31hBools.lean | 3 + .../tests/LLVM/g2008h07h08hSubAnd.lean | 1 + .../tests/LLVM/g2008h07h09hSubAndError.lean | 1 + .../tests/LLVM/g2008h07h11hRemAnd.lean | 1 + .../tests/LLVM/g2010h11h01hlshrhmask.lean | 1 + .../tests/LLVM/g2010h11h23hDistributed.lean | 1 + .../InstCombine/tests/LLVM/gAddOverFlow.lean | 11 + .../InstCombine/tests/LLVM/gadd2.lean | 37 +- .../InstCombine/tests/LLVM/gadd4.lean | 4 + .../InstCombine/tests/LLVM/gadd_or_sub.lean | 8 + .../InstCombine/tests/LLVM/gaddhmask.lean | 3 + .../InstCombine/tests/LLVM/gaddhmaskhneg.lean | 3 + .../InstCombine/tests/LLVM/gaddhshift.lean | 1 + .../tests/LLVM/gaddhshlhsdivhtohsrem.lean | 5 + .../InstCombine/tests/LLVM/gaddnegneg.lean | 1 + .../tests/LLVM/gaddsubhconstanthfolding.lean | 19 + SSA/Projects/InstCombine/tests/LLVM/gand.lean | 39 + .../InstCombine/tests/LLVM/gand2.lean | 11 + .../InstCombine/tests/LLVM/gandhorhand.lean | 5 + .../InstCombine/tests/LLVM/gandhorhnot.lean | 21 + .../tests/LLVM/gandhxorhmerge.lean | 3 + .../InstCombine/tests/LLVM/gandhxorhor.lean | 110 ++ .../InstCombine/tests/LLVM/gannotations.lean | 1 + .../InstCombine/tests/LLVM/gapinthadd.lean | 9 + .../InstCombine/tests/LLVM/gapinthand.lean | 8 + .../tests/LLVM/gapinthandhorhand.lean | 5 + .../tests/LLVM/gapinthandhxorhmerge.lean | 2 + .../InstCombine/tests/LLVM/gapinthmul1.lean | 1 + .../InstCombine/tests/LLVM/gapinthmul2.lean | 1 + .../InstCombine/tests/LLVM/gapinthnot.lean | 1 + .../InstCombine/tests/LLVM/gapinthor.lean | 4 + .../InstCombine/tests/LLVM/gapinthrem1.lean | 2 + .../InstCombine/tests/LLVM/gapinthrem2.lean | 2 + .../InstCombine/tests/LLVM/gapinthshift.lean | 15 + .../tests/LLVM/gapinthshifthsimplify.lean | 3 + .../InstCombine/tests/LLVM/gapinthsub.lean | 14 + .../InstCombine/tests/LLVM/gapinthxor1.lean | 7 + .../InstCombine/tests/LLVM/gapinthxor2.lean | 7 + .../InstCombine/tests/LLVM/gashrhdemand.lean | 1 + .../InstCombine/tests/LLVM/gashrhlshr.lean | 15 + .../InstCombine/tests/LLVM/gavghlsb.lean | 1 + .../tests/LLVM/gbinophandhshifts.lean | 28 + .../LLVM/gbinophofhdisplacedhshifts.lean | 13 + .../gcanonicalizehashrhshlhtohmasking.lean | 32 + .../gcanonicalizehlshrhshlhtohmasking.lean | 32 + .../gcanonicalizehshlhlshrhtohmasking.lean | 10 + .../tests/LLVM/gdemand_shrink_nsw.lean | 1 + .../InstCombine/tests/LLVM/gdemorgan.lean | 26 + .../InstCombine/tests/LLVM/gdistribute.lean | 6 + .../InstCombine/tests/LLVM/gdivhi1.lean | 3 + .../InstCombine/tests/LLVM/gdivhshift.lean | 9 + .../LLVM/gearly_constfold_changes_IR.lean | 1 + .../InstCombine/tests/LLVM/gexact.lean | 5 + ...ofhaddhofhnothxhandhyhtohsubhxhfromhy.lean | 2 + .../LLVM/gfoldhsubhofhnothtohinchofhadd.lean | 1 + .../tests/LLVM/gfreehinversion.lean | 1 + ...gethlowbitmaskhuptohandhincludinghbit.lean | 4 + .../tests/LLVM/ghighhbithsignmask.lean | 5 + ...oisthnegationhouthofhbiashcalculation.lean | 2 + ...outhofhbiashcalculationhwithhconstant.lean | 2 + .../LLVM/ghoisthnothfromhashrhoperand.lean | 2 + ...isthxorhbyhconstanthfromhxorhbyhvalue.lean | 1 + .../InstCombine/tests/LLVM/gicmphmul.lean | 1 + .../InstCombine/tests/LLVM/gicmphmulhand.lean | 2 + ...hvariablehmaskhinhmaskedhmergehscalar.lean | 10 + .../tests/LLVM/glowhbithsplat.lean | 2 + .../InstCombine/tests/LLVM/glshr.lean | 22 + .../tests/LLVM/gmaskedhmergehadd.lean | 9 + .../tests/LLVM/gmaskedhmergehandhofhors.lean | 4 + .../tests/LLVM/gmaskedhmergehor.lean | 6 + .../tests/LLVM/gmaskedhmergehxor.lean | 9 + .../InstCombine/tests/LLVM/gmisch2002.lean | 1 + .../InstCombine/tests/LLVM/gmul_fold.lean | 10 + .../InstCombine/tests/LLVM/gmulhpow2.lean | 2 + .../tests/LLVM/gnegatedhbitmask.lean | 3 + SSA/Projects/InstCombine/tests/LLVM/gnot.lean | 8 + .../InstCombine/tests/LLVM/gnothadd.lean | 5 + .../tests/LLVM/gorhshiftedhmasks.lean | 10 + .../InstCombine/tests/LLVM/gorhxor.lean | 68 + .../InstCombine/tests/LLVM/gorhxorhxor.lean | 5 + .../InstCombine/tests/LLVM/gpr14365.lean | 2 + .../InstCombine/tests/LLVM/gpr53357.lean | 5 + .../tests/LLVM/gpreservedhanalyses.lean | 1 + .../tests/LLVM/gpullhbinophthroughhshift.lean | 20 + .../tests/LLVM/greassociatehnuw.lean | 16 + .../gredundanthrighthshifthinputhmasking.lean | 3 + SSA/Projects/InstCombine/tests/LLVM/grem.lean | 14 + .../InstCombine/tests/LLVM/gsdivh1.lean | 1 + .../tests/LLVM/gsdivhcanonicalize.lean | 2 + .../gsdivhexacthbyhnegativehpowerhofhtwo.lean | 3 + .../LLVM/gsdivhexacthbyhpowerhofhtwo.lean | 5 + .../LLVM/gsethlowbitshmaskhcanonicalize.lean | 19 + .../InstCombine/tests/LLVM/gshifthadd.lean | 16 + .../tests/LLVM/gshifthaddhinseltpoison.lean | 2 + .../LLVM/gshifthamounthreassociation.lean | 7 + .../InstCombine/tests/LLVM/gshifthflags.lean | 3 + .../InstCombine/tests/LLVM/gshifthlogic.lean | 10 + .../InstCombine/tests/LLVM/gshifthshift.lean | 7 + .../InstCombine/tests/LLVM/gshifthsra.lean | 2 + .../InstCombine/tests/LLVM/gshlhbo.lean | 14 + .../InstCombine/tests/LLVM/gshlhdemand.lean | 8 + .../InstCombine/tests/LLVM/gshlhfactor.lean | 13 + .../InstCombine/tests/LLVM/gshlhsub.lean | 9 + .../InstCombine/tests/LLVM/gsignext.lean | 4 + .../tests/LLVM/gsremhcanonicalize.lean | 1 + .../tests/LLVM/gsubhandhorhneghxor.lean | 3 + .../InstCombine/tests/LLVM/gsubhfromhsub.lean | 13 + .../InstCombine/tests/LLVM/gsubhnot.lean | 4 + .../LLVM/gsubhofhnegatiblehinseltpoison.lean | 16 + .../tests/LLVM/gsubhorhandhxor.lean | 3 + .../InstCombine/tests/LLVM/gsubhxor.lean | 4 + .../tests/LLVM/gsubhxorhorhneghand.lean | 3 + ...dhmaskedhmergehwithhconsthmaskhscalar.lean | 10 + SSA/Projects/InstCombine/tests/LLVM/gxor.lean | 31 + .../InstCombine/tests/LLVM/gxor2.lean | 38 + .../InstCombine/tests/LLVM/gxorhofhor.lean | 1 + .../proofs/g2008h02h16hSDivOverflow2.lean | 46 + .../g2008h02h16hSDivOverflow2_proof.lean | 8 + .../tests/proofs/g2008h02h23hMulSub.lean | 46 + .../proofs/g2008h02h23hMulSub_proof.lean | 8 + .../tests/proofs/g2008h05h31hAddBool.lean | 43 + .../proofs/g2008h05h31hAddBool_proof.lean | 8 + .../tests/proofs/g2008h07h08hSubAnd.lean | 1 + .../tests/proofs/g2008h07h09hSubAndError.lean | 1 + .../tests/proofs/g2008h07h11hRemAnd.lean | 1 + .../tests/proofs/g2010h11h23hDistributed.lean | 1 + .../proofs/g2010h11h23hDistributed_proof.lean | 2 +- .../InstCombine/tests/proofs/gadd2.lean | 1134 +++++++++++++++++ .../InstCombine/tests/proofs/gadd2_proof.lean | 213 ++++ .../InstCombine/tests/proofs/gadd4.lean | 172 +++ .../InstCombine/tests/proofs/gadd4_proof.lean | 35 + .../InstCombine/tests/proofs/gadd_or_sub.lean | 290 +++++ .../tests/proofs/gadd_or_sub_proof.lean | 35 + .../InstCombine/tests/proofs/gaddhmask.lean | 124 ++ .../tests/proofs/gaddhmask_proof.lean | 24 + .../InstCombine/tests/proofs/gaddhshift.lean | 1 + .../tests/proofs/gaddhshift_proof.lean | 2 +- .../tests/proofs/gaddhshlhsdivhtohsrem.lean | 5 + .../InstCombine/tests/proofs/gaddnegneg.lean | 1 + .../InstCombine/tests/proofs/gand2.lean | 11 + .../InstCombine/tests/proofs/gand2_proof.lean | 21 +- .../InstCombine/tests/proofs/gandhorhand.lean | 5 + .../InstCombine/tests/proofs/gandhorhnot.lean | 717 +++++++++++ .../tests/proofs/gandhorhnot_proof.lean | 55 + .../tests/proofs/gandhxorhmerge.lean | 110 ++ .../tests/proofs/gandhxorhmerge_proof.lean | 12 + .../tests/proofs/gannotations.lean | 44 - .../InstCombine/tests/proofs/gapinthand.lean | 254 ---- .../tests/proofs/gapinthand_proof.lean | 24 - .../tests/proofs/gapinthandhorhand.lean | 179 +++ .../tests/proofs/gapinthandhorhand_proof.lean | 16 + ...nthrem2.lean => gapinthandhxorhmerge.lean} | 41 +- .../proofs/gapinthandhxorhmerge_proof.lean | 10 + .../InstCombine/tests/proofs/gapinthmul1.lean | 45 + ...s_IR_proof.lean => gapinthmul1_proof.lean} | 4 +- .../InstCombine/tests/proofs/gapinthmul2.lean | 47 + .../tests/proofs/gapinthmul2_proof.lean | 8 + .../InstCombine/tests/proofs/gapinthnot.lean | 1 + .../InstCombine/tests/proofs/gapinthor.lean | 150 --- .../tests/proofs/gapinthor_proof.lean | 23 - .../tests/proofs/gapinthrem2_proof.lean | 13 - .../tests/proofs/gapinthshifthsimplify.lean | 3 + .../proofs/gapinthshifthsimplify_proof.lean | 6 +- .../InstCombine/tests/proofs/gashrhlshr.lean | 533 ++++++++ .../tests/proofs/gashrhlshr_proof.lean | 88 ++ .../InstCombine/tests/proofs/gavghlsb.lean | 49 + .../tests/proofs/gavghlsb_proof.lean | 14 + .../proofs/gbinophofhdisplacedhshifts.lean | 487 +++++++ .../gbinophofhdisplacedhshifts_proof.lean | 77 ++ .../gcanonicalizehashrhshlhtohmasking.lean | 32 + ...anonicalizehashrhshlhtohmasking_proof.lean | 8 +- .../gcanonicalizehlshrhshlhtohmasking.lean | 1018 --------------- ...anonicalizehlshrhshlhtohmasking_proof.lean | 138 -- .../InstCombine/tests/proofs/gdistribute.lean | 6 + .../InstCombine/tests/proofs/gdivhshift.lean | 9 + .../tests/proofs/gdivhshift_proof.lean | 24 +- .../proofs/gearly_constfold_changes_IR.lean | 46 - .../InstCombine/tests/proofs/gexact.lean | 176 +++ .../tests/proofs/gexact_proof.lean | 19 + .../gfoldhsubhofhnothtohinchofhadd.lean | 46 - .../gfoldhsubhofhnothtohinchofhadd_proof.lean | 8 - ...gethlowbitmaskhuptohandhincludinghbit.lean | 4 + ...wbitmaskhuptohandhincludinghbit_proof.lean | 12 +- .../tests/proofs/ghighhbithsignmask.lean | 181 +++ .../proofs/ghighhbithsignmask_proof.lean | 18 + ...oisthnegationhouthofhbiashcalculation.lean | 2 + ...outhofhbiashcalculationhwithhconstant.lean | 80 ++ ...hbiashcalculationhwithhconstant_proof.lean | 10 + .../proofs/ghoisthnothfromhashrhoperand.lean | 2 + .../ghoisthnothfromhashrhoperand_proof.lean | 4 +- ...isthxorhbyhconstanthfromhxorhbyhvalue.lean | 46 - ...rhbyhconstanthfromhxorhbyhvalue_proof.lean | 8 - .../InstCombine/tests/proofs/gicmphmul.lean | 48 - .../tests/proofs/gicmphmul_proof.lean | 8 - .../tests/proofs/glowhbithsplat.lean | 82 ++ .../tests/proofs/glowhbithsplat_proof.lean | 16 + .../InstCombine/tests/proofs/glshr.lean | 730 +++++++++++ .../InstCombine/tests/proofs/glshr_proof.lean | 137 ++ .../tests/proofs/gmaskedhmergehadd.lean | 9 + .../proofs/gmaskedhmergehandhofhors.lean | 155 --- .../gmaskedhmergehandhofhors_proof.lean | 18 - .../InstCombine/tests/proofs/gmisch2002.lean | 49 + ...tions_proof.lean => gmisch2002_proof.lean} | 2 +- .../InstCombine/tests/proofs/gmulhpow2.lean | 2 + .../tests/proofs/gmulhpow2_proof.lean | 6 +- .../InstCombine/tests/proofs/gnothadd.lean | 5 + .../tests/proofs/gnothadd_proof.lean | 6 +- .../InstCombine/tests/proofs/gorhxorhxor.lean | 171 --- .../tests/proofs/gorhxorhxor_proof.lean | 17 - .../tests/proofs/gpreservedhanalyses.lean | 45 + .../proofs/gpreservedhanalyses_proof.lean | 8 + .../tests/proofs/greassociatehnuw.lean | 16 + .../tests/proofs/greassociatehnuw_proof.lean | 38 +- .../gredundanthrighthshifthinputhmasking.lean | 119 ++ ...ndanthrighthshifthinputhmasking_proof.lean | 27 + .../tests/proofs/gsdivhcanonicalize.lean | 2 + .../gsdivhexacthbyhnegativehpowerhofhtwo.lean | 118 ++ ...hexacthbyhnegativehpowerhofhtwo_proof.lean | 22 + .../proofs/gsdivhexacthbyhpowerhofhtwo.lean | 5 + .../gsdivhexacthbyhpowerhofhtwo_proof.lean | 6 +- .../gsethlowbitshmaskhcanonicalize.lean | 643 ++++++++++ .../gsethlowbitshmaskhcanonicalize_proof.lean | 146 +++ .../tests/proofs/gshifthaddhinseltpoison.lean | 2 + .../tests/proofs/gshifthflags.lean | 3 + .../tests/proofs/gshifthshift.lean | 7 + .../tests/proofs/gshifthshift_proof.lean | 24 +- .../InstCombine/tests/proofs/gshifthsra.lean | 80 ++ .../tests/proofs/gshifthsra_proof.lean | 10 + .../InstCombine/tests/proofs/gshlhdemand.lean | 8 + .../tests/proofs/gshlhdemand_proof.lean | 14 +- .../InstCombine/tests/proofs/gshlhfactor.lean | 13 + .../tests/proofs/gshlhfactor_proof.lean | 32 +- .../InstCombine/tests/proofs/gsignext.lean | 157 +++ .../tests/proofs/gsignext_proof.lean | 14 + .../tests/proofs/gsremhcanonicalize.lean | 47 + .../proofs/gsremhcanonicalize_proof.lean | 14 + .../tests/proofs/gsubhandhorhneghxor.lean | 113 ++ .../proofs/gsubhandhorhneghxor_proof.lean | 12 + .../InstCombine/tests/proofs/gsubhxor.lean | 155 +++ .../tests/proofs/gsubhxor_proof.lean | 26 + .../tests/proofs/gsubhxorhorhneghand.lean | 3 + ...dhmaskedhmergehwithhconsthmaskhscalar.lean | 10 + .../InstCombine/tests/proofs/gxor2.lean | 38 + 248 files changed, 9292 insertions(+), 2361 deletions(-) create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd4.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gadd_or_sub_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhmask_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gandhorhnot_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gannotations.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand_proof.lean rename SSA/Projects/InstCombine/tests/proofs/{gapinthrem2.lean => gapinthandhxorhmerge.lean} (53%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean rename SSA/Projects/InstCombine/tests/proofs/{gearly_constfold_changes_IR_proof.lean => gapinthmul1_proof.lean} (52%) create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthmul2_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gashrhlshr_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gavghlsb_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gexact.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/glowhbithsplat_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/glshr.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/glshr_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean rename SSA/Projects/InstCombine/tests/proofs/{gannotations_proof.lean => gmisch2002_proof.lean} (79%) delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthsra_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsignext.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsignext_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhxor_proof.lean diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean index 7a8acea8f..e9fe170e3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean @@ -35,6 +35,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -65,6 +66,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean index 5c63fbd82..67097da3e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean @@ -36,6 +36,7 @@ theorem test21_proof : test21_before ⊑ test21_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean index 5320d898c..e45ca22a0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean @@ -35,6 +35,7 @@ theorem i_proof : i_before ⊑ i_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean index 690b72385..a1fe12664 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean @@ -35,6 +35,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean index b4201d4f2..8299245fe 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean @@ -32,6 +32,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean index 184ce4322..157cf995e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean @@ -32,6 +32,7 @@ theorem foo1_proof : foo1_before ⊑ foo1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -60,6 +61,7 @@ theorem foo2_proof : foo2_before ⊑ foo2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -87,6 +89,7 @@ theorem foo4_proof : foo4_before ⊑ foo4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean index d00413712..20045847f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean @@ -38,6 +38,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean index c86579fec..7822bb718 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean @@ -38,6 +38,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean index 97b2e33a5..c206948de 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean @@ -36,6 +36,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean index 1ee321c1a..fd336194a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean @@ -67,6 +67,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean index 343680175..7808cb86c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean @@ -35,6 +35,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean b/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean index 43ede9945..3846be929 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean @@ -40,6 +40,7 @@ theorem oppositesign_proof : oppositesign_before ⊑ oppositesign_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem zero_sign_bit_proof : zero_sign_bit_before ⊑ zero_sign_bit_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -108,6 +110,7 @@ theorem zero_sign_bit2_proof : zero_sign_bit2_before ⊑ zero_sign_bit2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -144,6 +147,7 @@ theorem ripple_nsw1_proof : ripple_nsw1_before ⊑ ripple_nsw1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -180,6 +184,7 @@ theorem ripple_nsw2_proof : ripple_nsw2_before ⊑ ripple_nsw2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -216,6 +221,7 @@ theorem ripple_nsw3_proof : ripple_nsw3_before ⊑ ripple_nsw3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -252,6 +258,7 @@ theorem ripple_nsw4_proof : ripple_nsw4_before ⊑ ripple_nsw4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -288,6 +295,7 @@ theorem ripple_nsw5_proof : ripple_nsw5_before ⊑ ripple_nsw5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -324,6 +332,7 @@ theorem ripple_nsw6_proof : ripple_nsw6_before ⊑ ripple_nsw6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -360,6 +369,7 @@ theorem ripple_no_nsw2_proof : ripple_no_nsw2_before ⊑ ripple_no_nsw2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -394,6 +404,7 @@ theorem PR38021_proof : PR38021_before ⊑ PR38021_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean index 14424b6d2..b2b737c76 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd2_statements - + def test2_before := [llvm| { ^0(%arg59 : i32): @@ -37,6 +37,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -73,6 +74,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -102,6 +104,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -135,6 +138,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -175,6 +179,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -211,6 +216,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -247,6 +253,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -283,6 +290,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -319,6 +327,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -354,6 +363,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -389,6 +399,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -423,6 +434,7 @@ theorem test17_proof : test17_before ⊑ test17_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -458,6 +470,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -488,6 +501,7 @@ theorem add_nsw_mul_nsw_proof : add_nsw_mul_nsw_before ⊑ add_nsw_mul_nsw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -519,6 +533,7 @@ theorem mul_add_to_mul_1_proof : mul_add_to_mul_1_before ⊑ mul_add_to_mul_1_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -550,6 +565,7 @@ theorem mul_add_to_mul_2_proof : mul_add_to_mul_2_before ⊑ mul_add_to_mul_2_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -583,6 +599,7 @@ theorem mul_add_to_mul_3_proof : mul_add_to_mul_3_before ⊑ mul_add_to_mul_3_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -616,6 +633,7 @@ theorem mul_add_to_mul_4_proof : mul_add_to_mul_4_before ⊑ mul_add_to_mul_4_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -649,6 +667,7 @@ theorem mul_add_to_mul_5_proof : mul_add_to_mul_5_before ⊑ mul_add_to_mul_5_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -682,6 +701,7 @@ theorem mul_add_to_mul_6_proof : mul_add_to_mul_6_before ⊑ mul_add_to_mul_6_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -713,6 +733,7 @@ theorem mul_add_to_mul_7_proof : mul_add_to_mul_7_before ⊑ mul_add_to_mul_7_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -746,6 +767,7 @@ theorem mul_add_to_mul_8_proof : mul_add_to_mul_8_before ⊑ mul_add_to_mul_8_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -778,6 +800,7 @@ theorem mul_add_to_mul_9_proof : mul_add_to_mul_9_before ⊑ mul_add_to_mul_9_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -808,6 +831,7 @@ theorem add_or_and_proof : add_or_and_before ⊑ add_or_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -838,6 +862,7 @@ theorem add_or_and_commutative_proof : add_or_and_commutative_before ⊑ add_or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -868,6 +893,7 @@ theorem add_and_or_proof : add_and_or_before ⊑ add_and_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -898,6 +924,7 @@ theorem add_and_or_commutative_proof : add_and_or_commutative_before ⊑ add_and simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -928,6 +955,7 @@ theorem add_nsw_or_and_proof : add_nsw_or_and_before ⊑ add_nsw_or_and_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -958,6 +986,7 @@ theorem add_nuw_or_and_proof : add_nuw_or_and_before ⊑ add_nuw_or_and_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -988,6 +1017,7 @@ theorem add_nuw_nsw_or_and_proof : add_nuw_nsw_or_and_before ⊑ add_nuw_nsw_or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1019,6 +1049,7 @@ theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1055,6 +1086,7 @@ theorem add_undemanded_low_bits_proof : add_undemanded_low_bits_before ⊑ add_u simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1091,9 +1123,12 @@ theorem sub_undemanded_low_bits_proof : sub_undemanded_low_bits_before ⊑ sub_u simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp ---BEGIN sub_undemanded_low_bits all_goals (try extract_goal ; sorry) ---END sub_undemanded_low_bits + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean index bb492f429..2ec4237c7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean @@ -40,6 +40,7 @@ theorem match_andAsRem_lshrAsDiv_shlAsMul_proof : match_andAsRem_lshrAsDiv_shlAs simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -81,6 +82,7 @@ theorem match_signed_proof : match_signed_before ⊑ match_signed_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -121,6 +123,7 @@ theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -158,6 +161,7 @@ theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean index 0db4bc417..f7ca4a38b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean @@ -34,6 +34,7 @@ theorem add_or_sub_comb_i32_commuted1_nuw_proof : add_or_sub_comb_i32_commuted1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -69,6 +70,7 @@ theorem add_or_sub_comb_i8_commuted2_nsw_proof : add_or_sub_comb_i8_commuted2_ns simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -101,6 +103,7 @@ theorem add_or_sub_comb_i128_commuted3_nuw_nsw_proof : add_or_sub_comb_i128_comm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem add_or_sub_comb_i64_commuted4_proof : add_or_sub_comb_i64_commuted4_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -170,6 +174,7 @@ theorem add_or_sub_comb_i8_negative_y_sub_proof : add_or_sub_comb_i8_negative_y_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -204,6 +209,7 @@ theorem add_or_sub_comb_i8_negative_y_or_proof : add_or_sub_comb_i8_negative_y_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -238,6 +244,7 @@ theorem add_or_sub_comb_i8_negative_y_add_proof : add_or_sub_comb_i8_negative_y_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -272,6 +279,7 @@ theorem add_or_sub_comb_i8_negative_xor_instead_or_proof : add_or_sub_comb_i8_ne simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean index e17664d57..5fa2f6e58 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean @@ -39,6 +39,7 @@ theorem add_mask_ashr28_i32_proof : add_mask_ashr28_i32_before ⊑ add_mask_ashr simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -75,6 +76,7 @@ theorem add_mask_ashr28_non_pow2_i32_proof : add_mask_ashr28_non_pow2_i32_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -111,6 +113,7 @@ theorem add_mask_ashr27_i32_proof : add_mask_ashr27_i32_before ⊑ add_mask_ashr simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean index c66ca0494..3e202350c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean @@ -39,6 +39,7 @@ theorem dec_mask_neg_i32_proof : dec_mask_neg_i32_before ⊑ dec_mask_neg_i32_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -78,6 +79,7 @@ theorem dec_mask_commute_neg_i32_proof : dec_mask_commute_neg_i32_before ⊑ dec simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -113,6 +115,7 @@ theorem dec_commute_mask_neg_i32_proof : dec_commute_mask_neg_i32_before ⊑ dec simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean index e4040cd5b..4186a0193 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean @@ -36,6 +36,7 @@ theorem flip_add_of_shift_neg_proof : flip_add_of_shift_neg_before ⊑ flip_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean index 96a97acbe..63ccea26e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean @@ -37,6 +37,7 @@ theorem addhshlhsdivhscalar0_proof : addhshlhsdivhscalar0_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem addhshlhsdivhscalar1_proof : addhshlhsdivhscalar1_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem addhshlhsdivhscalar2_proof : addhshlhsdivhscalar2_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -139,6 +142,7 @@ theorem addhshlhsdivhnegative0_proof : addhshlhsdivhnegative0_before ⊑ addhshl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -172,6 +176,7 @@ theorem addhshlhsdivhnegative1_proof : addhshlhsdivhnegative1_before ⊑ addhshl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean index 218e6d16f..d5ff43ffa 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean @@ -37,6 +37,7 @@ theorem l_proof : l_before ⊑ l_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean index a1966f025..458cf6800 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean @@ -36,6 +36,7 @@ theorem add_const_add_const_proof : add_const_add_const_before ⊑ add_const_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem add_const_sub_const_proof : add_const_sub_const_before ⊑ add_const_sub simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem add_const_const_sub_proof : add_const_const_sub_before ⊑ add_const_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem add_nsw_const_const_sub_nsw_proof : add_nsw_const_const_sub_nsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem add_nsw_const_const_sub_proof : add_nsw_const_const_sub_before ⊑ add_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +201,7 @@ theorem add_const_const_sub_nsw_proof : add_const_const_sub_nsw_before ⊑ add_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -228,6 +234,7 @@ theorem add_nsw_const_const_sub_nsw_ov_proof : add_nsw_const_const_sub_nsw_ov_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -260,6 +267,7 @@ theorem add_nuw_const_const_sub_nuw_proof : add_nuw_const_const_sub_nuw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -292,6 +300,7 @@ theorem add_nuw_const_const_sub_proof : add_nuw_const_const_sub_before ⊑ add_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -324,6 +333,7 @@ theorem add_const_const_sub_nuw_proof : add_const_const_sub_nuw_before ⊑ add_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -356,6 +366,7 @@ theorem sub_const_add_const_proof : sub_const_add_const_before ⊑ sub_const_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -388,6 +399,7 @@ theorem sub_const_sub_const_proof : sub_const_sub_const_before ⊑ sub_const_sub simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -420,6 +432,7 @@ theorem sub_const_const_sub_proof : sub_const_const_sub_before ⊑ sub_const_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -452,6 +465,7 @@ theorem const_sub_add_const_proof : const_sub_add_const_before ⊑ const_sub_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -484,6 +498,7 @@ theorem const_sub_sub_const_proof : const_sub_sub_const_before ⊑ const_sub_sub simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -516,6 +531,7 @@ theorem const_sub_const_sub_proof : const_sub_const_sub_before ⊑ const_sub_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -550,6 +566,7 @@ theorem addsub_combine_constants_proof : addsub_combine_constants_before ⊑ add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -582,6 +599,7 @@ theorem sub_from_constant_proof : sub_from_constant_before ⊑ sub_from_constant simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -616,6 +634,7 @@ theorem sub_from_constant_commute_proof : sub_from_constant_commute_before ⊑ s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand.lean b/SSA/Projects/InstCombine/tests/LLVM/gand.lean index ef855b95b..f4559254c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand.lean @@ -35,6 +35,7 @@ theorem test_with_even_proof : test_with_even_before ⊑ test_with_even_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem test_with_neg_even_proof : test_with_neg_even_before ⊑ test_with_neg_e simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -95,6 +97,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -123,6 +126,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -152,6 +156,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -180,6 +185,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -207,6 +213,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -234,6 +241,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +272,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +304,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -328,6 +338,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -359,6 +370,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -390,6 +402,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -422,6 +435,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -454,6 +468,7 @@ theorem test20_proof : test20_before ⊑ test20_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -488,6 +503,7 @@ theorem test27_proof : test27_before ⊑ test27_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -520,6 +536,7 @@ theorem ashr_lowmask_proof : ashr_lowmask_before ⊑ ashr_lowmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -553,6 +570,7 @@ theorem test32_proof : test32_before ⊑ test32_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -587,6 +605,7 @@ theorem test33_proof : test33_before ⊑ test33_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -621,6 +640,7 @@ theorem test33b_proof : test33b_before ⊑ test33b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -649,6 +669,7 @@ theorem test34_proof : test34_before ⊑ test34_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -683,6 +704,7 @@ theorem test42_proof : test42_before ⊑ test42_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -717,6 +739,7 @@ theorem test43_proof : test43_before ⊑ test43_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -748,6 +771,7 @@ theorem test44_proof : test44_before ⊑ test44_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -779,6 +803,7 @@ theorem test45_proof : test45_before ⊑ test45_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -810,6 +835,7 @@ theorem test46_proof : test46_before ⊑ test46_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -841,6 +867,7 @@ theorem test47_proof : test47_before ⊑ test47_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -873,6 +900,7 @@ theorem lowmask_add_2_proof : lowmask_add_2_before ⊑ lowmask_add_2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -905,6 +933,7 @@ theorem flip_masked_bit_proof : flip_masked_bit_before ⊑ flip_masked_bit_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -941,6 +970,7 @@ theorem not_ashr_not_bitwidth_mask_proof : not_ashr_not_bitwidth_mask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -977,6 +1007,7 @@ theorem not_lshr_bitwidth_mask_proof : not_lshr_bitwidth_mask_before ⊑ not_lsh simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1010,6 +1041,7 @@ theorem shl_lshr_pow2_const_negative_overflow1_proof : shl_lshr_pow2_const_negat simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1043,6 +1075,7 @@ theorem shl_lshr_pow2_const_negative_overflow2_proof : shl_lshr_pow2_const_negat simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1079,6 +1112,7 @@ theorem lshr_lshr_pow2_const_negative_nopow2_1_proof : lshr_lshr_pow2_const_nega simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1115,6 +1149,7 @@ theorem lshr_lshr_pow2_const_negative_nopow2_2_proof : lshr_lshr_pow2_const_nega simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1148,6 +1183,7 @@ theorem lshr_lshr_pow2_const_negative_overflow_proof : lshr_lshr_pow2_const_nega simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1181,6 +1217,7 @@ theorem lshr_shl_pow2_const_overflow_proof : lshr_shl_pow2_const_overflow_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1215,6 +1252,7 @@ theorem add_constant_equal_with_the_top_bit_of_demandedbits_pass_proof : add_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1251,6 +1289,7 @@ theorem add_constant_equal_with_the_top_bit_of_demandedbits_insertpt_proof : add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean index b934f9896..69b58880c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean @@ -33,6 +33,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -62,6 +63,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -94,6 +96,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -129,6 +132,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -163,6 +167,7 @@ theorem and1_shl1_is_cmp_eq_0_multiuse_proof : and1_shl1_is_cmp_eq_0_multiuse_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -194,6 +199,7 @@ theorem and1_lshr1_is_cmp_eq_0_proof : and1_lshr1_is_cmp_eq_0_before ⊑ and1_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -227,6 +233,7 @@ theorem and1_lshr1_is_cmp_eq_0_multiuse_proof : and1_lshr1_is_cmp_eq_0_multiuse_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -301,6 +309,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -338,6 +347,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -377,6 +387,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean index fb656071b..982c2728c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean @@ -38,6 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -133,6 +136,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean index bb21b3d8c..c85e956e3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean @@ -36,6 +36,7 @@ theorem and_to_xor1_proof : and_to_xor1_before ⊑ and_to_xor1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem and_to_xor2_proof : and_to_xor2_before ⊑ and_to_xor2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem and_to_xor3_proof : and_to_xor3_before ⊑ and_to_xor3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem and_to_xor4_proof : and_to_xor4_before ⊑ and_to_xor4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -166,6 +170,7 @@ theorem or_to_nxor1_proof : or_to_nxor1_before ⊑ or_to_nxor1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -200,6 +205,7 @@ theorem or_to_nxor2_proof : or_to_nxor2_before ⊑ or_to_nxor2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -234,6 +240,7 @@ theorem or_to_nxor3_proof : or_to_nxor3_before ⊑ or_to_nxor3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -268,6 +275,7 @@ theorem or_to_nxor4_proof : or_to_nxor4_before ⊑ or_to_nxor4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -298,6 +306,7 @@ theorem xor_to_xor1_proof : xor_to_xor1_before ⊑ xor_to_xor1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -328,6 +337,7 @@ theorem xor_to_xor2_proof : xor_to_xor2_before ⊑ xor_to_xor2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -358,6 +368,7 @@ theorem xor_to_xor3_proof : xor_to_xor3_before ⊑ xor_to_xor3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -388,6 +399,7 @@ theorem xor_to_xor4_proof : xor_to_xor4_before ⊑ xor_to_xor4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -426,6 +438,7 @@ theorem PR32830_proof : PR32830_before ⊑ PR32830_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -458,6 +471,7 @@ theorem simplify_or_common_op_commute0_proof : simplify_or_common_op_commute0_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -490,6 +504,7 @@ theorem simplify_or_common_op_commute1_proof : simplify_or_common_op_commute1_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -524,6 +539,7 @@ theorem simplify_or_common_op_commute2_proof : simplify_or_common_op_commute2_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -556,6 +572,7 @@ theorem simplify_and_common_op_commute1_proof : simplify_and_common_op_commute1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -590,6 +607,7 @@ theorem simplify_and_common_op_commute2_proof : simplify_and_common_op_commute2_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -621,6 +639,7 @@ theorem reduce_xor_common_op_commute0_proof : reduce_xor_common_op_commute0_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -652,6 +671,7 @@ theorem reduce_xor_common_op_commute1_proof : reduce_xor_common_op_commute1_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -686,6 +706,7 @@ theorem annihilate_xor_common_op_commute2_proof : annihilate_xor_common_op_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean index f72ecf6f5..e785650a6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean @@ -35,6 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -65,6 +66,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean index a0b0e214f..b52067d4d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean @@ -35,6 +35,7 @@ theorem and_xor_not_common_op_proof : and_xor_not_common_op_before ⊑ and_xor_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem and_not_xor_common_op_proof : and_not_xor_common_op_before ⊑ and_not_x simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem or_proof : or_before ⊑ or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -126,6 +129,7 @@ theorem or2_proof : or2_before ⊑ or2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -159,6 +163,7 @@ theorem and_shl_proof : and_shl_before ⊑ and_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -192,6 +197,7 @@ theorem or_shl_proof : or_shl_before ⊑ or_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -225,6 +231,7 @@ theorem or_lshr_proof : or_lshr_before ⊑ or_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -258,6 +265,7 @@ theorem xor_lshr_proof : xor_lshr_before ⊑ xor_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +303,7 @@ theorem xor_lshr_multiuse_proof : xor_lshr_multiuse_before ⊑ xor_lshr_multiuse simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -334,6 +343,7 @@ theorem not_and_and_not_proof : not_and_and_not_before ⊑ not_and_and_not_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -369,6 +379,7 @@ theorem not_and_and_not_commute1_proof : not_and_and_not_commute1_before ⊑ not simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -408,6 +419,7 @@ theorem not_or_or_not_proof : not_or_or_not_before ⊑ not_or_or_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -443,6 +455,7 @@ theorem not_or_or_not_commute1_proof : not_or_or_not_commute1_before ⊑ not_or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -481,6 +494,7 @@ theorem or_not_and_proof : or_not_and_before ⊑ or_not_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -523,6 +537,7 @@ theorem or_not_and_commute1_proof : or_not_and_commute1_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -565,6 +580,7 @@ theorem or_not_and_commute2_proof : or_not_and_commute2_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -603,6 +619,7 @@ theorem or_not_and_commute3_proof : or_not_and_commute3_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -645,6 +662,7 @@ theorem or_not_and_commute4_proof : or_not_and_commute4_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -689,6 +707,7 @@ theorem or_not_and_commute5_proof : or_not_and_commute5_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -727,6 +746,7 @@ theorem or_not_and_commute6_proof : or_not_and_commute6_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -765,6 +785,7 @@ theorem or_not_and_commute7_proof : or_not_and_commute7_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -809,6 +830,7 @@ theorem or_not_and_commute8_proof : or_not_and_commute8_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -855,6 +877,7 @@ theorem or_not_and_commute9_proof : or_not_and_commute9_before ⊑ or_not_and_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -897,6 +920,7 @@ theorem or_not_and_wrong_c_proof : or_not_and_wrong_c_before ⊑ or_not_and_wron simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -939,6 +963,7 @@ theorem or_not_and_wrong_b_proof : or_not_and_wrong_b_before ⊑ or_not_and_wron simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -977,6 +1002,7 @@ theorem and_not_or_proof : and_not_or_before ⊑ and_not_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1019,6 +1045,7 @@ theorem and_not_or_commute1_proof : and_not_or_commute1_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1061,6 +1088,7 @@ theorem and_not_or_commute2_proof : and_not_or_commute2_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1099,6 +1127,7 @@ theorem and_not_or_commute3_proof : and_not_or_commute3_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1141,6 +1170,7 @@ theorem and_not_or_commute4_proof : and_not_or_commute4_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1185,6 +1215,7 @@ theorem and_not_or_commute5_proof : and_not_or_commute5_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1223,6 +1254,7 @@ theorem and_not_or_commute6_proof : and_not_or_commute6_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1261,6 +1293,7 @@ theorem and_not_or_commute7_proof : and_not_or_commute7_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1305,6 +1338,7 @@ theorem and_not_or_commute8_proof : and_not_or_commute8_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1351,6 +1385,7 @@ theorem and_not_or_commute9_proof : and_not_or_commute9_before ⊑ and_not_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1393,6 +1428,7 @@ theorem and_not_or_wrong_c_proof : and_not_or_wrong_c_before ⊑ and_not_or_wron simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1435,6 +1471,7 @@ theorem and_not_or_wrong_b_proof : and_not_or_wrong_b_before ⊑ and_not_or_wron simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1472,6 +1509,7 @@ theorem or_and_not_not_proof : or_and_not_not_before ⊑ or_and_not_not_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1513,6 +1551,7 @@ theorem or_and_not_not_commute1_proof : or_and_not_not_commute1_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1550,6 +1589,7 @@ theorem or_and_not_not_commute2_proof : or_and_not_not_commute2_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1587,6 +1627,7 @@ theorem or_and_not_not_commute3_proof : or_and_not_not_commute3_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1624,6 +1665,7 @@ theorem or_and_not_not_commute4_proof : or_and_not_not_commute4_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1661,6 +1703,7 @@ theorem or_and_not_not_commute5_proof : or_and_not_not_commute5_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1702,6 +1745,7 @@ theorem or_and_not_not_commute6_proof : or_and_not_not_commute6_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1739,6 +1783,7 @@ theorem or_and_not_not_commute7_proof : or_and_not_not_commute7_before ⊑ or_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1779,6 +1824,7 @@ theorem or_and_not_not_wrong_a_proof : or_and_not_not_wrong_a_before ⊑ or_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1819,6 +1865,7 @@ theorem or_and_not_not_wrong_b_proof : or_and_not_not_wrong_b_before ⊑ or_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1856,6 +1903,7 @@ theorem and_or_not_not_proof : and_or_not_not_before ⊑ and_or_not_not_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1897,6 +1945,7 @@ theorem and_or_not_not_commute1_proof : and_or_not_not_commute1_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1934,6 +1983,7 @@ theorem and_or_not_not_commute2_proof : and_or_not_not_commute2_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1971,6 +2021,7 @@ theorem and_or_not_not_commute3_proof : and_or_not_not_commute3_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2008,6 +2059,7 @@ theorem and_or_not_not_commute4_proof : and_or_not_not_commute4_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2045,6 +2097,7 @@ theorem and_or_not_not_commute5_proof : and_or_not_not_commute5_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2086,6 +2139,7 @@ theorem and_or_not_not_commute6_proof : and_or_not_not_commute6_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2123,6 +2177,7 @@ theorem and_or_not_not_commute7_proof : and_or_not_not_commute7_before ⊑ and_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2162,6 +2217,7 @@ theorem and_or_not_not_wrong_a_proof : and_or_not_not_wrong_a_before ⊑ and_or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2202,6 +2258,7 @@ theorem and_or_not_not_wrong_b_proof : and_or_not_not_wrong_b_before ⊑ and_or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2242,6 +2299,7 @@ theorem and_not_or_or_not_or_xor_proof : and_not_or_or_not_or_xor_before ⊑ and simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2282,6 +2340,7 @@ theorem and_not_or_or_not_or_xor_commute1_proof : and_not_or_or_not_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2326,6 +2385,7 @@ theorem and_not_or_or_not_or_xor_commute2_proof : and_not_or_or_not_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2366,6 +2426,7 @@ theorem and_not_or_or_not_or_xor_commute3_proof : and_not_or_or_not_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2410,6 +2471,7 @@ theorem and_not_or_or_not_or_xor_commute4_proof : and_not_or_or_not_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2450,6 +2512,7 @@ theorem and_not_or_or_not_or_xor_commute5_proof : and_not_or_or_not_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2491,6 +2554,7 @@ theorem or_not_and_and_not_and_xor_proof : or_not_and_and_not_and_xor_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2532,6 +2596,7 @@ theorem or_not_and_and_not_and_xor_commute1_proof : or_not_and_and_not_and_xor_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2577,6 +2642,7 @@ theorem or_not_and_and_not_and_xor_commute2_proof : or_not_and_and_not_and_xor_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2618,6 +2684,7 @@ theorem or_not_and_and_not_and_xor_commute3_proof : or_not_and_and_not_and_xor_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2663,6 +2730,7 @@ theorem or_not_and_and_not_and_xor_commute4_proof : or_not_and_and_not_and_xor_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2704,6 +2772,7 @@ theorem or_not_and_and_not_and_xor_commute5_proof : or_not_and_and_not_and_xor_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2742,6 +2811,7 @@ theorem not_and_and_or_not_or_or_proof : not_and_and_or_not_or_or_before ⊑ not simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2780,6 +2850,7 @@ theorem not_and_and_or_not_or_or_commute1_or_proof : not_and_and_or_not_or_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2818,6 +2889,7 @@ theorem not_and_and_or_not_or_or_commute2_or_proof : not_and_and_or_not_or_or_co simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2856,6 +2928,7 @@ theorem not_and_and_or_not_or_or_commute1_and_proof : not_and_and_or_not_or_or_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2894,6 +2967,7 @@ theorem not_and_and_or_not_or_or_commute2_and_proof : not_and_and_or_not_or_or_c simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2932,6 +3006,7 @@ theorem not_and_and_or_not_or_or_commute1_proof : not_and_and_or_not_or_or_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2974,6 +3049,7 @@ theorem not_and_and_or_not_or_or_commute2_proof : not_and_and_or_not_or_or_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3016,6 +3092,7 @@ theorem not_and_and_or_not_or_or_commute3_proof : not_and_and_or_not_or_or_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3058,6 +3135,7 @@ theorem not_and_and_or_not_or_or_commute4_proof : not_and_and_or_not_or_or_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3096,6 +3174,7 @@ theorem not_or_or_and_not_and_and_proof : not_or_or_and_not_and_and_before ⊑ n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3134,6 +3213,7 @@ theorem not_or_or_and_not_and_and_commute1_and_proof : not_or_or_and_not_and_and simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3172,6 +3252,7 @@ theorem not_or_or_and_not_and_and_commute2_and_proof : not_or_or_and_not_and_and simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3210,6 +3291,7 @@ theorem not_or_or_and_not_and_and_commute1_or_proof : not_or_or_and_not_and_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3248,6 +3330,7 @@ theorem not_or_or_and_not_and_and_commute2_or_proof : not_or_or_and_not_and_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3286,6 +3369,7 @@ theorem not_or_or_and_not_and_and_commute1_proof : not_or_or_and_not_and_and_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3328,6 +3412,7 @@ theorem not_or_or_and_not_and_and_commute2_proof : not_or_or_and_not_and_and_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3370,6 +3455,7 @@ theorem not_or_or_and_not_and_and_commute3_proof : not_or_or_and_not_and_and_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3412,6 +3498,7 @@ theorem not_or_or_and_not_and_and_commute4_proof : not_or_or_and_not_and_and_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3450,6 +3537,7 @@ theorem not_and_and_or_no_or_proof : not_and_and_or_no_or_before ⊑ not_and_and simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3488,6 +3576,7 @@ theorem not_and_and_or_no_or_commute1_and_proof : not_and_and_or_no_or_commute1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3526,6 +3615,7 @@ theorem not_and_and_or_no_or_commute2_and_proof : not_and_and_or_no_or_commute2_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3564,6 +3654,7 @@ theorem not_and_and_or_no_or_commute1_proof : not_and_and_or_no_or_commute1_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3606,6 +3697,7 @@ theorem not_and_and_or_no_or_commute2_proof : not_and_and_or_no_or_commute2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3648,6 +3740,7 @@ theorem not_and_and_or_no_or_commute3_proof : not_and_and_or_no_or_commute3_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3686,6 +3779,7 @@ theorem not_or_or_and_no_and_proof : not_or_or_and_no_and_before ⊑ not_or_or_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3724,6 +3818,7 @@ theorem not_or_or_and_no_and_commute1_or_proof : not_or_or_and_no_and_commute1_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3762,6 +3857,7 @@ theorem not_or_or_and_no_and_commute2_or_proof : not_or_or_and_no_and_commute2_o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3800,6 +3896,7 @@ theorem not_or_or_and_no_and_commute1_proof : not_or_or_and_no_and_commute1_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3842,6 +3939,7 @@ theorem not_or_or_and_no_and_commute2_proof : not_or_or_and_no_and_commute2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3884,6 +3982,7 @@ theorem not_or_or_and_no_and_commute3_proof : not_or_or_and_no_and_commute3_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3918,6 +4017,7 @@ theorem and_orn_xor_proof : and_orn_xor_before ⊑ and_orn_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3956,6 +4056,7 @@ theorem and_orn_xor_commute8_proof : and_orn_xor_commute8_before ⊑ and_orn_xor simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -3990,6 +4091,7 @@ theorem canonicalize_logic_first_or0_proof : canonicalize_logic_first_or0_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4024,6 +4126,7 @@ theorem canonicalize_logic_first_or0_nsw_proof : canonicalize_logic_first_or0_ns simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4058,6 +4161,7 @@ theorem canonicalize_logic_first_or0_nswnuw_proof : canonicalize_logic_first_or0 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4092,6 +4196,7 @@ theorem canonicalize_logic_first_and0_proof : canonicalize_logic_first_and0_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4126,6 +4231,7 @@ theorem canonicalize_logic_first_and0_nsw_proof : canonicalize_logic_first_and0_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4160,6 +4266,7 @@ theorem canonicalize_logic_first_and0_nswnuw_proof : canonicalize_logic_first_an simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4194,6 +4301,7 @@ theorem canonicalize_logic_first_xor_0_proof : canonicalize_logic_first_xor_0_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4228,6 +4336,7 @@ theorem canonicalize_logic_first_xor_0_nsw_proof : canonicalize_logic_first_xor_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -4262,6 +4371,7 @@ theorem canonicalize_logic_first_xor_0_nswnuw_proof : canonicalize_logic_first_x simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean b/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean index 517a7a415..51b2186d3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean @@ -34,6 +34,7 @@ theorem do_not_add_annotation_to_existing_instr_proof : do_not_add_annotation_to simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean index 22379436b..2877a3c0b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean @@ -33,6 +33,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -62,6 +63,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -91,6 +93,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -123,6 +126,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -154,6 +158,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -185,6 +190,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -216,6 +222,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -251,6 +258,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -285,6 +293,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean index 12a15200b..d5eefa922 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean @@ -33,6 +33,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -61,6 +62,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -92,6 +94,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -124,6 +127,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -153,6 +157,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -181,6 +186,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -212,6 +218,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -244,6 +251,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean index e4d8d0821..917f991e1 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean @@ -38,6 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -133,6 +136,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean index b7aea56de..7156aff6c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean @@ -35,6 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -65,6 +66,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean index 063d61eb0..7a77a9751 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean @@ -34,6 +34,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean index 0fff8739d..5ff32ce2e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean @@ -36,6 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean index 2bf27be64..a7bb9388f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean @@ -33,6 +33,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean index 35389bc5b..c2e4f35ec 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean @@ -34,6 +34,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -102,6 +104,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean index 1d2ccc1b2..cf29e5155 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean @@ -34,6 +34,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean index b574b1056..dbf2cb6c0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean @@ -34,6 +34,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean index 3fb819a50..31e0dd148 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean @@ -36,6 +36,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem test6a_proof : test6a_before ⊑ test6a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -99,6 +101,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -130,6 +133,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -161,6 +165,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -197,6 +202,7 @@ theorem multiuse_lshr_lshr_proof : multiuse_lshr_lshr_before ⊑ multiuse_lshr_l simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -233,6 +239,7 @@ theorem multiuse_shl_shl_proof : multiuse_shl_shl_before ⊑ multiuse_shl_shl_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -269,6 +276,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -300,6 +308,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -336,6 +345,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -371,6 +381,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -404,6 +415,7 @@ theorem test14a_proof : test14a_before ⊑ test14a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -439,6 +451,7 @@ theorem shl_lshr_eq_amt_multi_use_proof : shl_lshr_eq_amt_multi_use_before ⊑ s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -474,6 +487,7 @@ theorem lshr_shl_eq_amt_multi_use_proof : lshr_shl_eq_amt_multi_use_before ⊑ l simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -509,6 +523,7 @@ theorem test25_proof : test25_before ⊑ test25_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean index 49b3303ce..20b1d461f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean @@ -35,6 +35,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean index a5e5c9d22..43c81fa7d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean @@ -32,6 +32,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -60,6 +61,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -89,6 +91,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -119,6 +122,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -149,6 +153,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -180,6 +185,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -210,6 +216,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -241,6 +248,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -272,6 +280,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -304,6 +313,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -336,6 +346,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -368,6 +379,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -399,6 +411,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -427,6 +440,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean index 731c6265e..b823a627e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean @@ -40,6 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -126,6 +129,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -157,6 +161,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -186,6 +191,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +226,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean index 69f8557db..359f376e0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean @@ -40,6 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -126,6 +129,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -157,6 +161,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -186,6 +191,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +226,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean b/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean index b58f36735..fb1e2a0a7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean @@ -38,6 +38,7 @@ theorem srem2_ashr_mask_proof : srem2_ashr_mask_before ⊑ srem2_ashr_mask_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean b/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean index 4098f021d..e32d6e757 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean @@ -36,6 +36,7 @@ theorem ashr_known_pos_exact_proof : ashr_known_pos_exact_before ⊑ ashr_known_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -69,6 +70,7 @@ theorem lshr_mul_times_3_div_2_proof : lshr_mul_times_3_div_2_before ⊑ lshr_mu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -102,6 +104,7 @@ theorem lshr_mul_times_3_div_2_exact_proof : lshr_mul_times_3_div_2_exact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -135,6 +138,7 @@ theorem lshr_mul_times_3_div_2_exact_2_proof : lshr_mul_times_3_div_2_exact_2_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -168,6 +172,7 @@ theorem lshr_mul_times_5_div_4_proof : lshr_mul_times_5_div_4_before ⊑ lshr_mu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -201,6 +206,7 @@ theorem lshr_mul_times_5_div_4_exact_proof : lshr_mul_times_5_div_4_exact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -234,6 +240,7 @@ theorem lshr_mul_times_5_div_4_exact_2_proof : lshr_mul_times_5_div_4_exact_2_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -267,6 +274,7 @@ theorem ashr_mul_times_3_div_2_proof : ashr_mul_times_3_div_2_before ⊑ ashr_mu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -300,6 +308,7 @@ theorem ashr_mul_times_3_div_2_exact_proof : ashr_mul_times_3_div_2_exact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -333,6 +342,7 @@ theorem ashr_mul_times_3_div_2_exact_2_proof : ashr_mul_times_3_div_2_exact_2_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -366,6 +376,7 @@ theorem ashr_mul_times_5_div_4_proof : ashr_mul_times_5_div_4_before ⊑ ashr_mu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -399,6 +410,7 @@ theorem ashr_mul_times_5_div_4_exact_proof : ashr_mul_times_5_div_4_exact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -432,6 +444,7 @@ theorem ashr_mul_times_5_div_4_exact_2_proof : ashr_mul_times_5_div_4_exact_2_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -470,6 +483,7 @@ theorem lsb_mask_sign_zext_wrong_cst2_proof : lsb_mask_sign_zext_wrong_cst2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -508,6 +522,7 @@ theorem lsb_mask_sign_sext_wrong_cst2_proof : lsb_mask_sign_sext_wrong_cst2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean b/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean index 4c4ed09b1..910b3360f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean @@ -38,6 +38,7 @@ theorem avg_lsb_proof : avg_lsb_before ⊑ avg_lsb_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean b/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean index 8de29e173..2330dad07 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean @@ -41,6 +41,7 @@ theorem shl_and_and_proof : shl_and_and_before ⊑ shl_and_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -81,6 +82,7 @@ theorem shl_and_and_fail_proof : shl_and_and_fail_before ⊑ shl_and_and_fail_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -118,6 +120,7 @@ theorem shl_add_add_proof : shl_add_add_before ⊑ shl_add_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -156,6 +159,7 @@ theorem shl_add_add_fail_proof : shl_add_add_fail_before ⊑ shl_add_add_fail_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -193,6 +197,7 @@ theorem shl_and_xor_proof : shl_and_xor_before ⊑ shl_and_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -230,6 +235,7 @@ theorem shl_and_add_proof : shl_and_add_before ⊑ shl_and_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -267,6 +273,7 @@ theorem lshr_or_and_proof : lshr_or_and_before ⊑ lshr_or_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -304,6 +311,7 @@ theorem lshr_or_or_fail_proof : lshr_or_or_fail_before ⊑ lshr_or_or_fail_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -337,6 +345,7 @@ theorem lshr_or_or_no_const_proof : lshr_or_or_no_const_before ⊑ lshr_or_or_no simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -370,6 +379,7 @@ theorem shl_xor_xor_no_const_proof : shl_xor_xor_no_const_before ⊑ shl_xor_xor simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -403,6 +413,7 @@ theorem shl_add_add_no_const_proof : shl_add_add_no_const_before ⊑ shl_add_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -440,6 +451,7 @@ theorem lshr_xor_or_good_mask_proof : lshr_xor_or_good_mask_before ⊑ lshr_xor_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -477,6 +489,7 @@ theorem shl_xor_xor_good_mask_proof : shl_xor_xor_good_mask_before ⊑ shl_xor_x simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -514,6 +527,7 @@ theorem shl_xor_xor_bad_mask_distribute_proof : shl_xor_xor_bad_mask_distribute_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -551,6 +565,7 @@ theorem shl_add_and_proof : shl_add_and_before ⊑ shl_add_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -589,6 +604,7 @@ theorem lshr_and_add_fail_proof : lshr_and_add_fail_before ⊑ lshr_and_add_fail simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -627,6 +643,7 @@ theorem lshr_add_or_fail_proof : lshr_add_or_fail_before ⊑ lshr_add_or_fail_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -665,6 +682,7 @@ theorem lshr_add_xor_fail_proof : lshr_add_xor_fail_before ⊑ lshr_add_xor_fail simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -703,6 +721,7 @@ theorem shl_add_and_fail_mismatch_shift_proof : shl_add_and_fail_mismatch_shift_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -738,6 +757,7 @@ theorem and_ashr_not_proof : and_ashr_not_before ⊑ and_ashr_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -773,6 +793,7 @@ theorem and_ashr_not_commuted_proof : and_ashr_not_commuted_before ⊑ and_ashr_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -808,6 +829,7 @@ theorem or_ashr_not_proof : or_ashr_not_before ⊑ or_ashr_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -843,6 +865,7 @@ theorem or_ashr_not_commuted_proof : or_ashr_not_commuted_before ⊑ or_ashr_not simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -878,6 +901,7 @@ theorem xor_ashr_not_proof : xor_ashr_not_before ⊑ xor_ashr_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -913,6 +937,7 @@ theorem xor_ashr_not_commuted_proof : xor_ashr_not_commuted_before ⊑ xor_ashr_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -949,6 +974,7 @@ theorem xor_ashr_not_fail_lshr_ashr_proof : xor_ashr_not_fail_lshr_ashr_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -985,6 +1011,7 @@ theorem xor_ashr_not_fail_ashr_lshr_proof : xor_ashr_not_fail_ashr_lshr_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1020,6 +1047,7 @@ theorem xor_ashr_not_fail_invalid_xor_constant_proof : xor_ashr_not_fail_invalid simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean b/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean index 15320b2ae..a7087ba8f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean @@ -39,6 +39,7 @@ theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -109,6 +111,7 @@ theorem ashr_or_proof : ashr_or_before ⊑ ashr_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -144,6 +147,7 @@ theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -179,6 +183,7 @@ theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -214,6 +219,7 @@ theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -249,6 +255,7 @@ theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -284,6 +291,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -319,6 +327,7 @@ theorem ashr_and_proof : ashr_and_before ⊑ ashr_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -354,6 +363,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -394,6 +404,7 @@ theorem lshr_add_fail_proof : lshr_add_fail_before ⊑ lshr_add_fail_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -429,6 +440,7 @@ theorem shl_or_commuted_proof : shl_or_commuted_before ⊑ shl_or_commuted_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -464,6 +476,7 @@ theorem shl_or_with_or_disjoint_instead_of_add_proof : shl_or_with_or_disjoint_i simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean index ba961ca16..cdd38b959 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean @@ -35,6 +35,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem positive_biggerashr_proof : positive_biggerashr_before ⊑ positive_bigg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -134,6 +137,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -165,6 +169,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +201,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -230,6 +236,7 @@ theorem positive_biggerashr_shlnuw_proof : positive_biggerashr_shlnuw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +303,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +335,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -360,6 +370,7 @@ theorem positive_biggerashr_shlnsw_proof : positive_biggerashr_shlnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -394,6 +405,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -425,6 +437,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -456,6 +469,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -490,6 +504,7 @@ theorem positive_biggerashr_shlnuwnsw_proof : positive_biggerashr_shlnuwnsw_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -524,6 +539,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -552,6 +568,7 @@ theorem positive_samevar_ashrexact_proof : positive_samevar_ashrexact_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -581,6 +598,7 @@ theorem positive_sameconst_ashrexact_proof : positive_sameconst_ashrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -613,6 +631,7 @@ theorem positive_biggerashr_ashrexact_proof : positive_biggerashr_ashrexact_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -645,6 +664,7 @@ theorem positive_biggershl_ashrexact_proof : positive_biggershl_ashrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -673,6 +693,7 @@ theorem positive_samevar_shlnsw_ashrexact_proof : positive_samevar_shlnsw_ashrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -702,6 +723,7 @@ theorem positive_sameconst_shlnsw_ashrexact_proof : positive_sameconst_shlnsw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -734,6 +756,7 @@ theorem positive_biggerashr_shlnsw_ashrexact_proof : positive_biggerashr_shlnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -766,6 +789,7 @@ theorem positive_biggershl_shlnsw_ashrexact_proof : positive_biggershl_shlnsw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -794,6 +818,7 @@ theorem positive_samevar_shlnuw_ashrexact_proof : positive_samevar_shlnuw_ashrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -823,6 +848,7 @@ theorem positive_sameconst_shlnuw_ashrexact_proof : positive_sameconst_shlnuw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -855,6 +881,7 @@ theorem positive_biggerashr_shlnuw_ashrexact_proof : positive_biggerashr_shlnuw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -887,6 +914,7 @@ theorem positive_biggershl_shlnuw_ashrexact_proof : positive_biggershl_shlnuw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -915,6 +943,7 @@ theorem positive_samevar_shlnuwnsw_ashrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -944,6 +973,7 @@ theorem positive_sameconst_shlnuwnsw_ashrexact_proof : positive_sameconst_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -976,6 +1006,7 @@ theorem positive_biggerashr_shlnuwnsw_ashrexact_proof : positive_biggerashr_shln simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1008,6 +1039,7 @@ theorem positive_biggershl_shlnuwnsw_ashrexact_proof : positive_biggershl_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean index 00e8d3b23..bd7b05ddd 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean @@ -35,6 +35,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem positive_biggerlshr_proof : positive_biggerlshr_before ⊑ positive_bigg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -134,6 +137,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -165,6 +169,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +201,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -230,6 +236,7 @@ theorem positive_biggerlshr_shlnuw_proof : positive_biggerlshr_shlnuw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +303,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +335,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -360,6 +370,7 @@ theorem positive_biggerlshr_shlnsw_proof : positive_biggerlshr_shlnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -394,6 +405,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -425,6 +437,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -456,6 +469,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -490,6 +504,7 @@ theorem positive_biggerlshr_shlnuwnsw_proof : positive_biggerlshr_shlnuwnsw_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -524,6 +539,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -552,6 +568,7 @@ theorem positive_samevar_lshrexact_proof : positive_samevar_lshrexact_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -581,6 +598,7 @@ theorem positive_sameconst_lshrexact_proof : positive_sameconst_lshrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -613,6 +631,7 @@ theorem positive_biggerlshr_lshrexact_proof : positive_biggerlshr_lshrexact_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -645,6 +664,7 @@ theorem positive_biggershl_lshrexact_proof : positive_biggershl_lshrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -673,6 +693,7 @@ theorem positive_samevar_shlnsw_lshrexact_proof : positive_samevar_shlnsw_lshrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -702,6 +723,7 @@ theorem positive_sameconst_shlnsw_lshrexact_proof : positive_sameconst_shlnsw_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -734,6 +756,7 @@ theorem positive_biggerlshr_shlnsw_lshrexact_proof : positive_biggerlshr_shlnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -766,6 +789,7 @@ theorem positive_biggershl_shlnsw_lshrexact_proof : positive_biggershl_shlnsw_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -794,6 +818,7 @@ theorem positive_samevar_shlnuw_lshrexact_proof : positive_samevar_shlnuw_lshrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -823,6 +848,7 @@ theorem positive_sameconst_shlnuw_lshrexact_proof : positive_sameconst_shlnuw_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -855,6 +881,7 @@ theorem positive_biggerlshr_shlnuw_lshrexact_proof : positive_biggerlshr_shlnuw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -887,6 +914,7 @@ theorem positive_biggershl_shlnuw_lshrexact_proof : positive_biggershl_shlnuw_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -915,6 +943,7 @@ theorem positive_samevar_shlnuwnsw_lshrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -944,6 +973,7 @@ theorem positive_sameconst_shlnuwnsw_lshrexact_proof : positive_sameconst_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -976,6 +1006,7 @@ theorem positive_biggerlshr_shlnuwnsw_lshrexact_proof : positive_biggerlshr_shln simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1008,6 +1039,7 @@ theorem positive_biggershl_shlnuwnsw_lshrexact_proof : positive_biggershl_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean index 86d439884..b7e4ff502 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean @@ -35,6 +35,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem positive_biggerShl_proof : positive_biggerShl_before ⊑ positive_bigger simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -134,6 +137,7 @@ theorem positive_biggerLshr_proof : positive_biggerLshr_before ⊑ positive_bigg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -168,6 +172,7 @@ theorem positive_biggerLshr_lshrexact_proof : positive_biggerLshr_lshrexact_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +201,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -225,6 +231,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -257,6 +264,7 @@ theorem positive_biggerShl_shlnuw_proof : positive_biggerShl_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -289,6 +297,7 @@ theorem positive_biggerLshr_shlnuw_proof : positive_biggerLshr_shlnuw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -321,6 +330,7 @@ theorem positive_biggerLshr_shlnuw_lshrexact_proof : positive_biggerLshr_shlnuw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean b/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean index 391b6c22a..c1bc970cf 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean @@ -66,6 +66,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean b/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean index 3b002fdd4..745c6abfc 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean @@ -37,6 +37,7 @@ theorem demorgan_or_apint1_proof : demorgan_or_apint1_before ⊑ demorgan_or_api simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem demorgan_or_apint2_proof : demorgan_or_apint2_before ⊑ demorgan_or_api simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem demorgan_and_apint1_proof : demorgan_and_apint1_before ⊑ demorgan_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem demorgan_and_apint2_proof : demorgan_and_apint2_before ⊑ demorgan_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -169,6 +173,7 @@ theorem demorgan_and_apint3_proof : demorgan_and_apint3_before ⊑ demorgan_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -202,6 +207,7 @@ theorem demorgan_and_apint4_proof : demorgan_and_apint4_before ⊑ demorgan_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -235,6 +241,7 @@ theorem demorgan_and_apint5_proof : demorgan_and_apint5_before ⊑ demorgan_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -267,6 +274,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -300,6 +308,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -332,6 +341,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -364,6 +374,7 @@ theorem test3_apint_proof : test3_apint_before ⊑ test3_apint_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -398,6 +409,7 @@ theorem test4_apint_proof : test4_apint_before ⊑ test4_apint_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -430,6 +442,7 @@ theorem test5_apint_proof : test5_apint_before ⊑ test5_apint_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -463,6 +476,7 @@ theorem demorgan_nand_proof : demorgan_nand_before ⊑ demorgan_nand_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -496,6 +510,7 @@ theorem demorgan_nand_apint1_proof : demorgan_nand_apint1_before ⊑ demorgan_na simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -529,6 +544,7 @@ theorem demorgan_nand_apint2_proof : demorgan_nand_apint2_before ⊑ demorgan_na simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -562,6 +578,7 @@ theorem demorgan_nor_proof : demorgan_nor_before ⊑ demorgan_nor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -602,6 +619,7 @@ theorem demorgan_nor_use2a_proof : demorgan_nor_use2a_before ⊑ demorgan_nor_us simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -641,6 +659,7 @@ theorem demorgan_nor_use2b_proof : demorgan_nor_use2b_before ⊑ demorgan_nor_us simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -681,6 +700,7 @@ theorem demorgan_nor_use2c_proof : demorgan_nor_use2c_before ⊑ demorgan_nor_us simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -727,6 +747,7 @@ theorem demorgan_nor_use2ab_proof : demorgan_nor_use2ab_before ⊑ demorgan_nor_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -773,6 +794,7 @@ theorem demorgan_nor_use2ac_proof : demorgan_nor_use2ac_before ⊑ demorgan_nor_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -817,6 +839,7 @@ theorem demorgan_nor_use2bc_proof : demorgan_nor_use2bc_before ⊑ demorgan_nor_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -850,6 +873,7 @@ theorem demorganize_constant2_proof : demorganize_constant2_before ⊑ demorgani simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -883,6 +907,7 @@ theorem demorgan_plus_and_to_xor_proof : demorgan_plus_and_to_xor_before ⊑ dem simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -917,6 +942,7 @@ theorem PR45984_proof : PR45984_before ⊑ PR45984_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean index 2d7e1a81b..0e3e815b6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean @@ -35,6 +35,7 @@ theorem factorize_proof : factorize_before ⊑ factorize_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -129,6 +132,7 @@ theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -161,6 +165,7 @@ theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -194,6 +199,7 @@ theorem expand_proof : expand_before ⊑ expand_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean index edd63edf7..02aec2443 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean @@ -31,6 +31,7 @@ theorem sdiv_i1_is_op0_proof : sdiv_i1_is_op0_before ⊑ sdiv_i1_is_op0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -59,6 +60,7 @@ theorem srem_i1_is_zero_proof : srem_i1_is_zero_before ⊑ srem_i1_is_zero_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -87,6 +89,7 @@ theorem urem_i1_is_zero_proof : urem_i1_is_zero_before ⊑ urem_i1_is_zero_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean index cb21d31d2..a35d46c9e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean @@ -34,6 +34,7 @@ theorem t7_proof : t7_before ⊑ t7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem t10_proof : t10_before ⊑ t10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem sdiv_mul_shl_nsw_proof : sdiv_mul_shl_nsw_before ⊑ sdiv_mul_shl_nsw_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -158,6 +162,7 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -190,6 +195,7 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -222,6 +228,7 @@ theorem sdiv_shl_pair1_proof : sdiv_shl_pair1_before ⊑ sdiv_shl_pair1_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -254,6 +261,7 @@ theorem sdiv_shl_pair2_proof : sdiv_shl_pair2_before ⊑ sdiv_shl_pair2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -286,6 +294,7 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean b/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean index f4c094e49..84b55a348 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean @@ -36,6 +36,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean index 0eb64f3ca..37558e5fa 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean @@ -34,6 +34,7 @@ theorem sdiv2_proof : sdiv2_before ⊑ sdiv2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -63,6 +64,7 @@ theorem sdiv4_proof : sdiv4_before ⊑ sdiv4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -95,6 +97,7 @@ theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -129,6 +132,7 @@ theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -161,6 +165,7 @@ theorem mul_of_sdiv_fail_ub_proof : mul_of_sdiv_fail_ub_before ⊑ mul_of_sdiv_f simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean b/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean index 7920ca76a..4e9effd2f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean @@ -36,6 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem n12_proof : n12_before ⊑ n12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean index 2dd5871f2..b6a5d893c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean @@ -36,6 +36,7 @@ theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean index 447b24d50..5307b0af9 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean @@ -39,6 +39,7 @@ theorem lshr_not_nneg2_proof : lshr_not_nneg2_before ⊑ lshr_not_nneg2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean b/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean index 6db4b54a3..4392b4cfc 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean @@ -39,6 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem t9_nocse_proof : t9_nocse_before ⊑ t9_nocse_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -150,6 +153,7 @@ theorem t17_nocse_mismatching_x_proof : t17_nocse_mismatching_x_before ⊑ t17_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean b/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean index 67c95db52..8f4fb5fbb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean @@ -36,6 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem t0_exact_proof : t0_exact_before ⊑ t0_exact_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem t3_exact_proof : t3_exact_before ⊑ t3_exact_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -166,6 +170,7 @@ theorem n9_proof : n9_before ⊑ n9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean index fea34f2aa..c8c6c257b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean @@ -39,6 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem n7_proof : n7_before ⊑ n7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean index 435d469a8..dea08259d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean @@ -37,6 +37,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem n5_proof : n5_before ⊑ n5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean index 07ea48765..540811232 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean @@ -36,6 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean index f0d719d06..140d53322 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean @@ -36,6 +36,7 @@ theorem t0_scalar_proof : t0_scalar_before ⊑ t0_scalar_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean index f22351a08..bccf14b35 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean @@ -38,6 +38,7 @@ theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean index ae11e1e9c..a333028a3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean @@ -38,6 +38,7 @@ theorem pr40493_neg3_proof : pr40493_neg3_before ⊑ pr40493_neg3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -73,6 +74,7 @@ theorem pr51551_demand3bits_proof : pr51551_demand3bits_before ⊑ pr51551_deman simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean index 966dd8fcb..7dc972abc 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean @@ -38,6 +38,7 @@ theorem scalar_proof : scalar_before ⊑ scalar_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem in_constant_varx_mone_invmask_proof : in_constant_varx_mone_invmask_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -106,6 +108,7 @@ theorem in_constant_varx_6_invmask_proof : in_constant_varx_6_invmask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem in_constant_mone_vary_invmask_proof : in_constant_mone_vary_invmask_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -176,6 +180,7 @@ theorem in_constant_6_vary_invmask_proof : in_constant_6_vary_invmask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -210,6 +215,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -244,6 +250,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -278,6 +285,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -314,6 +322,7 @@ theorem commutativity_constant_varx_6_invmask_proof : commutativity_constant_var simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -350,6 +359,7 @@ theorem commutativity_constant_6_vary_invmask_proof : commutativity_constant_6_v simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean b/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean index 8ee88655d..bca02aa09 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean @@ -37,6 +37,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem t1_otherbitwidth_proof : t1_otherbitwidth_before ⊑ t1_otherbitwidth_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/glshr.lean b/SSA/Projects/InstCombine/tests/LLVM/glshr.lean index 5e54aa00e..bd3933272 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/glshr.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/glshr.lean @@ -39,6 +39,7 @@ theorem lshr_exact_proof : lshr_exact_before ⊑ lshr_exact_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -104,6 +106,7 @@ theorem mul_splat_fold_proof : mul_splat_fold_before ⊑ mul_splat_fold_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -135,6 +138,7 @@ theorem shl_add_lshr_flag_preservation_proof : shl_add_lshr_flag_preservation_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -166,6 +170,7 @@ theorem shl_add_lshr_proof : shl_add_lshr_before ⊑ shl_add_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -199,6 +204,7 @@ theorem shl_add_lshr_comm_proof : shl_add_lshr_comm_before ⊑ shl_add_lshr_comm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -230,6 +236,7 @@ theorem shl_sub_lshr_proof : shl_sub_lshr_before ⊑ shl_sub_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -261,6 +268,7 @@ theorem shl_sub_lshr_reverse_proof : shl_sub_lshr_reverse_before ⊑ shl_sub_lsh simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -292,6 +300,7 @@ theorem shl_sub_lshr_reverse_no_nsw_proof : shl_sub_lshr_reverse_no_nsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -323,6 +332,7 @@ theorem shl_sub_lshr_reverse_nsw_on_op1_proof : shl_sub_lshr_reverse_nsw_on_op1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -354,6 +364,7 @@ theorem shl_or_lshr_proof : shl_or_lshr_before ⊑ shl_or_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -385,6 +396,7 @@ theorem shl_or_disjoint_lshr_proof : shl_or_disjoint_lshr_before ⊑ shl_or_disj simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -416,6 +428,7 @@ theorem shl_or_lshr_comm_proof : shl_or_lshr_comm_before ⊑ shl_or_lshr_comm_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -447,6 +460,7 @@ theorem shl_or_disjoint_lshr_comm_proof : shl_or_disjoint_lshr_comm_before ⊑ s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -478,6 +492,7 @@ theorem shl_xor_lshr_proof : shl_xor_lshr_before ⊑ shl_xor_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -509,6 +524,7 @@ theorem shl_xor_lshr_comm_proof : shl_xor_lshr_comm_before ⊑ shl_xor_lshr_comm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -540,6 +556,7 @@ theorem shl_and_lshr_proof : shl_and_lshr_before ⊑ shl_and_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -571,6 +588,7 @@ theorem shl_and_lshr_comm_proof : shl_and_lshr_comm_before ⊑ shl_and_lshr_comm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -602,6 +620,7 @@ theorem shl_lshr_and_exact_proof : shl_lshr_and_exact_before ⊑ shl_lshr_and_ex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -635,6 +654,7 @@ theorem mul_splat_fold_no_nuw_proof : mul_splat_fold_no_nuw_before ⊑ mul_splat simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -665,6 +685,7 @@ theorem mul_splat_fold_too_narrow_proof : mul_splat_fold_too_narrow_before ⊑ m simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -698,6 +719,7 @@ theorem negative_and_odd_proof : negative_and_odd_before ⊑ negative_and_odd_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean index 03264b89e..46a54794a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean @@ -40,6 +40,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -148,6 +151,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -184,6 +188,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +225,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -256,6 +262,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -292,6 +299,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +334,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean index 8dd232eef..192f78d13 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean @@ -40,6 +40,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -145,6 +148,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean index a52e387c0..d20ceca3a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean @@ -40,6 +40,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -148,6 +151,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -184,6 +188,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -217,6 +222,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean index bcfa20cbc..6e1bc881f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean @@ -40,6 +40,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -148,6 +151,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -184,6 +188,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +225,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -256,6 +262,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -292,6 +299,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -325,6 +333,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean b/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean index b36bf6e55..7f9241e5c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean @@ -38,6 +38,7 @@ theorem missed_const_prop_2002h12h05_proof : missed_const_prop_2002h12h05_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean b/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean index 87f9c0181..ea1c1ec59 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean @@ -43,6 +43,7 @@ theorem mul8_low_A0_B0_proof : mul8_low_A0_B0_before ⊑ mul8_low_A0_B0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -82,6 +83,7 @@ theorem mul8_low_proof : mul8_low_before ⊑ mul8_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -121,6 +123,7 @@ theorem mul16_low_proof : mul16_low_before ⊑ mul16_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -160,6 +163,7 @@ theorem mul32_low_proof : mul32_low_before ⊑ mul32_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -199,6 +203,7 @@ theorem mul64_low_proof : mul64_low_before ⊑ mul64_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -238,6 +243,7 @@ theorem mul128_low_proof : mul128_low_before ⊑ mul128_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -277,6 +283,7 @@ theorem mul130_low_proof : mul130_low_before ⊑ mul130_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -327,6 +334,7 @@ theorem mul9_low_proof : mul9_low_before ⊑ mul9_low_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -377,6 +385,7 @@ theorem mul16_low_miss_shift_amount_proof : mul16_low_miss_shift_amount_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -427,6 +436,7 @@ theorem mul8_low_miss_half_width_proof : mul8_low_miss_half_width_before ⊑ mul simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean index 5e82e55a2..735e0567c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean @@ -36,6 +36,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nuw_proof : shl_add_log_may_ca simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nsw_proof : shl_add_log_may_ca simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean b/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean index b95a73e64..03aebdeb4 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean @@ -40,6 +40,7 @@ theorem neg_mask1_lshr_proof : neg_mask1_lshr_before ⊑ neg_mask1_lshr_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -77,6 +78,7 @@ theorem sub_mask1_lshr_proof : sub_mask1_lshr_before ⊑ sub_mask1_lshr_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -115,6 +117,7 @@ theorem neg_mask2_lshr_proof : neg_mask2_lshr_before ⊑ neg_mask2_lshr_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean index 090628c28..3824b455c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean @@ -33,6 +33,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem not_ashr_not_proof : not_ashr_not_before ⊑ not_ashr_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem not_ashr_const_proof : not_ashr_const_before ⊑ not_ashr_const_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem not_lshr_const_proof : not_lshr_const_before ⊑ not_lshr_const_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -160,6 +164,7 @@ theorem not_sub_proof : not_sub_before ⊑ not_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -192,6 +197,7 @@ theorem not_add_proof : not_add_before ⊑ not_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -227,6 +233,7 @@ theorem not_or_neg_proof : not_or_neg_before ⊑ not_or_neg_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -262,6 +269,7 @@ theorem test_invert_demorgan_and2_proof : test_invert_demorgan_and2_before ⊑ t simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean index 25e86d971..350e46720 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean @@ -35,6 +35,7 @@ theorem basic_proof : basic_before ⊑ basic_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem basic_com_add_proof : basic_com_add_before ⊑ basic_com_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem basic_preserve_nsw_proof : basic_preserve_nsw_before ⊑ basic_preserve_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem basic_preserve_nuw_proof : basic_preserve_nuw_before ⊑ basic_preserve_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -159,6 +163,7 @@ theorem basic_preserve_nuw_nsw_proof : basic_preserve_nuw_nsw_before ⊑ basic_p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean index 10392709d..039cf5d55 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean @@ -48,6 +48,7 @@ theorem or_and_shifts1_proof : or_and_shifts1_before ⊑ or_and_shifts1_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -92,6 +93,7 @@ theorem or_and_shift_shift_and_proof : or_and_shift_shift_and_before ⊑ or_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -143,6 +145,7 @@ theorem multiuse1_proof : multiuse1_before ⊑ multiuse1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -205,6 +208,7 @@ theorem multiuse2_proof : multiuse2_before ⊑ multiuse2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -259,6 +263,7 @@ theorem multiuse3_proof : multiuse3_before ⊑ multiuse3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +300,7 @@ theorem shl_mask_proof : shl_mask_before ⊑ shl_mask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -331,6 +337,7 @@ theorem shl_mask_wrong_shl_const_proof : shl_mask_wrong_shl_const_before ⊑ shl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -367,6 +374,7 @@ theorem shl_mask_weird_type_proof : shl_mask_weird_type_before ⊑ shl_mask_weir simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -407,6 +415,7 @@ theorem shl_mul_mask_proof : shl_mul_mask_before ⊑ shl_mul_mask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -447,6 +456,7 @@ theorem shl_mul_mask_wrong_mul_const_proof : shl_mul_mask_wrong_mul_const_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean index 2986f0319..385b196d5 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean @@ -37,6 +37,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -169,6 +173,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -202,6 +207,7 @@ theorem test5_commuted_x_y_proof : test5_commuted_x_y_before ⊑ test5_commuted_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -231,6 +237,7 @@ theorem xor_common_op_commute0_proof : xor_common_op_commute0_before ⊑ xor_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem xor_common_op_commute2_proof : xor_common_op_commute2_before ⊑ xor_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -299,6 +307,7 @@ theorem xor_common_op_commute3_proof : xor_common_op_commute3_before ⊑ xor_com simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -332,6 +341,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -365,6 +375,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -401,6 +412,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -437,6 +449,7 @@ theorem test10_commuted_proof : test10_commuted_before ⊑ test10_commuted_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -469,6 +482,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -501,6 +515,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -533,6 +548,7 @@ theorem test12_commuted_proof : test12_commuted_before ⊑ test12_commuted_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -563,6 +579,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -596,6 +613,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -629,6 +647,7 @@ theorem test14_commuted_proof : test14_commuted_before ⊑ test14_commuted_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -662,6 +681,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -695,6 +715,7 @@ theorem test15_commuted_proof : test15_commuted_before ⊑ test15_commuted_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -730,6 +751,7 @@ theorem or_and_xor_not_constant_commute0_proof : or_and_xor_not_constant_commute simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -765,6 +787,7 @@ theorem or_and_xor_not_constant_commute1_proof : or_and_xor_not_constant_commute simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -801,6 +824,7 @@ theorem not_or_xor_proof : not_or_xor_before ⊑ not_or_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -835,6 +859,7 @@ theorem xor_or_proof : xor_or_before ⊑ xor_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -869,6 +894,7 @@ theorem xor_or2_proof : xor_or2_before ⊑ xor_or2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -905,6 +931,7 @@ theorem xor_or_xor_proof : xor_or_xor_before ⊑ xor_or_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -941,6 +968,7 @@ theorem or_xor_or_proof : or_xor_or_before ⊑ or_xor_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -979,6 +1007,7 @@ theorem test17_proof : test17_before ⊑ test17_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1017,6 +1046,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1052,6 +1082,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1087,6 +1118,7 @@ theorem test20_proof : test20_before ⊑ test20_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1122,6 +1154,7 @@ theorem test21_proof : test21_before ⊑ test21_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1157,6 +1190,7 @@ theorem test22_proof : test22_before ⊑ test22_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1192,6 +1226,7 @@ theorem test23_proof : test23_before ⊑ test23_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1226,6 +1261,7 @@ theorem PR45977_f1_proof : PR45977_f1_before ⊑ PR45977_f1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1259,6 +1295,7 @@ theorem PR45977_f2_proof : PR45977_f2_before ⊑ PR45977_f2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1290,6 +1327,7 @@ theorem or_xor_common_op_commute0_proof : or_xor_common_op_commute0_before ⊑ o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1321,6 +1359,7 @@ theorem or_xor_common_op_commute5_proof : or_xor_common_op_commute5_before ⊑ o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1352,6 +1391,7 @@ theorem or_xor_common_op_commute6_proof : or_xor_common_op_commute6_before ⊑ o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1383,6 +1423,7 @@ theorem or_xor_common_op_commute7_proof : or_xor_common_op_commute7_before ⊑ o simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1418,6 +1459,7 @@ theorem or_not_xor_common_op_commute0_proof : or_not_xor_common_op_commute0_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1457,6 +1499,7 @@ theorem or_not_xor_common_op_commute2_proof : or_not_xor_common_op_commute2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1496,6 +1539,7 @@ theorem or_not_xor_common_op_commute3_proof : or_not_xor_common_op_commute3_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1531,6 +1575,7 @@ theorem or_not_xor_common_op_commute5_proof : or_not_xor_common_op_commute5_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1570,6 +1615,7 @@ theorem or_not_xor_common_op_commute6_proof : or_not_xor_common_op_commute6_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1609,6 +1655,7 @@ theorem or_not_xor_common_op_commute7_proof : or_not_xor_common_op_commute7_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1644,6 +1691,7 @@ theorem or_nand_xor_common_op_commute0_proof : or_nand_xor_common_op_commute0_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1676,6 +1724,7 @@ theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1709,6 +1758,7 @@ theorem or_xor_not_proof : or_xor_not_before ⊑ or_xor_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1744,6 +1794,7 @@ theorem or_xor_and_commuted1_proof : or_xor_and_commuted1_before ⊑ or_xor_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1781,6 +1832,7 @@ theorem or_xor_and_commuted2_proof : or_xor_and_commuted2_before ⊑ or_xor_and_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1821,6 +1873,7 @@ theorem or_xor_tree_0000_proof : or_xor_tree_0000_before ⊑ or_xor_tree_0000_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1861,6 +1914,7 @@ theorem or_xor_tree_0001_proof : or_xor_tree_0001_before ⊑ or_xor_tree_0001_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1901,6 +1955,7 @@ theorem or_xor_tree_0010_proof : or_xor_tree_0010_before ⊑ or_xor_tree_0010_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1941,6 +1996,7 @@ theorem or_xor_tree_0011_proof : or_xor_tree_0011_before ⊑ or_xor_tree_0011_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1981,6 +2037,7 @@ theorem or_xor_tree_0100_proof : or_xor_tree_0100_before ⊑ or_xor_tree_0100_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2021,6 +2078,7 @@ theorem or_xor_tree_0101_proof : or_xor_tree_0101_before ⊑ or_xor_tree_0101_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2061,6 +2119,7 @@ theorem or_xor_tree_0110_proof : or_xor_tree_0110_before ⊑ or_xor_tree_0110_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2101,6 +2160,7 @@ theorem or_xor_tree_0111_proof : or_xor_tree_0111_before ⊑ or_xor_tree_0111_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2141,6 +2201,7 @@ theorem or_xor_tree_1000_proof : or_xor_tree_1000_before ⊑ or_xor_tree_1000_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2181,6 +2242,7 @@ theorem or_xor_tree_1001_proof : or_xor_tree_1001_before ⊑ or_xor_tree_1001_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2221,6 +2283,7 @@ theorem or_xor_tree_1010_proof : or_xor_tree_1010_before ⊑ or_xor_tree_1010_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2261,6 +2324,7 @@ theorem or_xor_tree_1011_proof : or_xor_tree_1011_before ⊑ or_xor_tree_1011_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2301,6 +2365,7 @@ theorem or_xor_tree_1100_proof : or_xor_tree_1100_before ⊑ or_xor_tree_1100_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2341,6 +2406,7 @@ theorem or_xor_tree_1101_proof : or_xor_tree_1101_before ⊑ or_xor_tree_1101_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2381,6 +2447,7 @@ theorem or_xor_tree_1110_proof : or_xor_tree_1110_before ⊑ or_xor_tree_1110_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -2421,6 +2488,7 @@ theorem or_xor_tree_1111_proof : or_xor_tree_1111_before ⊑ or_xor_tree_1111_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean index 40f456ed0..1c55c9ef7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean @@ -35,6 +35,7 @@ theorem or_xor_xor_normal_variant1_proof : or_xor_xor_normal_variant1_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem or_xor_xor_normal_variant2_proof : or_xor_xor_normal_variant2_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem or_xor_xor_normal_variant3_proof : or_xor_xor_normal_variant3_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem or_xor_xor_normal_variant4_proof : or_xor_xor_normal_variant4_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -161,6 +165,7 @@ theorem or_xor_xor_normal_binops_proof : or_xor_xor_normal_binops_before ⊑ or_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean b/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean index 9b585fbb7..ef1ee39f7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean @@ -39,6 +39,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -78,6 +79,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean b/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean index ac6059ba6..a4c0d86e6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean @@ -38,6 +38,7 @@ theorem src_proof : src_before ⊑ src_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem src2_proof : src2_before ⊑ src2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -107,6 +109,7 @@ theorem src3_proof : src3_before ⊑ src3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -141,6 +144,7 @@ theorem src4_proof : src4_before ⊑ src4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -175,6 +179,7 @@ theorem src5_proof : src5_before ⊑ src5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean b/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean index d810ed6bb..1a96dc934 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean @@ -34,6 +34,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean index e2f4a9e87..43cf0c617 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean @@ -38,6 +38,7 @@ theorem and_signbit_shl_proof : and_signbit_shl_before ⊑ and_signbit_shl_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem and_nosignbit_shl_proof : and_nosignbit_shl_before ⊑ and_nosignbit_shl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -106,6 +108,7 @@ theorem or_signbit_shl_proof : or_signbit_shl_before ⊑ or_signbit_shl_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem or_nosignbit_shl_proof : or_nosignbit_shl_before ⊑ or_nosignbit_shl_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -174,6 +178,7 @@ theorem xor_signbit_shl_proof : xor_signbit_shl_before ⊑ xor_signbit_shl_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -208,6 +213,7 @@ theorem xor_nosignbit_shl_proof : xor_nosignbit_shl_before ⊑ xor_nosignbit_shl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -242,6 +248,7 @@ theorem add_signbit_shl_proof : add_signbit_shl_before ⊑ add_signbit_shl_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -276,6 +283,7 @@ theorem add_nosignbit_shl_proof : add_nosignbit_shl_before ⊑ add_nosignbit_shl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -310,6 +318,7 @@ theorem and_signbit_lshr_proof : and_signbit_lshr_before ⊑ and_signbit_lshr_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -344,6 +353,7 @@ theorem and_nosignbit_lshr_proof : and_nosignbit_lshr_before ⊑ and_nosignbit_l simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -378,6 +388,7 @@ theorem or_signbit_lshr_proof : or_signbit_lshr_before ⊑ or_signbit_lshr_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -412,6 +423,7 @@ theorem or_nosignbit_lshr_proof : or_nosignbit_lshr_before ⊑ or_nosignbit_lshr simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -446,6 +458,7 @@ theorem xor_signbit_lshr_proof : xor_signbit_lshr_before ⊑ xor_signbit_lshr_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -480,6 +493,7 @@ theorem xor_nosignbit_lshr_proof : xor_nosignbit_lshr_before ⊑ xor_nosignbit_l simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -514,6 +528,7 @@ theorem and_signbit_ashr_proof : and_signbit_ashr_before ⊑ and_signbit_ashr_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -548,6 +563,7 @@ theorem and_nosignbit_ashr_proof : and_nosignbit_ashr_before ⊑ and_nosignbit_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -582,6 +598,7 @@ theorem or_signbit_ashr_proof : or_signbit_ashr_before ⊑ or_signbit_ashr_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -616,6 +633,7 @@ theorem or_nosignbit_ashr_proof : or_nosignbit_ashr_before ⊑ or_nosignbit_ashr simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -650,6 +668,7 @@ theorem xor_signbit_ashr_proof : xor_signbit_ashr_before ⊑ xor_signbit_ashr_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -684,6 +703,7 @@ theorem xor_nosignbit_ashr_proof : xor_nosignbit_ashr_before ⊑ xor_nosignbit_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean b/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean index e59fbdaf5..1c35a50c8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean @@ -36,6 +36,7 @@ theorem reassoc_add_nuw_proof : reassoc_add_nuw_before ⊑ reassoc_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem reassoc_sub_nuw_proof : reassoc_sub_nuw_before ⊑ reassoc_sub_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem reassoc_mul_nuw_proof : reassoc_mul_nuw_before ⊑ reassoc_mul_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem no_reassoc_add_nuw_none_proof : no_reassoc_add_nuw_none_before ⊑ no_re simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem no_reassoc_add_none_nuw_proof : no_reassoc_add_none_nuw_before ⊑ no_re simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -198,6 +203,7 @@ theorem reassoc_x2_add_nuw_proof : reassoc_x2_add_nuw_before ⊑ reassoc_x2_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -232,6 +238,7 @@ theorem reassoc_x2_mul_nuw_proof : reassoc_x2_mul_nuw_before ⊑ reassoc_x2_mul_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -266,6 +273,7 @@ theorem reassoc_x2_sub_nuw_proof : reassoc_x2_sub_nuw_before ⊑ reassoc_x2_sub_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -297,6 +305,7 @@ theorem tryFactorization_add_nuw_mul_nuw_proof : tryFactorization_add_nuw_mul_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -328,6 +337,7 @@ theorem tryFactorization_add_nuw_mul_nuw_int_max_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -359,6 +369,7 @@ theorem tryFactorization_add_mul_nuw_proof : tryFactorization_add_mul_nuw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -390,6 +401,7 @@ theorem tryFactorization_add_nuw_mul_proof : tryFactorization_add_nuw_mul_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -421,6 +433,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_proof : tryFactorization_ad simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -452,6 +465,7 @@ theorem tryFactorization_add_nuw_mul_mul_nuw_var_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -483,6 +497,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_var_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -514,6 +529,7 @@ theorem tryFactorization_add_mul_nuw_mul_var_proof : tryFactorization_add_mul_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean index 0f7328381..3be333c35 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean @@ -38,6 +38,7 @@ theorem t0_lshr_proof : t0_lshr_before ⊑ t0_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem t1_sshr_proof : t1_sshr_before ⊑ t1_sshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -106,6 +108,7 @@ theorem n13_proof : n13_before ⊑ n13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/grem.lean b/SSA/Projects/InstCombine/tests/LLVM/grem.lean index 0cd0a19e1..3591bd39c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/grem.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/grem.lean @@ -33,6 +33,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -63,6 +64,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -94,6 +96,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -125,6 +128,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -156,6 +160,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -189,6 +194,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +226,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -248,6 +255,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -287,6 +295,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -327,6 +336,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -367,6 +377,7 @@ theorem test19_commutative0_proof : test19_commutative0_before ⊑ test19_commut simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -407,6 +418,7 @@ theorem test19_commutative1_proof : test19_commutative1_before ⊑ test19_commut simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -447,6 +459,7 @@ theorem test19_commutative2_proof : test19_commutative2_before ⊑ test19_commut simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -479,6 +492,7 @@ theorem test22_proof : test22_before ⊑ test22_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean index 9cab5dffd..da2edf4a3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean @@ -36,6 +36,7 @@ theorem c_proof : c_before ⊑ c_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean index 3f55372e5..5a4aaef96 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean @@ -36,6 +36,7 @@ theorem test_sdiv_canonicalize_op0_proof : test_sdiv_canonicalize_op0_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem test_sdiv_canonicalize_op0_exact_proof : test_sdiv_canonicalize_op0_exac simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean index ba108c5e0..9c85173a8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean @@ -36,6 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -105,6 +107,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean index 5dda2bb58..59f7b6f9f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean @@ -34,6 +34,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem shl1_nsw_proof : shl1_nsw_before ⊑ shl1_nsw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem shl1_nsw_not_exact_proof : shl1_nsw_not_exact_before ⊑ shl1_nsw_not_ex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -130,6 +133,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -162,6 +166,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean index e39df5d62..3378de639 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean @@ -37,6 +37,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -101,6 +103,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem shl_add_nsw_nuw_proof : shl_add_nsw_nuw_before ⊑ shl_add_nsw_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -165,6 +169,7 @@ theorem shl_nsw_add_proof : shl_nsw_add_before ⊑ shl_nsw_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -198,6 +203,7 @@ theorem shl_nsw_add_nsw_proof : shl_nsw_add_nsw_before ⊑ shl_nsw_add_nsw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -229,6 +235,7 @@ theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -260,6 +267,7 @@ theorem shl_nsw_add_nsw_nuw_proof : shl_nsw_add_nsw_nuw_before ⊑ shl_nsw_add_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -293,6 +301,7 @@ theorem shl_nuw_add_proof : shl_nuw_add_before ⊑ shl_nuw_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +335,7 @@ theorem shl_nuw_add_nsw_proof : shl_nuw_add_nsw_before ⊑ shl_nuw_add_nsw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -357,6 +367,7 @@ theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -388,6 +399,7 @@ theorem shl_nuw_add_nsw_nuw_proof : shl_nuw_add_nsw_nuw_before ⊑ shl_nuw_add_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -421,6 +433,7 @@ theorem shl_nsw_nuw_add_proof : shl_nsw_nuw_add_before ⊑ shl_nsw_nuw_add_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -454,6 +467,7 @@ theorem shl_nsw_nuw_add_nsw_proof : shl_nsw_nuw_add_nsw_before ⊑ shl_nsw_nuw_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -485,6 +499,7 @@ theorem shl_nsw_nuw_add_nuw_proof : shl_nsw_nuw_add_nuw_before ⊑ shl_nsw_nuw_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -516,6 +531,7 @@ theorem shl_nsw_nuw_add_nsw_nuw_proof : shl_nsw_nuw_add_nsw_nuw_before ⊑ shl_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -548,6 +564,7 @@ theorem bad_add0_proof : bad_add0_before ⊑ bad_add0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -580,6 +597,7 @@ theorem bad_add1_proof : bad_add1_before ⊑ bad_add1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -614,6 +632,7 @@ theorem bad_add2_proof : bad_add2_before ⊑ bad_add2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean index a6f4402d8..4b10fc8fb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean @@ -37,6 +37,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -73,6 +74,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -105,6 +107,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -168,6 +172,7 @@ theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -200,6 +205,7 @@ theorem lshr_exact_add_nuw_proof : lshr_exact_add_nuw_before ⊑ lshr_exact_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -232,6 +238,7 @@ theorem ashr_exact_add_nuw_proof : ashr_exact_add_nuw_before ⊑ ashr_exact_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem lshr_exact_add_negative_shift_positive_proof : lshr_exact_add_negative_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -296,6 +304,7 @@ theorem ashr_exact_add_negative_shift_negative_proof : ashr_exact_add_negative_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -328,6 +337,7 @@ theorem shl_nsw_add_negative_proof : shl_nsw_add_negative_before ⊑ shl_nsw_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -362,6 +372,7 @@ theorem shl_nsw_add_negative_invalid_constant3_proof : shl_nsw_add_negative_inva simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -400,6 +411,7 @@ theorem lshr_16_add_known_16_leading_zeroes_proof : lshr_16_add_known_16_leading simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -440,6 +452,7 @@ theorem lshr_16_add_not_known_16_leading_zeroes_proof : lshr_16_add_not_known_16 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -478,6 +491,7 @@ theorem lshr_32_add_known_32_leading_zeroes_proof : lshr_32_add_known_32_leading simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -518,6 +532,7 @@ theorem lshr_32_add_not_known_32_leading_zeroes_proof : lshr_32_add_not_known_32 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -550,6 +565,7 @@ theorem shl_fold_or_disjoint_cnt_proof : shl_fold_or_disjoint_cnt_before ⊑ shl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean index 0c02a5f04..f14f11ed2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean @@ -37,6 +37,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -73,6 +74,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean index 1abd0adc2..ed1c3bea3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean @@ -38,6 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem t6_shl_proof : t6_shl_before ⊑ t6_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -106,6 +108,7 @@ theorem t7_ashr_proof : t7_ashr_before ⊑ t7_ashr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem t8_lshr_exact_flag_preservation_proof : t8_lshr_exact_flag_preservation_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -174,6 +178,7 @@ theorem t9_ashr_exact_flag_preservation_proof : t9_ashr_exact_flag_preservation_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -208,6 +213,7 @@ theorem t10_shl_nuw_flag_preservation_proof : t10_shl_nuw_flag_preservation_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -242,6 +248,7 @@ theorem t11_shl_nsw_flag_preservation_proof : t11_shl_nsw_flag_preservation_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean index 40450c87f..0b23f510f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean @@ -40,6 +40,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem shl_add_nuw_and_nsw_proof : shl_add_nuw_and_nsw_before ⊑ shl_add_nuw_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean index 02a85061c..3c8558d17 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean @@ -40,6 +40,7 @@ theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -80,6 +81,7 @@ theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -116,6 +118,7 @@ theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -156,6 +159,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +200,7 @@ theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -228,6 +233,7 @@ theorem lshr_mul_proof : lshr_mul_before ⊑ lshr_mul_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -260,6 +266,7 @@ theorem lshr_mul_nuw_nsw_proof : lshr_mul_nuw_nsw_before ⊑ lshr_mul_nuw_nsw_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -296,6 +303,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -332,6 +340,7 @@ theorem shl_sub_proof : shl_sub_before ⊑ shl_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -368,6 +377,7 @@ theorem shl_sub_no_commute_proof : shl_sub_no_commute_before ⊑ shl_sub_no_comm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean index 9d00f58a1..6d4dc2e9b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean @@ -35,6 +35,7 @@ theorem shl_shl_proof : shl_shl_before ⊑ shl_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem ashr_shl_constants_proof : ashr_shl_constants_before ⊑ ashr_shl_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem shl_lshr_demand1_proof : shl_lshr_demand1_before ⊑ shl_lshr_demand1_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -172,6 +176,7 @@ theorem shl_lshr_demand6_proof : shl_lshr_demand6_before ⊑ shl_lshr_demand6_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -208,6 +213,7 @@ theorem lshr_shl_demand1_proof : lshr_shl_demand1_before ⊑ lshr_shl_demand1_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -244,6 +250,7 @@ theorem lshr_shl_demand3_proof : lshr_shl_demand3_before ⊑ lshr_shl_demand3_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean index 82565262d..ad234e763 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean @@ -36,6 +36,7 @@ theorem ashr_ashr_proof : ashr_ashr_before ⊑ ashr_ashr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem ashr_overshift_proof : ashr_overshift_before ⊑ ashr_overshift_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean index 65b419e66..f4daac466 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean @@ -43,6 +43,7 @@ theorem lshr_add_proof : lshr_add_before ⊑ lshr_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -81,6 +82,7 @@ theorem lshr_sub_proof : lshr_sub_before ⊑ lshr_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -118,6 +120,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -157,6 +160,7 @@ theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +200,7 @@ theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -237,6 +242,7 @@ theorem lshr_and_add_proof : lshr_and_add_before ⊑ lshr_and_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -279,6 +285,7 @@ theorem lshr_and_sub_proof : lshr_and_sub_before ⊑ lshr_and_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -320,6 +327,7 @@ theorem lshr_and_and_proof : lshr_and_and_before ⊑ lshr_and_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -361,6 +369,7 @@ theorem lshr_and_or_proof : lshr_and_or_before ⊑ lshr_and_or_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -402,6 +411,7 @@ theorem lshr_and_or_disjoint_proof : lshr_and_or_disjoint_before ⊑ lshr_and_or simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -443,6 +453,7 @@ theorem ashr_and_or_disjoint_proof : ashr_and_or_disjoint_before ⊑ ashr_and_or simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -484,6 +495,7 @@ theorem lshr_and_xor_proof : lshr_and_xor_before ⊑ lshr_and_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -521,6 +533,7 @@ theorem lshr_add_and_shl_proof : lshr_add_and_shl_before ⊑ lshr_add_and_shl_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -558,6 +571,7 @@ theorem shl_add_and_lshr_proof : shl_add_and_lshr_before ⊑ shl_add_and_lshr_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean index 2b74ec47d..382b97899 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean @@ -40,6 +40,7 @@ theorem src_srem_shl_demand_max_signbit_proof : src_srem_shl_demand_max_signbit_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem src_srem_shl_demand_min_signbit_proof : src_srem_shl_demand_min_signbit_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem src_srem_shl_demand_max_mask_proof : src_srem_shl_demand_max_mask_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -150,6 +153,7 @@ theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_proof : src_srem_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -188,6 +192,7 @@ theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_proof : src_srem_sh simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -226,6 +231,7 @@ theorem src_srem_shl_demand_eliminate_signbit_proof : src_srem_shl_demand_elimin simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +270,7 @@ theorem src_srem_shl_demand_max_mask_hit_demand_proof : src_srem_shl_demand_max_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -300,6 +307,7 @@ theorem set_shl_mask_proof : set_shl_mask_before ⊑ set_shl_mask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean index 0c9a38cb6..1e0223f56 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean @@ -35,6 +35,7 @@ theorem add_shl_same_amount_proof : add_shl_same_amount_before ⊑ add_shl_same_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem add_shl_same_amount_nuw_proof : add_shl_same_amount_nuw_before ⊑ add_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem add_shl_same_amount_partial_nsw1_proof : add_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem add_shl_same_amount_partial_nsw2_proof : add_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -159,6 +163,7 @@ theorem add_shl_same_amount_partial_nuw1_proof : add_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -190,6 +195,7 @@ theorem add_shl_same_amount_partial_nuw2_proof : add_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -221,6 +227,7 @@ theorem sub_shl_same_amount_proof : sub_shl_same_amount_before ⊑ sub_shl_same_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -252,6 +259,7 @@ theorem sub_shl_same_amount_nuw_proof : sub_shl_same_amount_nuw_before ⊑ sub_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -283,6 +291,7 @@ theorem sub_shl_same_amount_partial_nsw1_proof : sub_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -314,6 +323,7 @@ theorem sub_shl_same_amount_partial_nsw2_proof : sub_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -345,6 +355,7 @@ theorem sub_shl_same_amount_partial_nuw1_proof : sub_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -376,6 +387,7 @@ theorem sub_shl_same_amount_partial_nuw2_proof : sub_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -409,6 +421,7 @@ theorem add_shl_same_amount_constants_proof : add_shl_same_amount_constants_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean index 14912c77b..3f8fbcb3d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean @@ -36,6 +36,7 @@ theorem shl_sub_i32_proof : shl_sub_i32_before ⊑ shl_sub_i32_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem shl_sub_i8_proof : shl_sub_i8_before ⊑ shl_sub_i8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem shl_sub_i64_proof : shl_sub_i64_before ⊑ shl_sub_i64_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -134,6 +137,7 @@ theorem shl_bad_sub_i32_proof : shl_bad_sub_i32_before ⊑ shl_bad_sub_i32_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -168,6 +172,7 @@ theorem shl_bad_sub2_i32_proof : shl_bad_sub2_i32_before ⊑ shl_bad_sub2_i32_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -202,6 +207,7 @@ theorem bad_shl2_sub_i32_proof : bad_shl2_sub_i32_before ⊑ bad_shl2_sub_i32_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -236,6 +242,7 @@ theorem shl_bad_sub_i8_proof : shl_bad_sub_i8_before ⊑ shl_bad_sub_i8_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -270,6 +277,7 @@ theorem shl_bad_sub_i64_proof : shl_bad_sub_i64_before ⊑ shl_bad_sub_i64_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -304,6 +312,7 @@ theorem shl_const_op1_sub_const_op0_proof : shl_const_op1_sub_const_op0_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean b/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean index bd0ee15cb..d565c7304 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean @@ -39,6 +39,7 @@ theorem sextinreg_proof : sextinreg_before ⊑ sextinreg_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem sextinreg_alt_proof : sextinreg_alt_before ⊑ sextinreg_alt_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -109,6 +111,7 @@ theorem sextinreg2_proof : sextinreg2_before ⊑ sextinreg2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -143,6 +146,7 @@ theorem ashr_proof : ashr_before ⊑ ashr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean index 6f3d5672c..3ed260863 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean @@ -36,6 +36,7 @@ theorem test_srem_canonicalize_op0_proof : test_srem_canonicalize_op0_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean index b38e6fbbe..0cac36957 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean @@ -36,6 +36,7 @@ theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_t simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean index ec4a3e8af..33703c380 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean @@ -34,6 +34,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem t1_flags_proof : t1_flags_before ⊑ t1_flags_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -94,6 +96,7 @@ theorem t1_flags_nuw_only_proof : t1_flags_nuw_only_before ⊑ t1_flags_nuw_only simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -124,6 +127,7 @@ theorem t1_flags_sub_nsw_sub_proof : t1_flags_sub_nsw_sub_before ⊑ t1_flags_su simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -154,6 +158,7 @@ theorem t1_flags_nuw_first_proof : t1_flags_nuw_first_before ⊑ t1_flags_nuw_fi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -184,6 +189,7 @@ theorem t1_flags_nuw_second_proof : t1_flags_nuw_second_before ⊑ t1_flags_nuw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -214,6 +220,7 @@ theorem t1_flags_nuw_nsw_first_proof : t1_flags_nuw_nsw_first_before ⊑ t1_flag simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -244,6 +251,7 @@ theorem t1_flags_nuw_nsw_second_proof : t1_flags_nuw_nsw_second_before ⊑ t1_fl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -276,6 +284,7 @@ theorem t3_c0_proof : t3_c0_before ⊑ t3_c0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -308,6 +317,7 @@ theorem t4_c1_proof : t4_c1_before ⊑ t4_c1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -340,6 +350,7 @@ theorem t5_c2_proof : t5_c2_before ⊑ t5_c2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -372,6 +383,7 @@ theorem t9_c0_c2_proof : t9_c0_c2_before ⊑ t9_c0_c2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -404,6 +416,7 @@ theorem t10_c1_c2_proof : t10_c1_c2_before ⊑ t10_c1_c2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean index 9e119b50a..31c422b2c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean @@ -36,6 +36,7 @@ theorem sub_not_proof : sub_not_before ⊑ sub_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem dec_sub_proof : dec_sub_before ⊑ dec_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem sub_inc_proof : sub_inc_before ⊑ sub_inc_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem sub_dec_proof : sub_dec_before ⊑ sub_dec_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean index e5f331439..2b1502964 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean @@ -34,6 +34,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem t9_proof : t9_before ⊑ t9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -160,6 +164,7 @@ theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -192,6 +197,7 @@ theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -224,6 +230,7 @@ theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -256,6 +263,7 @@ theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -290,6 +298,7 @@ theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +335,7 @@ theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -358,6 +368,7 @@ theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -390,6 +401,7 @@ theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -422,6 +434,7 @@ theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -457,6 +470,7 @@ theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -489,6 +503,7 @@ theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -523,6 +538,7 @@ theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean index 98f5fc8f5..c81d767de 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean @@ -34,6 +34,7 @@ theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -94,6 +96,7 @@ theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_t simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean index 6f882ae33..4cea748b8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean @@ -38,6 +38,7 @@ theorem low_mask_nsw_nuw_proof : low_mask_nsw_nuw_before ⊑ low_mask_nsw_nuw_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem arbitrary_mask_sub_i8_proof : arbitrary_mask_sub_i8_before ⊑ arbitrary simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -106,6 +108,7 @@ theorem not_masked_sub_i8_proof : not_masked_sub_i8_before ⊑ not_masked_sub_i8 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -141,6 +144,7 @@ theorem xor_add_proof : xor_add_before ⊑ xor_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean index a1eadcd69..968837dc2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean @@ -36,6 +36,7 @@ theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_t simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean b/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean index a3dc628d3..64e91e4a7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean @@ -39,6 +39,7 @@ theorem scalar0_proof : scalar0_before ⊑ scalar0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem scalar1_proof : scalar1_before ⊑ scalar1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -107,6 +109,7 @@ theorem in_constant_varx_mone_proof : in_constant_varx_mone_before ⊑ in_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem in_constant_varx_14_proof : in_constant_varx_14_before ⊑ in_constant_v simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -173,6 +177,7 @@ theorem in_constant_mone_vary_proof : in_constant_mone_vary_before ⊑ in_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -206,6 +211,7 @@ theorem in_constant_14_vary_proof : in_constant_14_vary_before ⊑ in_constant_1 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -241,6 +247,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -276,6 +283,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -311,6 +319,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -344,6 +353,7 @@ theorem commutativity_constant_14_vary_proof : commutativity_constant_14_vary_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean index 2b665b083..b1dc1473e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean @@ -32,6 +32,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -60,6 +61,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -88,6 +90,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -116,6 +119,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -146,6 +150,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -177,6 +182,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -206,6 +212,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -242,6 +249,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -276,6 +284,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -310,6 +319,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -342,6 +352,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -370,6 +381,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -401,6 +413,7 @@ theorem test25_proof : test25_before ⊑ test25_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -433,6 +446,7 @@ theorem test28_proof : test28_before ⊑ test28_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -465,6 +479,7 @@ theorem test28_sub_proof : test28_sub_before ⊑ test28_sub_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -498,6 +513,7 @@ theorem or_or_xor_proof : or_or_xor_before ⊑ or_or_xor_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -531,6 +547,7 @@ theorem or_or_xor_commute1_proof : or_or_xor_commute1_before ⊑ or_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -564,6 +581,7 @@ theorem or_or_xor_commute2_proof : or_or_xor_commute2_before ⊑ or_or_xor_commu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -600,6 +618,7 @@ theorem not_is_canonical_proof : not_is_canonical_before ⊑ not_is_canonical_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -634,6 +653,7 @@ theorem not_shl_proof : not_shl_before ⊑ not_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -668,6 +688,7 @@ theorem not_lshr_proof : not_lshr_before ⊑ not_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -702,6 +723,7 @@ theorem ashr_not_proof : ashr_not_before ⊑ ashr_not_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -735,6 +757,7 @@ theorem tryFactorization_xor_ashr_lshr_proof : tryFactorization_xor_ashr_lshr_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -768,6 +791,7 @@ theorem tryFactorization_xor_lshr_ashr_proof : tryFactorization_xor_lshr_ashr_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -801,6 +825,7 @@ theorem tryFactorization_xor_lshr_lshr_proof : tryFactorization_xor_lshr_lshr_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -834,6 +859,7 @@ theorem tryFactorization_xor_ashr_ashr_proof : tryFactorization_xor_ashr_ashr_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -870,6 +896,7 @@ theorem PR96857_xor_with_noundef_proof : PR96857_xor_with_noundef_before ⊑ PR9 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -906,6 +933,7 @@ theorem PR96857_xor_without_noundef_proof : PR96857_xor_without_noundef_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -934,6 +962,7 @@ theorem or_disjoint_with_xor_proof : or_disjoint_with_xor_before ⊑ or_disjoint simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -962,6 +991,7 @@ theorem xor_with_or_disjoint_ab_proof : xor_with_or_disjoint_ab_before ⊑ xor_w simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -990,6 +1020,7 @@ theorem xor_with_or_disjoint_ba_proof : xor_with_or_disjoint_ba_before ⊑ xor_w simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean index e4bb0016d..5a1b2517d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean @@ -40,6 +40,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -116,6 +118,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -152,6 +155,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -185,6 +189,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -218,6 +223,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -248,6 +254,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -278,6 +285,7 @@ theorem test9b_proof : test9b_before ⊑ test9b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -308,6 +316,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -338,6 +347,7 @@ theorem test10b_proof : test10b_before ⊑ test10b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -374,6 +384,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -410,6 +421,7 @@ theorem test11b_proof : test11b_before ⊑ test11b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -446,6 +458,7 @@ theorem test11c_proof : test11c_before ⊑ test11c_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -482,6 +495,7 @@ theorem test11d_proof : test11d_before ⊑ test11d_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -520,6 +534,7 @@ theorem test11e_proof : test11e_before ⊑ test11e_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -558,6 +573,7 @@ theorem test11f_proof : test11f_before ⊑ test11f_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -592,6 +608,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -626,6 +643,7 @@ theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -660,6 +678,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -694,6 +713,7 @@ theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -727,6 +747,7 @@ theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -760,6 +781,7 @@ theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -793,6 +815,7 @@ theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -826,6 +849,7 @@ theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -859,6 +883,7 @@ theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -892,6 +917,7 @@ theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -925,6 +951,7 @@ theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -958,6 +985,7 @@ theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -996,6 +1024,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1034,6 +1063,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1070,6 +1100,7 @@ theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1106,6 +1137,7 @@ theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1142,6 +1174,7 @@ theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1178,6 +1211,7 @@ theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1214,6 +1248,7 @@ theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1250,6 +1285,7 @@ theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1286,6 +1322,7 @@ theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1322,6 +1359,7 @@ theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean index 797165234..239e01da7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean @@ -38,6 +38,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean new file mode 100644 index 000000000..945cdc04b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h02h16hSDivOverflow2_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 g2008h02h16hSDivOverflow2_statements + +def i_before := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = -3 : i8}> : () -> i8 + %1 = llvm.sdiv %arg0, %0 : i8 + %2 = llvm.sdiv %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def i_after := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = 9 : i8}> : () -> i8 + %1 = llvm.sdiv %arg0, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem i_proof : i_before ⊑ i_after := by + unfold i_before i_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN i + apply i_thm + ---END i + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2_proof.lean new file mode 100644 index 000000000..63d34a0c7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h02h16hSDivOverflow2_proof +theorem i_thm (x : BitVec 8) : (x.sdiv 253#8).sdiv 253#8 = x.sdiv 9#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean new file mode 100644 index 000000000..5ca97d86d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean @@ -0,0 +1,46 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h02h23hMulSub_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 g2008h02h23hMulSub_statements + +def test_before := [llvm| +{ +^0(%arg0 : i26): + %0 = "llvm.mlir.constant"() <{value = 2885 : i26}> : () -> i26 + %1 = "llvm.mlir.constant"() <{value = 2884 : i26}> : () -> i26 + %2 = llvm.mul %arg0, %0 : i26 + %3 = llvm.mul %arg0, %1 : i26 + %4 = llvm.sub %2, %3 : i26 + "llvm.return"(%4) : (i26) -> () +} +] +def test_after := [llvm| +{ +^0(%arg0 : i26): + "llvm.return"(%arg0) : (i26) -> () +} +] +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 + intros + try simp + ---BEGIN test + apply test_thm + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub_proof.lean new file mode 100644 index 000000000..f393c27aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h02h23hMulSub_proof +theorem test_thm (x : BitVec 26) : x * 2885#26 - x * 2884#26 = x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean new file mode 100644 index 000000000..af4c63843 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean @@ -0,0 +1,43 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h05h31hAddBool_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 g2008h05h31hAddBool_statements + +def test_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i1): + %0 = llvm.add %arg0, %arg1 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def test_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i1): + %0 = llvm.xor %arg0, %arg1 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +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 + intros + try simp + ---BEGIN test + apply test_thm + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool_proof.lean new file mode 100644 index 000000000..9fc2666a4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h05h31hAddBool_proof +theorem test_thm (x x_1 : BitVec 1) : x_1 + x = x_1 ^^^ x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean index aff558814..8e16d6a88 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean @@ -38,6 +38,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean index 450cdb5d8..29f53606b 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean @@ -38,6 +38,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean index cd66bfd9a..626236f4d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean @@ -36,6 +36,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean index be2ec33f0..c29a05a8e 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean @@ -35,6 +35,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean index ac40f13ee..714183adf 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed_proof.lean @@ -17,6 +17,6 @@ theorem foo_thm (x x_1 : BitVec 32) : twoPow 64 31 ≤ signExtend 64 x_1 * signExtend 64 x_1 then none else some (x_1 * x_1)).bind - fun a_1 => some (a - a_1)) ⊑ + fun y' => some (a - y')) ⊑ some (x * x_1) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd2.lean b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean new file mode 100644 index 000000000..15b3968bb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean @@ -0,0 +1,1134 @@ +import SSA.Projects.InstCombine.tests.proofs.gadd2_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 gadd2_statements + +def test2_before := [llvm| +{ +^0(%arg59 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %2 = llvm.and %arg59, %0 : i32 + %3 = llvm.and %arg59, %1 : i32 + %4 = llvm.add %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg59 : i32): + %0 = "llvm.mlir.constant"() <{value = 39 : i32}> : () -> i32 + %1 = llvm.and %arg59, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +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 + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def test3_before := [llvm| +{ +^0(%arg58 : i32): + %0 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 30 : i32}> : () -> i32 + %2 = llvm.and %arg58, %0 : i32 + %3 = llvm.lshr %arg58, %1 : i32 + %4 = llvm.add %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg58 : i32): + %0 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 30 : i32}> : () -> i32 + %2 = llvm.and %arg58, %0 : i32 + %3 = llvm.lshr %arg58, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (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 + intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + + +def test4_before := [llvm| +{ +^0(%arg57 : i32): + %0 = llvm.add %arg57, %arg57 overflow : i32 + "llvm.return"(%0) : (i32) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg57 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %arg57, %0 overflow : i32 + "llvm.return"(%1) : (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 + intros + try simp + ---BEGIN test4 + apply test4_thm + ---END test4 + + + +def test9_before := [llvm| +{ +^0(%arg52 : i16): + %0 = "llvm.mlir.constant"() <{value = 2 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %2 = llvm.mul %arg52, %0 : i16 + %3 = llvm.mul %arg52, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg52 : i16): + %0 = "llvm.mlir.constant"() <{value = -32767 : i16}> : () -> i16 + %1 = llvm.mul %arg52, %0 : i16 + "llvm.return"(%1) : (i16) -> () +} +] +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 + intros + try simp + ---BEGIN test9 + apply test9_thm + ---END test9 + + + +def test10_before := [llvm| +{ +^0(%arg50 : i32, %arg51 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %3 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %4 = llvm.ashr %arg50, %0 : i32 + %5 = llvm.or %4, %1 : i32 + %6 = llvm.xor %5, %2 : i32 + %7 = llvm.add %arg51, %3 : i32 + %8 = llvm.add %7, %6 : i32 + "llvm.return"(%8) : (i32) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg50 : i32, %arg51 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %2 = llvm.ashr %arg50, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.sub %arg51, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +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 + intros + try simp + ---BEGIN test10 + apply test10_thm + ---END test10 + + + +def test11_before := [llvm| +{ +^0(%arg48 : i32, %arg49 : i32): + %0 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %3 = llvm.or %arg48, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %arg49, %2 : i32 + %6 = llvm.add %5, %4 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test11_after := [llvm| +{ +^0(%arg48 : i32, %arg49 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %1 = llvm.and %arg48, %0 : i32 + %2 = llvm.sub %arg49, %1 : i32 + "llvm.return"(%2) : (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 + intros + try simp + ---BEGIN test11 + apply test11_thm + ---END test11 + + + +def test12_before := [llvm| +{ +^0(%arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %3 = llvm.add %arg47, %0 overflow : i32 + %4 = llvm.or %arg46, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.add %3, %5 overflow : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %1 = llvm.and %arg46, %0 : i32 + %2 = llvm.sub %arg47, %1 : i32 + "llvm.return"(%2) : (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 + intros + try simp + ---BEGIN test12 + apply test12_thm + ---END test12 + + + +def test13_before := [llvm| +{ +^0(%arg44 : i32, %arg45 : i32): + %0 = "llvm.mlir.constant"() <{value = -1431655767 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %3 = llvm.or %arg44, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %arg45, %2 : i32 + %6 = llvm.add %5, %4 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg44 : i32, %arg45 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %1 = llvm.and %arg44, %0 : i32 + %2 = llvm.sub %arg45, %1 : i32 + "llvm.return"(%2) : (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 + intros + try simp + ---BEGIN test13 + apply test13_thm + ---END test13 + + + +def test14_before := [llvm| +{ +^0(%arg42 : i32, %arg43 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655767 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %3 = llvm.add %arg43, %0 overflow : i32 + %4 = llvm.or %arg42, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.add %3, %5 overflow : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test14_after := [llvm| +{ +^0(%arg42 : i32, %arg43 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %1 = llvm.and %arg42, %0 : i32 + %2 = llvm.sub %arg43, %1 : i32 + "llvm.return"(%2) : (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 + intros + try simp + ---BEGIN test14 + apply test14_thm + ---END test14 + + + +def test15_before := [llvm| +{ +^0(%arg40 : i32, %arg41 : i32): + %0 = "llvm.mlir.constant"() <{value = -1431655767 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.and %arg40, %0 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.add %arg41, %1 : i32 + %5 = llvm.add %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test15_after := [llvm| +{ +^0(%arg40 : i32, %arg41 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %1 = llvm.or %arg40, %0 : i32 + %2 = llvm.sub %arg41, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +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 + intros + try simp + ---BEGIN test15 + apply test15_thm + ---END test15 + + + +def test16_before := [llvm| +{ +^0(%arg38 : i32, %arg39 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655767 : i32}> : () -> i32 + %2 = llvm.add %arg39, %0 overflow : i32 + %3 = llvm.and %arg38, %1 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %2, %4 overflow : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test16_after := [llvm| +{ +^0(%arg38 : i32, %arg39 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655766 : i32}> : () -> i32 + %1 = llvm.or %arg38, %0 : i32 + %2 = llvm.sub %arg39, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test16_proof : test16_before ⊑ test16_after := by + unfold test16_before test16_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN test16 + apply test16_thm + ---END test16 + + + +def test17_before := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32): + %0 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655765 : i32}> : () -> i32 + %2 = llvm.and %arg36, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + %4 = llvm.add %3, %arg37 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test17_after := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %1 = llvm.or %arg36, %0 : i32 + %2 = llvm.sub %arg37, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test17_proof : test17_before ⊑ test17_after := by + unfold test17_before test17_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN test17 + apply test17_thm + ---END test17 + + + +def test18_before := [llvm| +{ +^0(%arg34 : i32, %arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %2 = llvm.add %arg35, %0 overflow : i32 + %3 = llvm.and %arg34, %1 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %2, %4 overflow : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test18_after := [llvm| +{ +^0(%arg34 : i32, %arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %1 = llvm.or %arg34, %0 : i32 + %2 = llvm.sub %arg35, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test18_proof : test18_before ⊑ test18_after := by + unfold test18_before test18_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN test18 + apply test18_thm + ---END test18 + + + +def add_nsw_mul_nsw_before := [llvm| +{ +^0(%arg33 : i16): + %0 = llvm.add %arg33, %arg33 overflow : i16 + %1 = llvm.add %0, %arg33 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +def add_nsw_mul_nsw_after := [llvm| +{ +^0(%arg33 : i16): + %0 = "llvm.mlir.constant"() <{value = 3 : i16}> : () -> i16 + %1 = llvm.mul %arg33, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem add_nsw_mul_nsw_proof : add_nsw_mul_nsw_before ⊑ add_nsw_mul_nsw_after := by + unfold add_nsw_mul_nsw_before add_nsw_mul_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_nsw_mul_nsw + apply add_nsw_mul_nsw_thm + ---END add_nsw_mul_nsw + + + +def mul_add_to_mul_1_before := [llvm| +{ +^0(%arg32 : i16): + %0 = "llvm.mlir.constant"() <{value = 8 : i16}> : () -> i16 + %1 = llvm.mul %arg32, %0 overflow : i16 + %2 = llvm.add %arg32, %1 overflow : i16 + "llvm.return"(%2) : (i16) -> () +} +] +def mul_add_to_mul_1_after := [llvm| +{ +^0(%arg32 : i16): + %0 = "llvm.mlir.constant"() <{value = 9 : i16}> : () -> i16 + %1 = llvm.mul %arg32, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_1_proof : mul_add_to_mul_1_before ⊑ mul_add_to_mul_1_after := by + unfold mul_add_to_mul_1_before mul_add_to_mul_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_1 + apply mul_add_to_mul_1_thm + ---END mul_add_to_mul_1 + + + +def mul_add_to_mul_2_before := [llvm| +{ +^0(%arg31 : i16): + %0 = "llvm.mlir.constant"() <{value = 8 : i16}> : () -> i16 + %1 = llvm.mul %arg31, %0 overflow : i16 + %2 = llvm.add %1, %arg31 overflow : i16 + "llvm.return"(%2) : (i16) -> () +} +] +def mul_add_to_mul_2_after := [llvm| +{ +^0(%arg31 : i16): + %0 = "llvm.mlir.constant"() <{value = 9 : i16}> : () -> i16 + %1 = llvm.mul %arg31, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_2_proof : mul_add_to_mul_2_before ⊑ mul_add_to_mul_2_after := by + unfold mul_add_to_mul_2_before mul_add_to_mul_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_2 + apply mul_add_to_mul_2_thm + ---END mul_add_to_mul_2 + + + +def mul_add_to_mul_3_before := [llvm| +{ +^0(%arg30 : i16): + %0 = "llvm.mlir.constant"() <{value = 2 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 3 : i16}> : () -> i16 + %2 = llvm.mul %arg30, %0 : i16 + %3 = llvm.mul %arg30, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def mul_add_to_mul_3_after := [llvm| +{ +^0(%arg30 : i16): + %0 = "llvm.mlir.constant"() <{value = 5 : i16}> : () -> i16 + %1 = llvm.mul %arg30, %0 : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_3_proof : mul_add_to_mul_3_before ⊑ mul_add_to_mul_3_after := by + unfold mul_add_to_mul_3_before mul_add_to_mul_3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_3 + apply mul_add_to_mul_3_thm + ---END mul_add_to_mul_3 + + + +def mul_add_to_mul_4_before := [llvm| +{ +^0(%arg29 : i16): + %0 = "llvm.mlir.constant"() <{value = 2 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 7 : i16}> : () -> i16 + %2 = llvm.mul %arg29, %0 overflow : i16 + %3 = llvm.mul %arg29, %1 overflow : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def mul_add_to_mul_4_after := [llvm| +{ +^0(%arg29 : i16): + %0 = "llvm.mlir.constant"() <{value = 9 : i16}> : () -> i16 + %1 = llvm.mul %arg29, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_4_proof : mul_add_to_mul_4_before ⊑ mul_add_to_mul_4_after := by + unfold mul_add_to_mul_4_before mul_add_to_mul_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_4 + apply mul_add_to_mul_4_thm + ---END mul_add_to_mul_4 + + + +def mul_add_to_mul_5_before := [llvm| +{ +^0(%arg28 : i16): + %0 = "llvm.mlir.constant"() <{value = 3 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 7 : i16}> : () -> i16 + %2 = llvm.mul %arg28, %0 overflow : i16 + %3 = llvm.mul %arg28, %1 overflow : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def mul_add_to_mul_5_after := [llvm| +{ +^0(%arg28 : i16): + %0 = "llvm.mlir.constant"() <{value = 10 : i16}> : () -> i16 + %1 = llvm.mul %arg28, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_5_proof : mul_add_to_mul_5_before ⊑ mul_add_to_mul_5_after := by + unfold mul_add_to_mul_5_before mul_add_to_mul_5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_5 + apply mul_add_to_mul_5_thm + ---END mul_add_to_mul_5 + + + +def mul_add_to_mul_6_before := [llvm| +{ +^0(%arg26 : i32, %arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.mul %arg26, %arg27 overflow : i32 + %2 = llvm.mul %1, %0 overflow : i32 + %3 = llvm.add %1, %2 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def mul_add_to_mul_6_after := [llvm| +{ +^0(%arg26 : i32, %arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = llvm.mul %arg26, %arg27 overflow : i32 + %2 = llvm.mul %1, %0 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem mul_add_to_mul_6_proof : mul_add_to_mul_6_before ⊑ mul_add_to_mul_6_after := by + unfold mul_add_to_mul_6_before mul_add_to_mul_6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_6 + apply mul_add_to_mul_6_thm + ---END mul_add_to_mul_6 + + + +def mul_add_to_mul_7_before := [llvm| +{ +^0(%arg25 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = llvm.mul %arg25, %0 overflow : i16 + %2 = llvm.add %arg25, %1 overflow : i16 + "llvm.return"(%2) : (i16) -> () +} +] +def mul_add_to_mul_7_after := [llvm| +{ +^0(%arg25 : i16): + %0 = "llvm.mlir.constant"() <{value = 15 : i16}> : () -> i16 + %1 = llvm.shl %arg25, %0 : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_7_proof : mul_add_to_mul_7_before ⊑ mul_add_to_mul_7_after := by + unfold mul_add_to_mul_7_before mul_add_to_mul_7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_7 + apply mul_add_to_mul_7_thm + ---END mul_add_to_mul_7 + + + +def mul_add_to_mul_8_before := [llvm| +{ +^0(%arg24 : i16): + %0 = "llvm.mlir.constant"() <{value = 16383 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 16384 : i16}> : () -> i16 + %2 = llvm.mul %arg24, %0 overflow : i16 + %3 = llvm.mul %arg24, %1 overflow : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def mul_add_to_mul_8_after := [llvm| +{ +^0(%arg24 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = llvm.mul %arg24, %0 overflow : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_8_proof : mul_add_to_mul_8_before ⊑ mul_add_to_mul_8_after := by + unfold mul_add_to_mul_8_before mul_add_to_mul_8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_8 + apply mul_add_to_mul_8_thm + ---END mul_add_to_mul_8 + + + +def mul_add_to_mul_9_before := [llvm| +{ +^0(%arg23 : i16): + %0 = "llvm.mlir.constant"() <{value = 16384 : i16}> : () -> i16 + %1 = llvm.mul %arg23, %0 overflow : i16 + %2 = llvm.mul %arg23, %0 overflow : i16 + %3 = llvm.add %1, %2 overflow : i16 + "llvm.return"(%3) : (i16) -> () +} +] +def mul_add_to_mul_9_after := [llvm| +{ +^0(%arg23 : i16): + %0 = "llvm.mlir.constant"() <{value = 15 : i16}> : () -> i16 + %1 = llvm.shl %arg23, %0 : i16 + "llvm.return"(%1) : (i16) -> () +} +] +theorem mul_add_to_mul_9_proof : mul_add_to_mul_9_before ⊑ mul_add_to_mul_9_after := by + unfold mul_add_to_mul_9_before mul_add_to_mul_9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_add_to_mul_9 + apply mul_add_to_mul_9_thm + ---END mul_add_to_mul_9 + + + +def add_or_and_before := [llvm| +{ +^0(%arg19 : i32, %arg20 : i32): + %0 = llvm.or %arg19, %arg20 : i32 + %1 = llvm.and %arg19, %arg20 : i32 + %2 = llvm.add %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_or_and_after := [llvm| +{ +^0(%arg19 : i32, %arg20 : i32): + %0 = llvm.add %arg19, %arg20 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_or_and_proof : add_or_and_before ⊑ add_or_and_after := by + unfold add_or_and_before add_or_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_and + apply add_or_and_thm + ---END add_or_and + + + +def add_or_and_commutative_before := [llvm| +{ +^0(%arg17 : i32, %arg18 : i32): + %0 = llvm.or %arg17, %arg18 : i32 + %1 = llvm.and %arg18, %arg17 : i32 + %2 = llvm.add %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_or_and_commutative_after := [llvm| +{ +^0(%arg17 : i32, %arg18 : i32): + %0 = llvm.add %arg17, %arg18 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_or_and_commutative_proof : add_or_and_commutative_before ⊑ add_or_and_commutative_after := by + unfold add_or_and_commutative_before add_or_and_commutative_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_and_commutative + apply add_or_and_commutative_thm + ---END add_or_and_commutative + + + +def add_and_or_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.or %arg15, %arg16 : i32 + %1 = llvm.and %arg15, %arg16 : i32 + %2 = llvm.add %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_and_or_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.add %arg15, %arg16 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_and_or_proof : add_and_or_before ⊑ add_and_or_after := by + unfold add_and_or_before add_and_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_and_or + all_goals (try extract_goal ; sorry) + ---END add_and_or + + + +def add_and_or_commutative_before := [llvm| +{ +^0(%arg13 : i32, %arg14 : i32): + %0 = llvm.or %arg13, %arg14 : i32 + %1 = llvm.and %arg14, %arg13 : i32 + %2 = llvm.add %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_and_or_commutative_after := [llvm| +{ +^0(%arg13 : i32, %arg14 : i32): + %0 = llvm.add %arg13, %arg14 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_and_or_commutative_proof : add_and_or_commutative_before ⊑ add_and_or_commutative_after := by + unfold add_and_or_commutative_before add_and_or_commutative_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_and_or_commutative + apply add_and_or_commutative_thm + ---END add_and_or_commutative + + + +def add_nsw_or_and_before := [llvm| +{ +^0(%arg11 : i32, %arg12 : i32): + %0 = llvm.or %arg11, %arg12 : i32 + %1 = llvm.and %arg11, %arg12 : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_nsw_or_and_after := [llvm| +{ +^0(%arg11 : i32, %arg12 : i32): + %0 = llvm.add %arg11, %arg12 overflow : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_nsw_or_and_proof : add_nsw_or_and_before ⊑ add_nsw_or_and_after := by + unfold add_nsw_or_and_before add_nsw_or_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_nsw_or_and + apply add_nsw_or_and_thm + ---END add_nsw_or_and + + + +def add_nuw_or_and_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + %0 = llvm.or %arg9, %arg10 : i32 + %1 = llvm.and %arg9, %arg10 : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_nuw_or_and_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + %0 = llvm.add %arg9, %arg10 overflow : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_nuw_or_and_proof : add_nuw_or_and_before ⊑ add_nuw_or_and_after := by + unfold add_nuw_or_and_before add_nuw_or_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_nuw_or_and + apply add_nuw_or_and_thm + ---END add_nuw_or_and + + + +def add_nuw_nsw_or_and_before := [llvm| +{ +^0(%arg7 : i32, %arg8 : i32): + %0 = llvm.or %arg7, %arg8 : i32 + %1 = llvm.and %arg7, %arg8 : i32 + %2 = llvm.add %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def add_nuw_nsw_or_and_after := [llvm| +{ +^0(%arg7 : i32, %arg8 : i32): + %0 = llvm.add %arg7, %arg8 overflow : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem add_nuw_nsw_or_and_proof : add_nuw_nsw_or_and_before ⊑ add_nuw_nsw_or_and_after := by + unfold add_nuw_nsw_or_and_before add_nuw_nsw_or_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_nuw_nsw_or_and + apply add_nuw_nsw_or_and_thm + ---END add_nuw_nsw_or_and + + + +def add_of_mul_before := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8, %arg6 : i8): + %0 = llvm.mul %arg4, %arg5 overflow : i8 + %1 = llvm.mul %arg4, %arg6 overflow : i8 + %2 = llvm.add %0, %1 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def add_of_mul_after := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8, %arg6 : i8): + %0 = llvm.add %arg5, %arg6 : i8 + %1 = llvm.mul %arg4, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by + unfold add_of_mul_before add_of_mul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_of_mul + apply add_of_mul_thm + ---END add_of_mul + + + +def add_undemanded_low_bits_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 15 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1616 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %3 = llvm.or %arg1, %0 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.lshr %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def add_undemanded_low_bits_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1616 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.add %arg1, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem add_undemanded_low_bits_proof : add_undemanded_low_bits_before ⊑ add_undemanded_low_bits_after := by + unfold add_undemanded_low_bits_before add_undemanded_low_bits_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_undemanded_low_bits + apply add_undemanded_low_bits_thm + ---END add_undemanded_low_bits + + + +def sub_undemanded_low_bits_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 15 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1616 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %3 = llvm.or %arg0, %0 : i32 + %4 = llvm.sub %3, %1 : i32 + %5 = llvm.lshr %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def sub_undemanded_low_bits_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = -1616 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.add %arg0, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem sub_undemanded_low_bits_proof : sub_undemanded_low_bits_before ⊑ sub_undemanded_low_bits_after := by + unfold sub_undemanded_low_bits_before sub_undemanded_low_bits_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sub_undemanded_low_bits + apply sub_undemanded_low_bits_thm + ---END sub_undemanded_low_bits + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean new file mode 100644 index 000000000..f95b5a24b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd2_proof.lean @@ -0,0 +1,213 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gadd2_proof +theorem test2_thm (x : BitVec 32) : (x &&& 7#32) + (x &&& 32#32) = x &&& 39#32 := sorry + +theorem test3_thm (x : BitVec 32) : (x &&& 128#32) + x >>> 30 = x &&& 128#32 ||| x >>> 30 := sorry + +theorem test4_thm (x : BitVec 32) : + (if x + x < x then none else some (x + x)) ⊑ if x <<< 1 >>> 1 = x then none else some (x <<< 1) := sorry + +theorem test9_thm (x : BitVec 16) : x * 2#16 + x * 32767#16 = x * 32769#16 := sorry + +theorem test10_thm (x x_1 : BitVec 32) : + x_1 + 1#32 + ((x.sshiftRight 3 ||| 2863311530#32) ^^^ 1431655765#32) = + x_1 - (x.sshiftRight 3 &&& 1431655765#32) := sorry + +theorem test11_thm (x x_1 : BitVec 32) : + x_1 + 1#32 + ((x ||| 2863311530#32) ^^^ 1431655765#32) = x_1 - (x &&& 1431655765#32) := sorry + +theorem test12_thm (x x_1 : BitVec 32) : + ((if x_1.msb = false ∧ ¬(x_1 + 1#32).msb = x_1.msb then none else some (x_1 + 1#32)).bind fun a => + if + a.msb = ((x.msb || (2863311530#32).msb) ^^ (1431655765#32).msb) ∧ + ¬(a + ((x ||| 2863311530#32) ^^^ 1431655765#32)).msb = a.msb then + none + else some (a + ((x ||| 2863311530#32) ^^^ 1431655765#32))) ⊑ + some (x_1 - (x &&& 1431655765#32)) := sorry + +theorem test13_thm (x x_1 : BitVec 32) : + x_1 + 1#32 + ((x ||| 2863311529#32) ^^^ 1431655766#32) = x_1 - (x &&& 1431655766#32) := sorry + +theorem test14_thm (x x_1 : BitVec 32) : + ((if x_1.msb = false ∧ ¬(x_1 + 1#32).msb = x_1.msb then none else some (x_1 + 1#32)).bind fun a => + if + a.msb = ((x.msb || (2863311529#32).msb) ^^ (1431655766#32).msb) ∧ + ¬(a + ((x ||| 2863311529#32) ^^^ 1431655766#32)).msb = a.msb then + none + else some (a + ((x ||| 2863311529#32) ^^^ 1431655766#32))) ⊑ + some (x_1 - (x &&& 1431655766#32)) := sorry + +theorem test15_thm (x x_1 : BitVec 32) : + x_1 + 1#32 + (x &&& 2863311529#32 ^^^ 2863311529#32) = x_1 - (x ||| 1431655766#32) := sorry + +theorem test16_thm (x x_1 : BitVec 32) : + ((if x_1.msb = false ∧ ¬(x_1 + 1#32).msb = x_1.msb then none else some (x_1 + 1#32)).bind fun a => + if + a.msb = (x.msb && (2863311529#32).msb ^^ (2863311529#32).msb) ∧ + ¬(a + (x &&& 2863311529#32 ^^^ 2863311529#32)).msb = a.msb then + none + else some (a + (x &&& 2863311529#32 ^^^ 2863311529#32))) ⊑ + some (x_1 - (x ||| 1431655766#32)) := sorry + +theorem test17_thm (x x_1 : BitVec 32) : + (if + (x_1.msb && (2863311530#32).msb ^^ (2863311531#32).msb) = x.msb ∧ + ¬((x_1 &&& 2863311530#32 ^^^ 2863311531#32) + x).msb = + (x_1.msb && (2863311530#32).msb ^^ (2863311531#32).msb) then + none + else some ((x_1 &&& 2863311530#32 ^^^ 2863311531#32) + x)) ⊑ + some (x - (x_1 ||| 1431655765#32)) := sorry + +theorem test18_thm (x x_1 : BitVec 32) : + ((if x_1.msb = false ∧ ¬(x_1 + 1#32).msb = x_1.msb then none else some (x_1 + 1#32)).bind fun a => + if + a.msb = (x.msb && (2863311530#32).msb ^^ (2863311530#32).msb) ∧ + ¬(a + (x &&& 2863311530#32 ^^^ 2863311530#32)).msb = a.msb then + none + else some (a + (x &&& 2863311530#32 ^^^ 2863311530#32))) ⊑ + some (x_1 - (x ||| 1431655765#32)) := sorry + +theorem add_nsw_mul_nsw_thm (x : BitVec 16) : + ((if (x + x).msb = x.msb then some (x + x) else none).bind fun a => + if a.msb = x.msb ∧ ¬(a + x).msb = a.msb then none else some (a + x)) ⊑ + if signExtend 32 x * 3#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 3#32 then none + else some (x * 3#16) := sorry + +theorem mul_add_to_mul_1_thm (x : BitVec 16) : + ((if signExtend 32 x * 8#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 8#32 then none + else some (x * 8#16)).bind + fun y' => if x.msb = y'.msb ∧ ¬(x + y').msb = x.msb then none else some (x + y')) ⊑ + if signExtend 32 x * 9#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 9#32 then none + else some (x * 9#16) := sorry + +theorem mul_add_to_mul_2_thm (x : BitVec 16) : + ((if signExtend 32 x * 8#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 8#32 then none + else some (x * 8#16)).bind + fun a => if a.msb = x.msb ∧ ¬(a + x).msb = a.msb then none else some (a + x)) ⊑ + if signExtend 32 x * 9#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 9#32 then none + else some (x * 9#16) := sorry + +theorem mul_add_to_mul_3_thm (x : BitVec 16) : + (if (x * 2#16).msb = (x * 3#16).msb ∧ ¬(x * 2#16 + x * 3#16).msb = (x * 2#16).msb then none + else some (x * 2#16 + x * 3#16)) ⊑ + some (x * 5#16) := sorry + +theorem mul_add_to_mul_4_thm (x : BitVec 16) : + ((if signExtend 32 x * 2#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 2#32 then none + else some (x * 2#16)).bind + fun a => + (if signExtend 32 x * 7#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 7#32 then none + else some (x * 7#16)).bind + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ + if signExtend 32 x * 9#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 9#32 then none + else some (x * 9#16) := sorry + +theorem mul_add_to_mul_5_thm (x : BitVec 16) : + ((if signExtend 32 x * 3#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 3#32 then none + else some (x * 3#16)).bind + fun a => + (if signExtend 32 x * 7#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 7#32 then none + else some (x * 7#16)).bind + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ + if signExtend 32 x * 10#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 10#32 then none + else some (x * 10#16) := sorry + +theorem mul_add_to_mul_6_thm (x x_1 : BitVec 32) : + ((if + signExtend 64 x_1 * signExtend 64 x < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 x_1 * signExtend 64 x then + none + else some (x_1 * x)).bind + fun a => + (if + signExtend 64 x_1 * signExtend 64 x < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 x_1 * signExtend 64 x then + none + else some (x_1 * x)).bind + fun x => + (if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else some (x * 5#32)).bind + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ + (if + signExtend 64 x_1 * signExtend 64 x < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 x_1 * signExtend 64 x then + none + else some (x_1 * x)).bind + fun x' => + if signExtend 64 x' * 6#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x' * 6#64 then none + else some (x' * 6#32) := sorry + +theorem mul_add_to_mul_7_thm (x : BitVec 16) : + ((if signExtend 32 x * 32767#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 32767#32 then none + else some (x * 32767#16)).bind + fun y' => if x.msb = y'.msb ∧ ¬(x + y').msb = x.msb then none else some (x + y')) ⊑ + some (x <<< 15) := sorry + +theorem mul_add_to_mul_8_thm (x : BitVec 16) : + ((if signExtend 32 x * 16383#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 16383#32 then none + else some (x * 16383#16)).bind + fun a => + (if signExtend 32 x * 16384#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 16384#32 then + none + else some (x * 16384#16)).bind + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ + if signExtend 32 x * 32767#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 32767#32 then none + else some (x * 32767#16) := sorry + +theorem mul_add_to_mul_9_thm (x : BitVec 16) : + ((if signExtend 32 x * 16384#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 16384#32 then none + else some (x * 16384#16)).bind + fun a => + (if signExtend 32 x * 16384#32 < signExtend 32 (twoPow 16 15) ∨ twoPow 32 15 ≤ signExtend 32 x * 16384#32 then + none + else some (x * 16384#16)).bind + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ + some (x <<< 15) := sorry + +theorem add_or_and_thm (x x_1 : BitVec 32) : (x_1 ||| x) + (x_1 &&& x) = x_1 + x := sorry + +theorem add_or_and_commutative_thm (x x_1 : BitVec 32) : (x_1 ||| x) + (x &&& x_1) = x_1 + x := sorry + +theorem add_and_or_commutative_thm (x x_1 : BitVec 32) : (x_1 &&& x) + (x ||| x_1) = x + x_1 := sorry + +theorem add_nsw_or_and_thm (x x_1 : BitVec 32) : + (if (x_1.msb || x.msb) = (x_1.msb && x.msb) ∧ ¬((x_1 ||| x) + (x_1 &&& x)).msb = (x_1.msb || x.msb) then none + else some ((x_1 ||| x) + (x_1 &&& x))) ⊑ + if x_1.msb = x.msb ∧ ¬(x_1 + x).msb = x_1.msb then none else some (x_1 + x) := sorry + +theorem add_nuw_or_and_thm (x x_1 : BitVec 32) : + (if (x_1 ||| x) + (x_1 &&& x) < x_1 ||| x ∨ (x_1 ||| x) + (x_1 &&& x) < x_1 &&& x then none + else some ((x_1 ||| x) + (x_1 &&& x))) ⊑ + if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x) := sorry + +theorem add_nuw_nsw_or_and_thm (x x_1 : BitVec 32) : + (if (x_1.msb || x.msb) = (x_1.msb && x.msb) ∧ ¬((x_1 ||| x) + (x_1 &&& x)).msb = (x_1.msb || x.msb) then none + else + if (x_1 ||| x) + (x_1 &&& x) < x_1 ||| x ∨ (x_1 ||| x) + (x_1 &&& x) < x_1 &&& x then none + else some ((x_1 ||| x) + (x_1 &&& x))) ⊑ + if x_1.msb = x.msb ∧ ¬(x_1 + x).msb = x_1.msb then none + else if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x) := sorry + +theorem add_of_mul_thm (x x_1 x_2 : BitVec 8) : + ((if + signExtend 16 x_2 * signExtend 16 x_1 < signExtend 16 (twoPow 8 7) ∨ + twoPow 16 7 ≤ signExtend 16 x_2 * signExtend 16 x_1 then + none + else some (x_2 * x_1)).bind + fun a => + (if + signExtend 16 x_2 * signExtend 16 x < signExtend 16 (twoPow 8 7) ∨ + twoPow 16 7 ≤ signExtend 16 x_2 * signExtend 16 x then + none + else some (x_2 * x)).bind + 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_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 new file mode 100644 index 000000000..9b3854de2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd4.lean @@ -0,0 +1,172 @@ +import SSA.Projects.InstCombine.tests.proofs.gadd4_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 gadd4_statements + +def match_andAsRem_lshrAsDiv_shlAsMul_before := [llvm| +{ +^0(%arg16 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 6 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 9 : i64}> : () -> i64 + %3 = llvm.and %arg16, %0 : i64 + %4 = llvm.lshr %arg16, %1 : i64 + %5 = llvm.urem %4, %2 : i64 + %6 = llvm.shl %5, %1 : i64 + %7 = llvm.add %3, %6 : i64 + "llvm.return"(%7) : (i64) -> () +} +] +def match_andAsRem_lshrAsDiv_shlAsMul_after := [llvm| +{ +^0(%arg16 : i64): + %0 = "llvm.mlir.constant"() <{value = 576 : i64}> : () -> i64 + %1 = llvm.urem %arg16, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem match_andAsRem_lshrAsDiv_shlAsMul_proof : match_andAsRem_lshrAsDiv_shlAsMul_before ⊑ match_andAsRem_lshrAsDiv_shlAsMul_after := by + unfold match_andAsRem_lshrAsDiv_shlAsMul_before match_andAsRem_lshrAsDiv_shlAsMul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN match_andAsRem_lshrAsDiv_shlAsMul + apply match_andAsRem_lshrAsDiv_shlAsMul_thm + ---END match_andAsRem_lshrAsDiv_shlAsMul + + + +def match_signed_before := [llvm| +{ +^0(%arg15 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 19136 : i64}> : () -> i64 + %3 = "llvm.mlir.constant"() <{value = 9 : i64}> : () -> i64 + %4 = llvm.srem %arg15, %0 : i64 + %5 = llvm.sdiv %arg15, %0 : i64 + %6 = llvm.srem %5, %1 : i64 + %7 = llvm.sdiv %arg15, %2 : i64 + %8 = llvm.srem %7, %3 : i64 + %9 = llvm.mul %6, %0 : i64 + %10 = llvm.add %4, %9 : i64 + %11 = llvm.mul %8, %2 : i64 + %12 = llvm.add %10, %11 : i64 + "llvm.return"(%12) : (i64) -> () +} +] +def match_signed_after := [llvm| +{ +^0(%arg15 : i64): + %0 = "llvm.mlir.constant"() <{value = 172224 : i64}> : () -> i64 + %1 = llvm.srem %arg15, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem match_signed_proof : match_signed_before ⊑ match_signed_after := by + unfold match_signed_before match_signed_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN match_signed + apply match_signed_thm + ---END match_signed + + + +def not_match_inconsistent_signs_before := [llvm| +{ +^0(%arg13 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 64 : i64}> : () -> i64 + %2 = llvm.urem %arg13, %0 : i64 + %3 = llvm.sdiv %arg13, %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 not_match_inconsistent_signs_after := [llvm| +{ +^0(%arg13 : i64): + %0 = "llvm.mlir.constant"() <{value = 299 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %2 = llvm.urem %arg13, %0 : i64 + %3 = llvm.sdiv %arg13, %0 : i64 + %4 = llvm.and %3, %1 : i64 + %5 = llvm.mul %4, %0 overflow : i64 + %6 = llvm.add %2, %5 overflow : i64 + "llvm.return"(%6) : (i64) -> () +} +] +theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before ⊑ not_match_inconsistent_signs_after := by + unfold not_match_inconsistent_signs_before not_match_inconsistent_signs_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN not_match_inconsistent_signs + apply not_match_inconsistent_signs_thm + ---END not_match_inconsistent_signs + + + +def fold_add_sdiv_srem_before := [llvm| +{ +^0(%arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.sdiv %arg9, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + %4 = llvm.srem %arg9, %0 : i32 + %5 = llvm.add %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def fold_add_sdiv_srem_after := [llvm| +{ +^0(%arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %2 = llvm.sdiv %arg9, %0 : i32 + %3 = llvm.mul %2, %1 overflow : i32 + %4 = llvm.add %3, %arg9 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_srem_after := by + unfold fold_add_sdiv_srem_before fold_add_sdiv_srem_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN fold_add_sdiv_srem + apply fold_add_sdiv_srem_thm + ---END fold_add_sdiv_srem + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean new file mode 100644 index 000000000..d650cf664 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd4_proof.lean @@ -0,0 +1,35 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gadd4_proof +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) : + x - x.sdiv 299#64 * 299#64 + (x.sdiv 299#64 - (x.sdiv 299#64).sdiv 64#64 * 64#64) * 299#64 + + (x.sdiv 19136#64 - (x.sdiv 19136#64).sdiv 9#64 * 9#64) * 19136#64 = + x - x.sdiv 172224#64 * 172224#64 := sorry + +theorem not_match_inconsistent_signs_thm (x : BitVec 64) : + some (x % 299#64 + x.sdiv 299#64 % 64#64 * 299#64) ⊑ + (if + signExtend 128 (x.sdiv 299#64 &&& 63#64) * 299#128 < signExtend 128 (twoPow 64 63) ∨ + twoPow 128 63 ≤ signExtend 128 (x.sdiv 299#64 &&& 63#64) * 299#128 then + none + else + if twoPow 128 63 <<< 1 ≤ (setWidth 128 (x.sdiv 299#64) &&& 63#128) * 299#128 then none + else some ((x.sdiv 299#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_sdiv_srem_thm (x : BitVec 32) : + some (x.sdiv 10#32 <<< 4 + (x - x.sdiv 10#32 * 10#32)) ⊑ + (if + signExtend 64 (x.sdiv 10#32) * 6#64 < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 (x.sdiv 10#32) * 6#64 then + none + else some (x.sdiv 10#32 * 6#32)).bind + fun a => some (a + x) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean new file mode 100644 index 000000000..805d13d32 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean @@ -0,0 +1,290 @@ +import SSA.Projects.InstCombine.tests.proofs.gadd_or_sub_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 gadd_or_sub_statements + +def add_or_sub_comb_i32_commuted1_nuw_before := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg16 : i32 + %2 = llvm.or %1, %arg16 : i32 + %3 = llvm.add %2, %arg16 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_or_sub_comb_i32_commuted1_nuw_after := [llvm| +{ +^0(%arg16 : i32): + "llvm.return"(%arg16) : (i32) -> () +} +] +theorem add_or_sub_comb_i32_commuted1_nuw_proof : add_or_sub_comb_i32_commuted1_nuw_before ⊑ add_or_sub_comb_i32_commuted1_nuw_after := by + unfold add_or_sub_comb_i32_commuted1_nuw_before add_or_sub_comb_i32_commuted1_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i32_commuted1_nuw + apply add_or_sub_comb_i32_commuted1_nuw_thm + ---END add_or_sub_comb_i32_commuted1_nuw + + + +def add_or_sub_comb_i8_commuted2_nsw_before := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.mul %arg15, %arg15 : i8 + %2 = llvm.sub %0, %1 : i8 + %3 = llvm.or %2, %1 : i8 + %4 = llvm.add %1, %3 overflow : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def add_or_sub_comb_i8_commuted2_nsw_after := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.mul %arg15, %arg15 : i8 + %2 = llvm.add %1, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_or_sub_comb_i8_commuted2_nsw_proof : add_or_sub_comb_i8_commuted2_nsw_before ⊑ add_or_sub_comb_i8_commuted2_nsw_after := by + unfold add_or_sub_comb_i8_commuted2_nsw_before add_or_sub_comb_i8_commuted2_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i8_commuted2_nsw + apply add_or_sub_comb_i8_commuted2_nsw_thm + ---END add_or_sub_comb_i8_commuted2_nsw + + + +def add_or_sub_comb_i128_commuted3_nuw_nsw_before := [llvm| +{ +^0(%arg14 : i128): + %0 = "llvm.mlir.constant"() <{value = 0 : i128}> : () -> i128 + %1 = llvm.mul %arg14, %arg14 : i128 + %2 = llvm.sub %0, %1 : i128 + %3 = llvm.or %1, %2 : i128 + %4 = llvm.add %3, %1 overflow : i128 + "llvm.return"(%4) : (i128) -> () +} +] +def add_or_sub_comb_i128_commuted3_nuw_nsw_after := [llvm| +{ +^0(%arg14 : i128): + %0 = llvm.mul %arg14, %arg14 : i128 + "llvm.return"(%0) : (i128) -> () +} +] +theorem add_or_sub_comb_i128_commuted3_nuw_nsw_proof : add_or_sub_comb_i128_commuted3_nuw_nsw_before ⊑ add_or_sub_comb_i128_commuted3_nuw_nsw_after := by + unfold add_or_sub_comb_i128_commuted3_nuw_nsw_before add_or_sub_comb_i128_commuted3_nuw_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i128_commuted3_nuw_nsw + apply add_or_sub_comb_i128_commuted3_nuw_nsw_thm + ---END add_or_sub_comb_i128_commuted3_nuw_nsw + + + +def add_or_sub_comb_i64_commuted4_before := [llvm| +{ +^0(%arg13 : i64): + %0 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %1 = llvm.mul %arg13, %arg13 : i64 + %2 = llvm.sub %0, %1 : i64 + %3 = llvm.or %1, %2 : i64 + %4 = llvm.add %1, %3 : i64 + "llvm.return"(%4) : (i64) -> () +} +] +def add_or_sub_comb_i64_commuted4_after := [llvm| +{ +^0(%arg13 : i64): + %0 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 + %1 = llvm.mul %arg13, %arg13 : i64 + %2 = llvm.add %1, %0 : i64 + %3 = llvm.and %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem add_or_sub_comb_i64_commuted4_proof : add_or_sub_comb_i64_commuted4_before ⊑ add_or_sub_comb_i64_commuted4_after := by + unfold add_or_sub_comb_i64_commuted4_before add_or_sub_comb_i64_commuted4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i64_commuted4 + apply add_or_sub_comb_i64_commuted4_thm + ---END add_or_sub_comb_i64_commuted4 + + + +def add_or_sub_comb_i8_negative_y_sub_before := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg9 : i8 + %2 = llvm.or %1, %arg8 : i8 + %3 = llvm.add %2, %arg8 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_or_sub_comb_i8_negative_y_sub_after := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg9 : i8 + %2 = llvm.or %arg8, %1 : i8 + %3 = llvm.add %2, %arg8 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_or_sub_comb_i8_negative_y_sub_proof : add_or_sub_comb_i8_negative_y_sub_before ⊑ add_or_sub_comb_i8_negative_y_sub_after := by + unfold add_or_sub_comb_i8_negative_y_sub_before add_or_sub_comb_i8_negative_y_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i8_negative_y_sub + apply add_or_sub_comb_i8_negative_y_sub_thm + ---END add_or_sub_comb_i8_negative_y_sub + + + +def add_or_sub_comb_i8_negative_y_or_before := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg6 : i8 + %2 = llvm.or %1, %arg7 : i8 + %3 = llvm.add %2, %arg6 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_or_sub_comb_i8_negative_y_or_after := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg6 : i8 + %2 = llvm.or %arg7, %1 : i8 + %3 = llvm.add %2, %arg6 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_or_sub_comb_i8_negative_y_or_proof : add_or_sub_comb_i8_negative_y_or_before ⊑ add_or_sub_comb_i8_negative_y_or_after := by + unfold add_or_sub_comb_i8_negative_y_or_before add_or_sub_comb_i8_negative_y_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i8_negative_y_or + apply add_or_sub_comb_i8_negative_y_or_thm + ---END add_or_sub_comb_i8_negative_y_or + + + +def add_or_sub_comb_i8_negative_y_add_before := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg4 : i8 + %2 = llvm.or %1, %arg4 : i8 + %3 = llvm.add %2, %arg5 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_or_sub_comb_i8_negative_y_add_after := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg4 : i8 + %2 = llvm.or %arg4, %1 : i8 + %3 = llvm.add %2, %arg5 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_or_sub_comb_i8_negative_y_add_proof : add_or_sub_comb_i8_negative_y_add_before ⊑ add_or_sub_comb_i8_negative_y_add_after := by + unfold add_or_sub_comb_i8_negative_y_add_before add_or_sub_comb_i8_negative_y_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i8_negative_y_add + apply add_or_sub_comb_i8_negative_y_add_thm + ---END add_or_sub_comb_i8_negative_y_add + + + +def add_or_sub_comb_i8_negative_xor_instead_or_before := [llvm| +{ +^0(%arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg3 : i8 + %2 = llvm.xor %1, %arg3 : i8 + %3 = llvm.add %2, %arg3 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_or_sub_comb_i8_negative_xor_instead_or_after := [llvm| +{ +^0(%arg3 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg3 : i8 + %2 = llvm.xor %arg3, %1 : i8 + %3 = llvm.add %2, %arg3 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem add_or_sub_comb_i8_negative_xor_instead_or_proof : add_or_sub_comb_i8_negative_xor_instead_or_before ⊑ add_or_sub_comb_i8_negative_xor_instead_or_after := by + unfold add_or_sub_comb_i8_negative_xor_instead_or_before add_or_sub_comb_i8_negative_xor_instead_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_or_sub_comb_i8_negative_xor_instead_or + apply add_or_sub_comb_i8_negative_xor_instead_or_thm + ---END add_or_sub_comb_i8_negative_xor_instead_or + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub_proof.lean new file mode 100644 index 000000000..e2ec4d343 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub_proof.lean @@ -0,0 +1,35 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gadd_or_sub_proof +theorem add_or_sub_comb_i32_commuted1_nuw_thm (x : BitVec 32) : + (if (-x ||| x) + x < -x ||| x ∨ (-x ||| x) + x < x then none else some ((-x ||| x) + x)) ⊑ some x := sorry + +theorem add_or_sub_comb_i8_commuted2_nsw_thm (x : BitVec 8) : + (if ((-(x * x)).msb = true → (x * x).msb = true) ∧ ¬(x * x + (-(x * x) ||| x * x)).msb = (x * x).msb then none + else some (x * x + (-(x * x) ||| x * x))) ⊑ + (if (x * x).msb = (255#8).msb ∧ ¬(x * x + 255#8).msb = (x * x).msb then none else some (x * x + 255#8)).bind + fun a => some (a &&& x * x) := sorry + +theorem add_or_sub_comb_i128_commuted3_nuw_nsw_thm (x : BitVec 128) : + (if + ((-(x * x)).msb = true → (x * x).msb = true) ∧ + ¬((x * x ||| -(x * x)) + x * x).msb = ((x * x).msb || (-(x * x)).msb) then + none + else + if (x * x ||| -(x * x)) + x * x < x * x ||| -(x * x) ∨ (x * x ||| -(x * x)) + x * x < x * x then none + else some ((x * x ||| -(x * x)) + x * x)) ⊑ + some (x * x) := sorry + +theorem add_or_sub_comb_i64_commuted4_thm (x : BitVec 64) : x * x + (x * x ||| -(x * x)) = x * x + 18446744073709551615#64 &&& x * x := sorry + +theorem add_or_sub_comb_i8_negative_y_sub_thm (x x_1 : BitVec 8) : -x_1 ||| x = x ||| -x_1 := sorry + +theorem add_or_sub_comb_i8_negative_y_or_thm (x x_1 : BitVec 8) : -x_1 ||| x = x ||| -x_1 := sorry + +theorem add_or_sub_comb_i8_negative_y_add_thm (x : BitVec 8) : -x ||| x = x ||| -x := sorry + +theorem add_or_sub_comb_i8_negative_xor_instead_or_thm (x : BitVec 8) : -x ^^^ x = x ^^^ -x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean new file mode 100644 index 000000000..5fe57a96c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean @@ -0,0 +1,124 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddhmask_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 gaddhmask_statements + +def add_mask_ashr28_i32_before := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 28 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.ashr %arg2, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_mask_ashr28_i32_after := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 28 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.lshr %arg2, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem add_mask_ashr28_i32_proof : add_mask_ashr28_i32_before ⊑ add_mask_ashr28_i32_after := by + unfold add_mask_ashr28_i32_before add_mask_ashr28_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_mask_ashr28_i32 + apply add_mask_ashr28_i32_thm + ---END add_mask_ashr28_i32 + + + +def add_mask_ashr28_non_pow2_i32_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 28 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 9 : i32}> : () -> i32 + %2 = llvm.ashr %arg1, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_mask_ashr28_non_pow2_i32_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 28 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 9 : i32}> : () -> i32 + %2 = llvm.ashr %arg1, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %2 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_mask_ashr28_non_pow2_i32_proof : add_mask_ashr28_non_pow2_i32_before ⊑ add_mask_ashr28_non_pow2_i32_after := by + unfold add_mask_ashr28_non_pow2_i32_before add_mask_ashr28_non_pow2_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_mask_ashr28_non_pow2_i32 + apply add_mask_ashr28_non_pow2_i32_thm + ---END add_mask_ashr28_non_pow2_i32 + + + +def add_mask_ashr27_i32_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 27 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.ashr %arg0, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def add_mask_ashr27_i32_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 27 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.ashr %arg0, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %2 overflow : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem add_mask_ashr27_i32_proof : add_mask_ashr27_i32_before ⊑ add_mask_ashr27_i32_after := by + unfold add_mask_ashr27_i32_before add_mask_ashr27_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN add_mask_ashr27_i32 + apply add_mask_ashr27_i32_thm + ---END add_mask_ashr27_i32 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhmask_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhmask_proof.lean new file mode 100644 index 000000000..908c21359 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhmask_proof.lean @@ -0,0 +1,24 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddhmask_proof +theorem add_mask_ashr28_i32_thm (x : BitVec 32) : (x.sshiftRight 28 &&& 8#32) + x.sshiftRight 28 = x >>> 28 &&& 7#32 := sorry + +theorem add_mask_ashr28_non_pow2_i32_thm (x : BitVec 32) : + some ((x.sshiftRight 28 &&& 9#32) + x.sshiftRight 28) ⊑ + if + (x.msb = true → (9#32).msb = true) ∧ + ¬((x.sshiftRight 28 &&& 9#32) + x.sshiftRight 28).msb = (x.msb && (9#32).msb) then + none + else some ((x.sshiftRight 28 &&& 9#32) + x.sshiftRight 28) := sorry + +theorem add_mask_ashr27_i32_thm (x : BitVec 32) : + some ((x.sshiftRight 27 &&& 8#32) + x.sshiftRight 27) ⊑ + if + (x.msb = true → (8#32).msb = true) ∧ + ¬((x.sshiftRight 27 &&& 8#32) + x.sshiftRight 27).msb = (x.msb && (8#32).msb) then + none + else some ((x.sshiftRight 27 &&& 8#32) + x.sshiftRight 27) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean index 91b0371fe..6e84ef54c 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean @@ -36,6 +36,7 @@ theorem flip_add_of_shift_neg_proof : flip_add_of_shift_neg_before ⊑ flip_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean index 2938d1757..082661d03 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshift_proof.lean @@ -10,5 +10,5 @@ theorem flip_add_of_shift_neg_thm (x x_1 x_2 : BitVec 8) : 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 => some (a + x)) ⊑ - Option.bind (if 8#8 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => some (x - a) := sorry + Option.bind (if 8#8 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun y' => some (x - y') := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean index c496ce5d6..811b72716 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean @@ -37,6 +37,7 @@ theorem addhshlhsdivhscalar0_proof : addhshlhsdivhscalar0_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem addhshlhsdivhscalar1_proof : addhshlhsdivhscalar1_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem addhshlhsdivhscalar2_proof : addhshlhsdivhscalar2_before ⊑ addhshlhsdi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -139,6 +142,7 @@ theorem addhshlhsdivhnegative0_proof : addhshlhsdivhnegative0_before ⊑ addhshl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -172,6 +176,7 @@ theorem addhshlhsdivhnegative1_proof : addhshlhsdivhnegative1_before ⊑ addhshl simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean index eb6b9ff53..784adaeb6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean @@ -37,6 +37,7 @@ theorem l_proof : l_before ⊑ l_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2.lean b/SSA/Projects/InstCombine/tests/proofs/gand2.lean index 1375b42bf..4a053dbc6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gand2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gand2.lean @@ -33,6 +33,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -62,6 +63,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -94,6 +96,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -129,6 +132,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -163,6 +167,7 @@ theorem and1_shl1_is_cmp_eq_0_multiuse_proof : and1_shl1_is_cmp_eq_0_multiuse_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -194,6 +199,7 @@ theorem and1_lshr1_is_cmp_eq_0_proof : and1_lshr1_is_cmp_eq_0_before ⊑ and1_ls simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -227,6 +233,7 @@ theorem and1_lshr1_is_cmp_eq_0_multiuse_proof : and1_lshr1_is_cmp_eq_0_multiuse_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -301,6 +309,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -338,6 +347,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -377,6 +387,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean index 1542c3220..2a76cf6e6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean @@ -9,33 +9,32 @@ 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 a => - some (a &&& 1#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 a_1 => - some (a + (a_1 &&& 1#64))) ⊑ + (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 a_1 => some (a + (a_1 &&& 1#8))) ⊑ + 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 a_1 => - if a + (a_1 &&& 1#8) < a ∨ a + (a_1 &&& 1#8) < a_1 &&& 1#8 then none else some (a + (a_1 &&& 1#8)) := sorry + 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 a => some (a &&& 1#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 a_1 => some (a + (a_1 &&& 1#8))) ⊑ - Option.bind (if 8#8 ≤ x then none else some (1#8 >>> x.toNat)) fun a => - if (a <<< 1).sshiftRight 1 = a then none else if a <<< 1 >>> 1 = a then none else some (a <<< 1) := sorry + 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 diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean index 645d09955..d6d0906ae 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean @@ -38,6 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -70,6 +71,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -103,6 +105,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -133,6 +136,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean new file mode 100644 index 000000000..2c354266a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean @@ -0,0 +1,717 @@ +import SSA.Projects.InstCombine.tests.proofs.gandhorhnot_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 gandhorhnot_statements + +def and_to_xor1_before := [llvm| +{ +^0(%arg119 : i32, %arg120 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg119, %arg120 : i32 + %2 = llvm.and %arg119, %arg120 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_to_xor1_after := [llvm| +{ +^0(%arg119 : i32, %arg120 : i32): + %0 = llvm.xor %arg119, %arg120 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem and_to_xor1_proof : and_to_xor1_before ⊑ and_to_xor1_after := by + unfold and_to_xor1_before and_to_xor1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN and_to_xor1 + apply and_to_xor1_thm + ---END and_to_xor1 + + + +def and_to_xor2_before := [llvm| +{ +^0(%arg117 : i32, %arg118 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg117, %arg118 : i32 + %2 = llvm.and %arg117, %arg118 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_to_xor2_after := [llvm| +{ +^0(%arg117 : i32, %arg118 : i32): + %0 = llvm.xor %arg117, %arg118 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem and_to_xor2_proof : and_to_xor2_before ⊑ and_to_xor2_after := by + unfold and_to_xor2_before and_to_xor2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN and_to_xor2 + apply and_to_xor2_thm + ---END and_to_xor2 + + + +def and_to_xor3_before := [llvm| +{ +^0(%arg115 : i32, %arg116 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg115, %arg116 : i32 + %2 = llvm.and %arg116, %arg115 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_to_xor3_after := [llvm| +{ +^0(%arg115 : i32, %arg116 : i32): + %0 = llvm.xor %arg115, %arg116 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem and_to_xor3_proof : and_to_xor3_before ⊑ and_to_xor3_after := by + unfold and_to_xor3_before and_to_xor3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN and_to_xor3 + apply and_to_xor3_thm + ---END and_to_xor3 + + + +def and_to_xor4_before := [llvm| +{ +^0(%arg113 : i32, %arg114 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg114, %arg113 : i32 + %2 = llvm.and %arg113, %arg114 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.and %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def and_to_xor4_after := [llvm| +{ +^0(%arg113 : i32, %arg114 : i32): + %0 = llvm.xor %arg114, %arg113 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem and_to_xor4_proof : and_to_xor4_before ⊑ and_to_xor4_after := by + unfold and_to_xor4_before and_to_xor4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN and_to_xor4 + apply and_to_xor4_thm + ---END and_to_xor4 + + + +def or_to_nxor1_before := [llvm| +{ +^0(%arg93 : i32, %arg94 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg93, %arg94 : i32 + %2 = llvm.or %arg93, %arg94 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_to_nxor1_after := [llvm| +{ +^0(%arg93 : i32, %arg94 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg93, %arg94 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_to_nxor1_proof : or_to_nxor1_before ⊑ or_to_nxor1_after := by + unfold or_to_nxor1_before or_to_nxor1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_to_nxor1 + apply or_to_nxor1_thm + ---END or_to_nxor1 + + + +def or_to_nxor2_before := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg91, %arg92 : i32 + %2 = llvm.or %arg92, %arg91 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_to_nxor2_after := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg91, %arg92 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_to_nxor2_proof : or_to_nxor2_before ⊑ or_to_nxor2_after := by + unfold or_to_nxor2_before or_to_nxor2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_to_nxor2 + apply or_to_nxor2_thm + ---END or_to_nxor2 + + + +def or_to_nxor3_before := [llvm| +{ +^0(%arg89 : i32, %arg90 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg89, %arg90 : i32 + %2 = llvm.or %arg89, %arg90 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_to_nxor3_after := [llvm| +{ +^0(%arg89 : i32, %arg90 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg89, %arg90 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_to_nxor3_proof : or_to_nxor3_before ⊑ or_to_nxor3_after := by + unfold or_to_nxor3_before or_to_nxor3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_to_nxor3 + apply or_to_nxor3_thm + ---END or_to_nxor3 + + + +def or_to_nxor4_before := [llvm| +{ +^0(%arg87 : i32, %arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg88, %arg87 : i32 + %2 = llvm.or %arg87, %arg88 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_to_nxor4_after := [llvm| +{ +^0(%arg87 : i32, %arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg88, %arg87 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_to_nxor4_proof : or_to_nxor4_before ⊑ or_to_nxor4_after := by + unfold or_to_nxor4_before or_to_nxor4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_to_nxor4 + apply or_to_nxor4_thm + ---END or_to_nxor4 + + + +def xor_to_xor1_before := [llvm| +{ +^0(%arg85 : i32, %arg86 : i32): + %0 = llvm.and %arg85, %arg86 : i32 + %1 = llvm.or %arg85, %arg86 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_to_xor1_after := [llvm| +{ +^0(%arg85 : i32, %arg86 : i32): + %0 = llvm.xor %arg85, %arg86 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem xor_to_xor1_proof : xor_to_xor1_before ⊑ xor_to_xor1_after := by + unfold xor_to_xor1_before xor_to_xor1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN xor_to_xor1 + apply xor_to_xor1_thm + ---END xor_to_xor1 + + + +def xor_to_xor2_before := [llvm| +{ +^0(%arg83 : i32, %arg84 : i32): + %0 = llvm.and %arg83, %arg84 : i32 + %1 = llvm.or %arg84, %arg83 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_to_xor2_after := [llvm| +{ +^0(%arg83 : i32, %arg84 : i32): + %0 = llvm.xor %arg83, %arg84 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem xor_to_xor2_proof : xor_to_xor2_before ⊑ xor_to_xor2_after := by + unfold xor_to_xor2_before xor_to_xor2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN xor_to_xor2 + apply xor_to_xor2_thm + ---END xor_to_xor2 + + + +def xor_to_xor3_before := [llvm| +{ +^0(%arg81 : i32, %arg82 : i32): + %0 = llvm.or %arg81, %arg82 : i32 + %1 = llvm.and %arg81, %arg82 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_to_xor3_after := [llvm| +{ +^0(%arg81 : i32, %arg82 : i32): + %0 = llvm.xor %arg81, %arg82 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem xor_to_xor3_proof : xor_to_xor3_before ⊑ xor_to_xor3_after := by + unfold xor_to_xor3_before xor_to_xor3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN xor_to_xor3 + apply xor_to_xor3_thm + ---END xor_to_xor3 + + + +def xor_to_xor4_before := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = llvm.or %arg79, %arg80 : i32 + %1 = llvm.and %arg80, %arg79 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def xor_to_xor4_after := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = llvm.xor %arg80, %arg79 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem xor_to_xor4_proof : xor_to_xor4_before ⊑ xor_to_xor4_after := by + unfold xor_to_xor4_before xor_to_xor4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN xor_to_xor4 + apply xor_to_xor4_thm + ---END xor_to_xor4 + + + +def PR32830_before := [llvm| +{ +^0(%arg60 : i64, %arg61 : i64, %arg62 : i64): + %0 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 + %1 = llvm.xor %arg60, %0 : i64 + %2 = llvm.xor %arg61, %0 : i64 + %3 = llvm.or %2, %arg60 : i64 + %4 = llvm.or %1, %arg62 : i64 + %5 = llvm.and %3, %4 : i64 + "llvm.return"(%5) : (i64) -> () +} +] +def PR32830_after := [llvm| +{ +^0(%arg60 : i64, %arg61 : i64, %arg62 : i64): + %0 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 + %1 = llvm.xor %arg60, %0 : i64 + %2 = llvm.xor %arg61, %0 : i64 + %3 = llvm.or %arg60, %2 : i64 + %4 = llvm.or %arg62, %1 : i64 + %5 = llvm.and %3, %4 : i64 + "llvm.return"(%5) : (i64) -> () +} +] +theorem PR32830_proof : PR32830_before ⊑ PR32830_after := by + unfold PR32830_before PR32830_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN PR32830 + apply PR32830_thm + ---END PR32830 + + + +def simplify_or_common_op_commute0_before := [llvm| +{ +^0(%arg45 : i4, %arg46 : i4, %arg47 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.and %arg45, %arg46 : i4 + %2 = llvm.and %1, %arg47 : i4 + %3 = llvm.xor %2, %0 : i4 + %4 = llvm.or %3, %arg45 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def simplify_or_common_op_commute0_after := [llvm| +{ +^0(%arg45 : i4, %arg46 : i4, %arg47 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem simplify_or_common_op_commute0_proof : simplify_or_common_op_commute0_before ⊑ simplify_or_common_op_commute0_after := by + unfold simplify_or_common_op_commute0_before simplify_or_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN simplify_or_common_op_commute0 + apply simplify_or_common_op_commute0_thm + ---END simplify_or_common_op_commute0 + + + +def simplify_or_common_op_commute1_before := [llvm| +{ +^0(%arg42 : i4, %arg43 : i4, %arg44 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.and %arg43, %arg42 : i4 + %2 = llvm.and %1, %arg44 : i4 + %3 = llvm.xor %2, %0 : i4 + %4 = llvm.or %3, %arg42 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def simplify_or_common_op_commute1_after := [llvm| +{ +^0(%arg42 : i4, %arg43 : i4, %arg44 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem simplify_or_common_op_commute1_proof : simplify_or_common_op_commute1_before ⊑ simplify_or_common_op_commute1_after := by + unfold simplify_or_common_op_commute1_before simplify_or_common_op_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN simplify_or_common_op_commute1 + apply simplify_or_common_op_commute1_thm + ---END simplify_or_common_op_commute1 + + + +def simplify_or_common_op_commute2_before := [llvm| +{ +^0(%arg38 : i4, %arg39 : i4, %arg40 : i4, %arg41 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.mul %arg40, %arg40 : i4 + %2 = llvm.and %arg38, %arg39 : i4 + %3 = llvm.and %1, %2 : i4 + %4 = llvm.and %3, %arg41 : i4 + %5 = llvm.xor %4, %0 : i4 + %6 = llvm.or %5, %arg38 : i4 + "llvm.return"(%6) : (i4) -> () +} +] +def simplify_or_common_op_commute2_after := [llvm| +{ +^0(%arg38 : i4, %arg39 : i4, %arg40 : i4, %arg41 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem simplify_or_common_op_commute2_proof : simplify_or_common_op_commute2_before ⊑ simplify_or_common_op_commute2_after := by + unfold simplify_or_common_op_commute2_before simplify_or_common_op_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN simplify_or_common_op_commute2 + apply simplify_or_common_op_commute2_thm + ---END simplify_or_common_op_commute2 + + + +def simplify_and_common_op_commute1_before := [llvm| +{ +^0(%arg29 : i4, %arg30 : i4, %arg31 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.or %arg30, %arg29 : i4 + %2 = llvm.or %1, %arg31 : i4 + %3 = llvm.xor %2, %0 : i4 + %4 = llvm.and %3, %arg29 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def simplify_and_common_op_commute1_after := [llvm| +{ +^0(%arg29 : i4, %arg30 : i4, %arg31 : i4): + %0 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem simplify_and_common_op_commute1_proof : simplify_and_common_op_commute1_before ⊑ simplify_and_common_op_commute1_after := by + unfold simplify_and_common_op_commute1_before simplify_and_common_op_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN simplify_and_common_op_commute1 + apply simplify_and_common_op_commute1_thm + ---END simplify_and_common_op_commute1 + + + +def simplify_and_common_op_commute2_before := [llvm| +{ +^0(%arg25 : i4, %arg26 : i4, %arg27 : i4, %arg28 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.mul %arg27, %arg27 : i4 + %2 = llvm.or %arg25, %arg26 : i4 + %3 = llvm.or %1, %2 : i4 + %4 = llvm.or %3, %arg28 : i4 + %5 = llvm.xor %4, %0 : i4 + %6 = llvm.and %5, %arg25 : i4 + "llvm.return"(%6) : (i4) -> () +} +] +def simplify_and_common_op_commute2_after := [llvm| +{ +^0(%arg25 : i4, %arg26 : i4, %arg27 : i4, %arg28 : i4): + %0 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem simplify_and_common_op_commute2_proof : simplify_and_common_op_commute2_before ⊑ simplify_and_common_op_commute2_after := by + unfold simplify_and_common_op_commute2_before simplify_and_common_op_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN simplify_and_common_op_commute2 + apply simplify_and_common_op_commute2_thm + ---END simplify_and_common_op_commute2 + + + +def reduce_xor_common_op_commute0_before := [llvm| +{ +^0(%arg10 : i4, %arg11 : i4, %arg12 : i4): + %0 = llvm.xor %arg10, %arg11 : i4 + %1 = llvm.xor %0, %arg12 : i4 + %2 = llvm.or %1, %arg10 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +def reduce_xor_common_op_commute0_after := [llvm| +{ +^0(%arg10 : i4, %arg11 : i4, %arg12 : i4): + %0 = llvm.xor %arg11, %arg12 : i4 + %1 = llvm.or %0, %arg10 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem reduce_xor_common_op_commute0_proof : reduce_xor_common_op_commute0_before ⊑ reduce_xor_common_op_commute0_after := by + unfold reduce_xor_common_op_commute0_before reduce_xor_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN reduce_xor_common_op_commute0 + apply reduce_xor_common_op_commute0_thm + ---END reduce_xor_common_op_commute0 + + + +def reduce_xor_common_op_commute1_before := [llvm| +{ +^0(%arg7 : i4, %arg8 : i4, %arg9 : i4): + %0 = llvm.xor %arg8, %arg7 : i4 + %1 = llvm.xor %0, %arg9 : i4 + %2 = llvm.or %1, %arg7 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +def reduce_xor_common_op_commute1_after := [llvm| +{ +^0(%arg7 : i4, %arg8 : i4, %arg9 : i4): + %0 = llvm.xor %arg8, %arg9 : i4 + %1 = llvm.or %0, %arg7 : i4 + "llvm.return"(%1) : (i4) -> () +} +] +theorem reduce_xor_common_op_commute1_proof : reduce_xor_common_op_commute1_before ⊑ reduce_xor_common_op_commute1_after := by + unfold reduce_xor_common_op_commute1_before reduce_xor_common_op_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN reduce_xor_common_op_commute1 + apply reduce_xor_common_op_commute1_thm + ---END reduce_xor_common_op_commute1 + + + +def annihilate_xor_common_op_commute2_before := [llvm| +{ +^0(%arg3 : i4, %arg4 : i4, %arg5 : i4, %arg6 : i4): + %0 = llvm.mul %arg5, %arg5 : i4 + %1 = llvm.xor %arg3, %arg4 : i4 + %2 = llvm.xor %0, %1 : i4 + %3 = llvm.xor %2, %arg6 : i4 + %4 = llvm.xor %3, %arg3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def annihilate_xor_common_op_commute2_after := [llvm| +{ +^0(%arg3 : i4, %arg4 : i4, %arg5 : i4, %arg6 : i4): + %0 = llvm.mul %arg5, %arg5 : i4 + %1 = llvm.xor %arg4, %0 : i4 + %2 = llvm.xor %1, %arg6 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem annihilate_xor_common_op_commute2_proof : annihilate_xor_common_op_commute2_before ⊑ annihilate_xor_common_op_commute2_after := by + unfold annihilate_xor_common_op_commute2_before annihilate_xor_common_op_commute2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN annihilate_xor_common_op_commute2 + apply annihilate_xor_common_op_commute2_thm + ---END annihilate_xor_common_op_commute2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhorhnot_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot_proof.lean new file mode 100644 index 000000000..17d27dcaa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot_proof.lean @@ -0,0 +1,55 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gandhorhnot_proof +theorem and_to_xor1_thm (x x_1 : BitVec 32) : (x_1 ||| x) &&& (x_1 &&& x ^^^ 4294967295#32) = x_1 ^^^ x := sorry + +theorem and_to_xor2_thm (x x_1 : BitVec 32) : (x_1 &&& x ^^^ 4294967295#32) &&& (x_1 ||| x) = x_1 ^^^ x := sorry + +theorem and_to_xor3_thm (x x_1 : BitVec 32) : (x_1 ||| x) &&& (x &&& x_1 ^^^ 4294967295#32) = x_1 ^^^ x := sorry + +theorem and_to_xor4_thm (x x_1 : BitVec 32) : (x_1 &&& x ^^^ 4294967295#32) &&& (x ||| x_1) = x ^^^ x_1 := sorry + +theorem or_to_nxor1_thm (x x_1 : BitVec 32) : + x_1 &&& x ||| (x_1 ||| x) ^^^ 4294967295#32 = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem or_to_nxor2_thm (x x_1 : BitVec 32) : + x_1 &&& x ||| (x ||| x_1) ^^^ 4294967295#32 = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem or_to_nxor3_thm (x x_1 : BitVec 32) : + (x_1 ||| x) ^^^ 4294967295#32 ||| x_1 &&& x = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem or_to_nxor4_thm (x x_1 : BitVec 32) : + (x_1 ||| x) ^^^ 4294967295#32 ||| x &&& x_1 = x ^^^ x_1 ^^^ 4294967295#32 := sorry + +theorem xor_to_xor1_thm (x x_1 : BitVec 32) : x_1 &&& x ^^^ (x_1 ||| x) = x_1 ^^^ x := sorry + +theorem xor_to_xor2_thm (x x_1 : BitVec 32) : x_1 &&& x ^^^ (x ||| x_1) = x_1 ^^^ x := sorry + +theorem xor_to_xor3_thm (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ x_1 &&& x = x_1 ^^^ x := sorry + +theorem xor_to_xor4_thm (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ x &&& x_1 = x ^^^ x_1 := sorry + +theorem PR32830_thm (x x_1 x_2 : BitVec 64) : + (x_2 ^^^ 18446744073709551615#64 ||| x_1) &&& (x_1 ^^^ 18446744073709551615#64 ||| x) = + (x_1 ||| x_2 ^^^ 18446744073709551615#64) &&& (x ||| x_1 ^^^ 18446744073709551615#64) := sorry + +theorem simplify_or_common_op_commute0_thm (x x_1 x_2 : BitVec 4) : x_2 &&& x_1 &&& x ^^^ 15#4 ||| x_2 = 15#4 := sorry + +theorem simplify_or_common_op_commute1_thm (x x_1 x_2 : BitVec 4) : x_2 &&& x_1 &&& x ^^^ 15#4 ||| x_1 = 15#4 := sorry + +theorem simplify_or_common_op_commute2_thm (x x_1 x_2 x_3 : BitVec 4) : x_3 * x_3 &&& (x_2 &&& x_1) &&& x ^^^ 15#4 ||| x_2 = 15#4 := sorry + +theorem simplify_and_common_op_commute1_thm (x x_1 x_2 : BitVec 4) : ((x_2 ||| x_1 ||| x) ^^^ 15#4) &&& x_1 = 0#4 := sorry + +theorem simplify_and_common_op_commute2_thm (x x_1 x_2 x_3 : BitVec 4) : ((x_3 * x_3 ||| (x_2 ||| x_1) ||| x) ^^^ 15#4) &&& x_2 = 0#4 := sorry + +theorem reduce_xor_common_op_commute0_thm (x x_1 x_2 : BitVec 4) : x_2 ^^^ x_1 ^^^ x ||| x_2 = x_1 ^^^ x ||| x_2 := sorry + +theorem reduce_xor_common_op_commute1_thm (x x_1 x_2 : BitVec 4) : x_2 ^^^ x_1 ^^^ x ||| x_1 = x_2 ^^^ x ||| x_1 := sorry + +theorem annihilate_xor_common_op_commute2_thm (x x_1 x_2 x_3 : BitVec 4) : + x_3 * x_3 ^^^ (x_2 ^^^ x_1) ^^^ x ^^^ x_2 = x_1 ^^^ x_3 * x_3 ^^^ x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean new file mode 100644 index 000000000..27ac58d02 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean @@ -0,0 +1,110 @@ +import SSA.Projects.InstCombine.tests.proofs.gandhxorhmerge_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 gandhxorhmerge_statements + +def test1_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = llvm.and %arg11, %arg9 : i32 + %1 = llvm.and %arg11, %arg10 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = llvm.xor %arg9, %arg10 : i32 + %1 = llvm.and %arg11, %0 : i32 + "llvm.return"(%1) : (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 + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test2_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = llvm.and %arg7, %arg6 : i32 + %1 = llvm.or %arg7, %arg6 : i32 + %2 = llvm.xor %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = llvm.xor %arg7, %arg6 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +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 + intros + try simp + ---BEGIN test2 + apply test2_thm + ---END test2 + + + +def PR75692_1_before := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -5 : i32}> : () -> i32 + %2 = llvm.xor %arg3, %0 : i32 + %3 = llvm.xor %arg3, %1 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def PR75692_1_after := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by + unfold PR75692_1_before PR75692_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN PR75692_1 + apply PR75692_1_thm + ---END PR75692_1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge_proof.lean new file mode 100644 index 000000000..283fe44fb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge_proof.lean @@ -0,0 +1,12 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gandhxorhmerge_proof +theorem test1_thm (x x_1 x_2 : BitVec 32) : x_2 &&& x_1 ^^^ x_2 &&& x = x_2 &&& (x_1 ^^^ x) := sorry + +theorem test2_thm (x x_1 : BitVec 32) : x_1 &&& x ^^^ (x_1 ||| x) = x_1 ^^^ x := sorry + +theorem PR75692_1_thm (x : BitVec 32) : (x ^^^ 4#32) &&& (x ^^^ 4294967291#32) = 0#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gannotations.lean b/SSA/Projects/InstCombine/tests/proofs/gannotations.lean deleted file mode 100644 index bc9af81c6..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gannotations.lean +++ /dev/null @@ -1,44 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gannotations_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 gannotations_statements - -def do_not_add_annotation_to_existing_instr_before := [llvm| -{ -^0(%arg15 : i32, %arg16 : i32): - %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 - %1 = llvm.add %arg15, %arg16 : i32 - %2 = llvm.add %0, %1 : i32 - "llvm.return"(%2) : (i32) -> () -} -] -def do_not_add_annotation_to_existing_instr_after := [llvm| -{ -^0(%arg15 : i32, %arg16 : i32): - %0 = llvm.add %arg15, %arg16 : i32 - "llvm.return"(%0) : (i32) -> () -} -] -theorem do_not_add_annotation_to_existing_instr_proof : do_not_add_annotation_to_existing_instr_before ⊑ do_not_add_annotation_to_existing_instr_after := by - unfold do_not_add_annotation_to_existing_instr_before do_not_add_annotation_to_existing_instr_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN do_not_add_annotation_to_existing_instr - all_goals (try extract_goal ; sorry) - ---END do_not_add_annotation_to_existing_instr - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean deleted file mode 100644 index 385eb24ee..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean +++ /dev/null @@ -1,254 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gapinthand_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 gapinthand_statements - -def test0_before := [llvm| -{ -^0(%arg13 : i39): - %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 - %1 = llvm.and %arg13, %0 : i39 - "llvm.return"(%1) : (i39) -> () -} -] -def test0_after := [llvm| -{ -^0(%arg13 : i39): - %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 - "llvm.return"(%0) : (i39) -> () -} -] -theorem test0_proof : test0_before ⊑ test0_after := by - unfold test0_before test0_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test0 - all_goals (try extract_goal ; sorry) - ---END test0 - - - -def test2_before := [llvm| -{ -^0(%arg12 : i15): - %0 = "llvm.mlir.constant"() <{value = -1 : i15}> : () -> i15 - %1 = llvm.and %arg12, %0 : i15 - "llvm.return"(%1) : (i15) -> () -} -] -def test2_after := [llvm| -{ -^0(%arg12 : i15): - "llvm.return"(%arg12) : (i15) -> () -} -] -theorem test2_proof : test2_before ⊑ test2_after := by - unfold test2_before test2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test2 - apply test2_thm - ---END test2 - - - -def test3_before := [llvm| -{ -^0(%arg11 : i23): - %0 = "llvm.mlir.constant"() <{value = 127 : i23}> : () -> i23 - %1 = "llvm.mlir.constant"() <{value = 128 : i23}> : () -> i23 - %2 = llvm.and %arg11, %0 : i23 - %3 = llvm.and %2, %1 : i23 - "llvm.return"(%3) : (i23) -> () -} -] -def test3_after := [llvm| -{ -^0(%arg11 : i23): - %0 = "llvm.mlir.constant"() <{value = 0 : i23}> : () -> i23 - "llvm.return"(%0) : (i23) -> () -} -] -theorem test3_proof : test3_before ⊑ test3_after := by - unfold test3_before test3_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test3 - apply test3_thm - ---END test3 - - - -def test7_before := [llvm| -{ -^0(%arg7 : i47): - %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 - %1 = "llvm.mlir.constant"() <{value = 255 : i47}> : () -> i47 - %2 = llvm.ashr %arg7, %0 : i47 - %3 = llvm.and %2, %1 : i47 - "llvm.return"(%3) : (i47) -> () -} -] -def test7_after := [llvm| -{ -^0(%arg7 : i47): - %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 - %1 = llvm.lshr %arg7, %0 : i47 - "llvm.return"(%1) : (i47) -> () -} -] -theorem test7_proof : test7_before ⊑ test7_after := by - unfold test7_before test7_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test7 - apply test7_thm - ---END test7 - - - -def test8_before := [llvm| -{ -^0(%arg6 : i999): - %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 - %1 = llvm.and %arg6, %0 : i999 - "llvm.return"(%1) : (i999) -> () -} -] -def test8_after := [llvm| -{ -^0(%arg6 : i999): - %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 - "llvm.return"(%0) : (i999) -> () -} -] -theorem test8_proof : test8_before ⊑ test8_after := by - unfold test8_before test8_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test8 - all_goals (try extract_goal ; sorry) - ---END test8 - - - -def test9_before := [llvm| -{ -^0(%arg5 : i1005): - %0 = "llvm.mlir.constant"() <{value = -1 : i1005}> : () -> i1005 - %1 = llvm.and %arg5, %0 : i1005 - "llvm.return"(%1) : (i1005) -> () -} -] -def test9_after := [llvm| -{ -^0(%arg5 : i1005): - "llvm.return"(%arg5) : (i1005) -> () -} -] -theorem test9_proof : test9_before ⊑ test9_after := by - unfold test9_before test9_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test9 - apply test9_thm - ---END test9 - - - -def test10_before := [llvm| -{ -^0(%arg4 : i123): - %0 = "llvm.mlir.constant"() <{value = 127 : i123}> : () -> i123 - %1 = "llvm.mlir.constant"() <{value = 128 : i123}> : () -> i123 - %2 = llvm.and %arg4, %0 : i123 - %3 = llvm.and %2, %1 : i123 - "llvm.return"(%3) : (i123) -> () -} -] -def test10_after := [llvm| -{ -^0(%arg4 : i123): - %0 = "llvm.mlir.constant"() <{value = 0 : i123}> : () -> i123 - "llvm.return"(%0) : (i123) -> () -} -] -theorem test10_proof : test10_before ⊑ test10_after := by - unfold test10_before test10_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test10 - apply test10_thm - ---END test10 - - - -def test13_before := [llvm| -{ -^0(%arg0 : i1024): - %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 - %1 = "llvm.mlir.constant"() <{value = 255 : i1024}> : () -> i1024 - %2 = llvm.ashr %arg0, %0 : i1024 - %3 = llvm.and %2, %1 : i1024 - "llvm.return"(%3) : (i1024) -> () -} -] -def test13_after := [llvm| -{ -^0(%arg0 : i1024): - %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 - %1 = llvm.lshr %arg0, %0 : i1024 - "llvm.return"(%1) : (i1024) -> () -} -] -theorem test13_proof : test13_before ⊑ test13_after := by - unfold test13_before test13_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test13 - apply test13_thm - ---END test13 - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean deleted file mode 100644 index 29f61586a..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean +++ /dev/null @@ -1,24 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthand_proof -theorem test2_thm (x : BitVec 15) : x &&& 32767#15 = x := sorry - -theorem test3_thm (x : BitVec 23) : x &&& 127#23 &&& 128#23 = 0#23 := sorry - -theorem test7_thm (x : BitVec 47) : x.sshiftRight 39 &&& 255#47 = x >>> 39 := sorry - -theorem test9_thm (x : BitVec 1005) : - x &&& - 342882754299605542703496015699200579379649539745770754382000124278512336359979559197823481221022674600830295333617006984059886491421540493951506482390354393725906168794375391533474387361995876540094533828897487199474622120556760561893297406274466013266278287285969349365133754612883980378790581378220031#1005 = - x := sorry - -theorem test10_thm (x : BitVec 123) : x &&& 127#123 &&& 128#123 = 0#123 := sorry - -theorem test13_thm (x : BitVec 1024) : - (Option.bind (if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x.sshiftRight (1016 % 2 ^ 1024))) fun a => - some (a &&& 255#1024)) ⊑ - if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x >>> (1016 % 2 ^ 1024)) := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean new file mode 100644 index 000000000..281a7884e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean @@ -0,0 +1,179 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthandhorhand_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 gapinthandhorhand_statements + +def test1_before := [llvm| +{ +^0(%arg8 : i17, %arg9 : i17): + %0 = "llvm.mlir.constant"() <{value = 7 : i17}> : () -> i17 + %1 = "llvm.mlir.constant"() <{value = 8 : i17}> : () -> i17 + %2 = llvm.and %arg8, %0 : i17 + %3 = llvm.and %arg9, %1 : i17 + %4 = llvm.or %2, %3 : i17 + %5 = llvm.and %4, %0 : i17 + "llvm.return"(%5) : (i17) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg8 : i17, %arg9 : i17): + %0 = "llvm.mlir.constant"() <{value = 7 : i17}> : () -> i17 + %1 = llvm.and %arg8, %0 : i17 + "llvm.return"(%1) : (i17) -> () +} +] +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 + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + + +def test3_before := [llvm| +{ +^0(%arg6 : i49, %arg7 : i49): + %0 = "llvm.mlir.constant"() <{value = 1 : i49}> : () -> i49 + %1 = llvm.shl %arg7, %0 : i49 + %2 = llvm.or %arg6, %1 : i49 + %3 = llvm.and %2, %0 : i49 + "llvm.return"(%3) : (i49) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg6 : i49, %arg7 : i49): + %0 = "llvm.mlir.constant"() <{value = 1 : i49}> : () -> i49 + %1 = llvm.and %arg6, %0 : i49 + "llvm.return"(%1) : (i49) -> () +} +] +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 + intros + try simp + ---BEGIN test3 + apply test3_thm + ---END test3 + + + +def test4_before := [llvm| +{ +^0(%arg4 : i67, %arg5 : i67): + %0 = "llvm.mlir.constant"() <{value = 66 : i67}> : () -> i67 + %1 = "llvm.mlir.constant"() <{value = 2 : i67}> : () -> i67 + %2 = llvm.lshr %arg5, %0 : i67 + %3 = llvm.or %arg4, %2 : i67 + %4 = llvm.and %3, %1 : i67 + "llvm.return"(%4) : (i67) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg4 : i67, %arg5 : i67): + %0 = "llvm.mlir.constant"() <{value = 2 : i67}> : () -> i67 + %1 = llvm.and %arg4, %0 : i67 + "llvm.return"(%1) : (i67) -> () +} +] +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 + intros + try simp + ---BEGIN test4 + apply test4_thm + ---END test4 + + + +def or_test1_before := [llvm| +{ +^0(%arg2 : i231, %arg3 : i231): + %0 = "llvm.mlir.constant"() <{value = 1 : i231}> : () -> i231 + %1 = llvm.and %arg2, %0 : i231 + %2 = llvm.or %1, %0 : i231 + "llvm.return"(%2) : (i231) -> () +} +] +def or_test1_after := [llvm| +{ +^0(%arg2 : i231, %arg3 : i231): + %0 = "llvm.mlir.constant"() <{value = 1 : i231}> : () -> i231 + "llvm.return"(%0) : (i231) -> () +} +] +theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by + unfold or_test1_before or_test1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_test1 + apply or_test1_thm + ---END or_test1 + + + +def or_test2_before := [llvm| +{ +^0(%arg0 : i7, %arg1 : i7): + %0 = "llvm.mlir.constant"() <{value = 6 : i7}> : () -> i7 + %1 = "llvm.mlir.constant"() <{value = -64 : i7}> : () -> i7 + %2 = llvm.shl %arg0, %0 : i7 + %3 = llvm.or %2, %1 : i7 + "llvm.return"(%3) : (i7) -> () +} +] +def or_test2_after := [llvm| +{ +^0(%arg0 : i7, %arg1 : i7): + %0 = "llvm.mlir.constant"() <{value = -64 : i7}> : () -> i7 + "llvm.return"(%0) : (i7) -> () +} +] +theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by + unfold or_test2_before or_test2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN or_test2 + apply or_test2_thm + ---END or_test2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand_proof.lean new file mode 100644 index 000000000..7ec6a1581 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand_proof.lean @@ -0,0 +1,16 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthandhorhand_proof +theorem test1_thm (x x_1 : BitVec 17) : (x_1 &&& 7#17 ||| x &&& 8#17) &&& 7#17 = x_1 &&& 7#17 := sorry + +theorem test3_thm (x x_1 : BitVec 49) : (x_1 ||| x <<< 1) &&& 1#49 = x_1 &&& 1#49 := sorry + +theorem test4_thm (x x_1 : BitVec 67) : (x_1 ||| x >>> 66) &&& 2#67 = x_1 &&& 2#67 := sorry + +theorem or_test1_thm (x : BitVec 231) : x &&& 1#231 ||| 1#231 = 1#231 := sorry + +theorem or_test2_thm (x : BitVec 7) : x <<< 6 ||| 64#7 = 64#7 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean similarity index 53% rename from SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean rename to SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean index b75ee6e27..3a8c83b65 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean @@ -1,4 +1,4 @@ -import SSA.Projects.InstCombine.tests.proofs.gapinthrem2_proof +import SSA.Projects.InstCombine.tests.proofs.gapinthandhxorhmerge_proof import SSA.Projects.InstCombine.LLVM.PrettyEDSL import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics @@ -11,22 +11,23 @@ open Ctxt (Var) set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false -section gapinthrem2_statements +section gapinthandhxorhmerge_statements def test1_before := [llvm| { -^0(%arg3 : i333): - %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i333}> : () -> i333 - %1 = llvm.urem %arg3, %0 : i333 - "llvm.return"(%1) : (i333) -> () +^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): + %0 = llvm.and %arg5, %arg3 : i57 + %1 = llvm.and %arg5, %arg4 : i57 + %2 = llvm.xor %0, %1 : i57 + "llvm.return"(%2) : (i57) -> () } ] def test1_after := [llvm| { -^0(%arg3 : i333): - %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i333}> : () -> i333 - %1 = llvm.and %arg3, %0 : i333 - "llvm.return"(%1) : (i333) -> () +^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): + %0 = llvm.xor %arg3, %arg4 : i57 + %1 = llvm.and %arg5, %0 : i57 + "llvm.return"(%1) : (i57) -> () } ] theorem test1_proof : test1_before ⊑ test1_after := by @@ -34,6 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -45,20 +47,18 @@ theorem test1_proof : test1_before ⊑ test1_after := by def test2_before := [llvm| { -^0(%arg2 : i499): - %0 = "llvm.mlir.constant"() <{value = 4096 : i499}> : () -> i499 - %1 = "llvm.mlir.constant"() <{value = 111 : i499}> : () -> i499 - %2 = llvm.shl %0, %1 : i499 - %3 = llvm.urem %arg2, %2 : i499 - "llvm.return"(%3) : (i499) -> () +^0(%arg0 : i23, %arg1 : i23, %arg2 : i23): + %0 = llvm.and %arg1, %arg0 : i23 + %1 = llvm.or %arg1, %arg0 : i23 + %2 = llvm.xor %0, %1 : i23 + "llvm.return"(%2) : (i23) -> () } ] def test2_after := [llvm| { -^0(%arg2 : i499): - %0 = "llvm.mlir.constant"() <{value = 10633823966279326983230456482242756607 : i499}> : () -> i499 - %1 = llvm.and %arg2, %0 : i499 - "llvm.return"(%1) : (i499) -> () +^0(%arg0 : i23, %arg1 : i23, %arg2 : i23): + %0 = llvm.xor %arg1, %arg0 : i23 + "llvm.return"(%0) : (i23) -> () } ] theorem test2_proof : test2_before ⊑ test2_after := by @@ -66,6 +66,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge_proof.lean new file mode 100644 index 000000000..f128d06d8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthandhxorhmerge_proof +theorem test1_thm (x x_1 x_2 : BitVec 57) : x_2 &&& x_1 ^^^ x_2 &&& x = x_2 &&& (x_1 ^^^ x) := sorry + +theorem test2_thm (x x_1 : BitVec 23) : x_1 &&& x ^^^ (x_1 ||| x) = x_1 ^^^ x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean new file mode 100644 index 000000000..152f80318 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean @@ -0,0 +1,45 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthmul1_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 gapinthmul1_statements + +def test1_before := [llvm| +{ +^0(%arg2 : i17): + %0 = "llvm.mlir.constant"() <{value = 1024 : i17}> : () -> i17 + %1 = llvm.mul %arg2, %0 : i17 + "llvm.return"(%1) : (i17) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg2 : i17): + %0 = "llvm.mlir.constant"() <{value = 10 : i17}> : () -> i17 + %1 = llvm.shl %arg2, %0 : i17 + "llvm.return"(%1) : (i17) -> () +} +] +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 + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1_proof.lean similarity index 52% rename from SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gapinthmul1_proof.lean index 810e83af1..bf1ee95bb 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1_proof.lean @@ -3,4 +3,6 @@ import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics open BitVec -section gearly_constfold_changes_IR_proof +section gapinthmul1_proof +theorem test1_thm (x : BitVec 17) : x * 1024#17 = x <<< 10 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean new file mode 100644 index 000000000..fb85fcec9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthmul2_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 gapinthmul2_statements + +def test1_before := [llvm| +{ +^0(%arg2 : i177): + %0 = "llvm.mlir.constant"() <{value = 1 : i177}> : () -> i177 + %1 = "llvm.mlir.constant"() <{value = 155 : i177}> : () -> i177 + %2 = llvm.shl %0, %1 : i177 + %3 = llvm.mul %arg2, %2 : i177 + "llvm.return"(%3) : (i177) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg2 : i177): + %0 = "llvm.mlir.constant"() <{value = 155 : i177}> : () -> i177 + %1 = llvm.shl %arg2, %0 : i177 + "llvm.return"(%1) : (i177) -> () +} +] +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 + intros + try simp + ---BEGIN test1 + apply test1_thm + ---END test1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthmul2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2_proof.lean new file mode 100644 index 000000000..e17fa1ef0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthmul2_proof +theorem test1_thm (x : BitVec 177) : x * 45671926166590716193865151022383844364247891968#177 = x <<< 155 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean index 370aa31b6..bb02457a0 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean @@ -33,6 +33,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean deleted file mode 100644 index 2d6d7a073..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean +++ /dev/null @@ -1,150 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gapinthor_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 gapinthor_statements - -def test1_before := [llvm| -{ -^0(%arg5 : i23): - %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 - %1 = llvm.xor %0, %arg5 : i23 - %2 = llvm.or %arg5, %1 : i23 - "llvm.return"(%2) : (i23) -> () -} -] -def test1_after := [llvm| -{ -^0(%arg5 : i23): - %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 - "llvm.return"(%0) : (i23) -> () -} -] -theorem test1_proof : test1_before ⊑ test1_after := by - unfold test1_before test1_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test1 - apply test1_thm - ---END test1 - - - -def test2_before := [llvm| -{ -^0(%arg3 : i39, %arg4 : i39): - %0 = "llvm.mlir.constant"() <{value = 274877906943 : i39}> : () -> i39 - %1 = "llvm.mlir.constant"() <{value = -1 : i39}> : () -> i39 - %2 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 - %3 = llvm.xor %0, %1 : i39 - %4 = llvm.and %arg4, %2 : i39 - %5 = llvm.add %arg3, %4 : i39 - %6 = llvm.and %5, %3 : i39 - %7 = llvm.and %arg3, %0 : i39 - %8 = llvm.or %6, %7 : i39 - "llvm.return"(%8) : (i39) -> () -} -] -def test2_after := [llvm| -{ -^0(%arg3 : i39, %arg4 : i39): - %0 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 - %1 = llvm.and %arg4, %0 : i39 - %2 = llvm.add %arg3, %1 : i39 - "llvm.return"(%2) : (i39) -> () -} -] -theorem test2_proof : test2_before ⊑ test2_after := by - unfold test2_before test2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test2 - apply test2_thm - ---END test2 - - - -def test4_before := [llvm| -{ -^0(%arg2 : i1023): - %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 - %1 = llvm.xor %0, %arg2 : i1023 - %2 = llvm.or %arg2, %1 : i1023 - "llvm.return"(%2) : (i1023) -> () -} -] -def test4_after := [llvm| -{ -^0(%arg2 : i1023): - %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 - "llvm.return"(%0) : (i1023) -> () -} -] -theorem test4_proof : test4_before ⊑ test4_after := by - unfold test4_before test4_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test4 - apply test4_thm - ---END test4 - - - -def test5_before := [llvm| -{ -^0(%arg0 : i399, %arg1 : i399): - %0 = "llvm.mlir.constant"() <{value = 274877906943 : i399}> : () -> i399 - %1 = "llvm.mlir.constant"() <{value = -1 : i399}> : () -> i399 - %2 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 - %3 = llvm.xor %0, %1 : i399 - %4 = llvm.and %arg1, %2 : i399 - %5 = llvm.add %arg0, %4 : i399 - %6 = llvm.and %5, %3 : i399 - %7 = llvm.and %arg0, %0 : i399 - %8 = llvm.or %6, %7 : i399 - "llvm.return"(%8) : (i399) -> () -} -] -def test5_after := [llvm| -{ -^0(%arg0 : i399, %arg1 : i399): - %0 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 - %1 = llvm.and %arg1, %0 : i399 - %2 = llvm.add %arg0, %1 : i399 - "llvm.return"(%2) : (i399) -> () -} -] -theorem test5_proof : test5_before ⊑ test5_after := by - unfold test5_before test5_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN test5 - apply test5_thm - ---END test5 - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean deleted file mode 100644 index 84c8b8e3e..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean +++ /dev/null @@ -1,23 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthor_proof -theorem test1_thm (x : BitVec 23) : x ||| 8388607#23 ^^^ x = 8388607#23 := sorry - -theorem test2_thm (x x_1 : BitVec 39) : - x_1 + (x &&& 274877906944#39) &&& 274877906944#39 ||| x_1 &&& 274877906943#39 = x_1 + (x &&& 274877906944#39) := sorry - -theorem test4_thm (x : BitVec 1023) : - x ||| - 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 ^^^ - x = - 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 := sorry - -theorem test5_thm (x x_1 : BitVec 399) : - x_1 + (x &&& 18446742974197923840#399) &&& - 1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585711495839744#399 ||| - x_1 &&& 274877906943#399 = - x_1 + (x &&& 18446742974197923840#399) := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean deleted file mode 100644 index fe79ad92a..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean +++ /dev/null @@ -1,13 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gapinthrem2_proof -theorem test1_thm (x : BitVec 333) : x % 70368744177664#333 = x &&& 70368744177663#333 := sorry - -theorem test2_thm (x : BitVec 499) : - (Option.bind (if 499 % 2 ^ 499 ≤ 111 % 2 ^ 499 then none else some (4096#499 <<< (111 % 2 ^ 499))) fun a => - if a = 0#499 then none else some (x % a)) ⊑ - some (x &&& 10633823966279326983230456482242756607#499) := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean index edd513b41..f9b4219a9 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean @@ -35,6 +35,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean index 67a2586e8..0af4ce940 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify_proof.lean @@ -6,16 +6,16 @@ open BitVec section gapinthshifthsimplify_proof theorem test0_thm (x x_1 x_2 : BitVec 41) : (Option.bind (if 41#41 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => - Option.bind (if 41#41 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a &&& a_1)) ⊑ + Option.bind (if 41#41 ≤ x_1 then none else some (x <<< x_1.toNat)) fun y' => some (a &&& y')) ⊑ if 41#41 ≤ x_1 then none else some ((x_2 &&& x) <<< x_1.toNat) := sorry theorem test1_thm (x x_1 x_2 : BitVec 57) : (Option.bind (if 57#57 ≤ x_1 then none else some (x_2 >>> x_1.toNat)) fun a => - Option.bind (if 57#57 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a_1 => some (a ||| a_1)) ⊑ + Option.bind (if 57#57 ≤ x_1 then none else some (x >>> x_1.toNat)) fun y' => some (a ||| y')) ⊑ if 57#57 ≤ x_1 then none else some ((x_2 ||| x) >>> x_1.toNat) := sorry theorem test2_thm (x x_1 x_2 : BitVec 49) : (Option.bind (if 49#49 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => - Option.bind (if 49#49 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun a_1 => some (a ^^^ a_1)) ⊑ + Option.bind (if 49#49 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun y' => some (a ^^^ y')) ⊑ if 49#49 ≤ x_1 then none else some ((x_2 ^^^ x).sshiftRight x_1.toNat) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean new file mode 100644 index 000000000..56478234f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean @@ -0,0 +1,533 @@ +import SSA.Projects.InstCombine.tests.proofs.gashrhlshr_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 gashrhlshr_statements + +def ashr_known_pos_exact_before := [llvm| +{ +^0(%arg35 : i8, %arg36 : i8): + %0 = "llvm.mlir.constant"() <{value = 127 : i8}> : () -> i8 + %1 = llvm.and %arg35, %0 : i8 + %2 = llvm.ashr %1, %arg36 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def ashr_known_pos_exact_after := [llvm| +{ +^0(%arg35 : i8, %arg36 : i8): + %0 = "llvm.mlir.constant"() <{value = 127 : i8}> : () -> i8 + %1 = llvm.and %arg35, %0 : i8 + %2 = llvm.lshr %1, %arg36 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem ashr_known_pos_exact_proof : ashr_known_pos_exact_before ⊑ ashr_known_pos_exact_after := by + unfold ashr_known_pos_exact_before ashr_known_pos_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_known_pos_exact + apply ashr_known_pos_exact_thm + ---END ashr_known_pos_exact + + + +def lshr_mul_times_3_div_2_before := [llvm| +{ +^0(%arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg32, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_3_div_2_after := [llvm| +{ +^0(%arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.lshr %arg32, %0 : i32 + %2 = llvm.add %arg32, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_3_div_2_proof : lshr_mul_times_3_div_2_before ⊑ lshr_mul_times_3_div_2_after := by + unfold lshr_mul_times_3_div_2_before lshr_mul_times_3_div_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_3_div_2 + apply lshr_mul_times_3_div_2_thm + ---END lshr_mul_times_3_div_2 + + + +def lshr_mul_times_3_div_2_exact_before := [llvm| +{ +^0(%arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg31, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_3_div_2_exact_after := [llvm| +{ +^0(%arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.lshr %arg31, %0 : i32 + %2 = llvm.add %arg31, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_3_div_2_exact_proof : lshr_mul_times_3_div_2_exact_before ⊑ lshr_mul_times_3_div_2_exact_after := by + unfold lshr_mul_times_3_div_2_exact_before lshr_mul_times_3_div_2_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_3_div_2_exact + apply lshr_mul_times_3_div_2_exact_thm + ---END lshr_mul_times_3_div_2_exact + + + +def lshr_mul_times_3_div_2_exact_2_before := [llvm| +{ +^0(%arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg28, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_3_div_2_exact_2_after := [llvm| +{ +^0(%arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.lshr %arg28, %0 : i32 + %2 = llvm.add %arg28, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_3_div_2_exact_2_proof : lshr_mul_times_3_div_2_exact_2_before ⊑ lshr_mul_times_3_div_2_exact_2_after := by + unfold lshr_mul_times_3_div_2_exact_2_before lshr_mul_times_3_div_2_exact_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_3_div_2_exact_2 + apply lshr_mul_times_3_div_2_exact_2_thm + ---END lshr_mul_times_3_div_2_exact_2 + + + +def lshr_mul_times_5_div_4_before := [llvm| +{ +^0(%arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg27, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_5_div_4_after := [llvm| +{ +^0(%arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.lshr %arg27, %0 : i32 + %2 = llvm.add %arg27, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_5_div_4_proof : lshr_mul_times_5_div_4_before ⊑ lshr_mul_times_5_div_4_after := by + unfold lshr_mul_times_5_div_4_before lshr_mul_times_5_div_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_5_div_4 + apply lshr_mul_times_5_div_4_thm + ---END lshr_mul_times_5_div_4 + + + +def lshr_mul_times_5_div_4_exact_before := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg26, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_5_div_4_exact_after := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.lshr %arg26, %0 : i32 + %2 = llvm.add %arg26, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_5_div_4_exact_proof : lshr_mul_times_5_div_4_exact_before ⊑ lshr_mul_times_5_div_4_exact_after := by + unfold lshr_mul_times_5_div_4_exact_before lshr_mul_times_5_div_4_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_5_div_4_exact + apply lshr_mul_times_5_div_4_exact_thm + ---END lshr_mul_times_5_div_4_exact + + + +def lshr_mul_times_5_div_4_exact_2_before := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg23, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def lshr_mul_times_5_div_4_exact_2_after := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.lshr %arg23, %0 : i32 + %2 = llvm.add %arg23, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem lshr_mul_times_5_div_4_exact_2_proof : lshr_mul_times_5_div_4_exact_2_before ⊑ lshr_mul_times_5_div_4_exact_2_after := by + unfold lshr_mul_times_5_div_4_exact_2_before lshr_mul_times_5_div_4_exact_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_mul_times_5_div_4_exact_2 + apply lshr_mul_times_5_div_4_exact_2_thm + ---END lshr_mul_times_5_div_4_exact_2 + + + +def ashr_mul_times_3_div_2_before := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg22, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_3_div_2_after := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.lshr %arg22, %0 : i32 + %2 = llvm.add %arg22, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_3_div_2_proof : ashr_mul_times_3_div_2_before ⊑ ashr_mul_times_3_div_2_after := by + unfold ashr_mul_times_3_div_2_before ashr_mul_times_3_div_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_3_div_2 + apply ashr_mul_times_3_div_2_thm + ---END ashr_mul_times_3_div_2 + + + +def ashr_mul_times_3_div_2_exact_before := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg21, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_3_div_2_exact_after := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.ashr %arg21, %0 : i32 + %2 = llvm.add %arg21, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_3_div_2_exact_proof : ashr_mul_times_3_div_2_exact_before ⊑ ashr_mul_times_3_div_2_exact_after := by + unfold ashr_mul_times_3_div_2_exact_before ashr_mul_times_3_div_2_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_3_div_2_exact + apply ashr_mul_times_3_div_2_exact_thm + ---END ashr_mul_times_3_div_2_exact + + + +def ashr_mul_times_3_div_2_exact_2_before := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.mul %arg17, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_3_div_2_exact_2_after := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.ashr %arg17, %0 : i32 + %2 = llvm.add %arg17, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_3_div_2_exact_2_proof : ashr_mul_times_3_div_2_exact_2_before ⊑ ashr_mul_times_3_div_2_exact_2_after := by + unfold ashr_mul_times_3_div_2_exact_2_before ashr_mul_times_3_div_2_exact_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_3_div_2_exact_2 + apply ashr_mul_times_3_div_2_exact_2_thm + ---END ashr_mul_times_3_div_2_exact_2 + + + +def ashr_mul_times_5_div_4_before := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg16, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_5_div_4_after := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.lshr %arg16, %0 : i32 + %2 = llvm.add %arg16, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_5_div_4_proof : ashr_mul_times_5_div_4_before ⊑ ashr_mul_times_5_div_4_after := by + unfold ashr_mul_times_5_div_4_before ashr_mul_times_5_div_4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_5_div_4 + apply ashr_mul_times_5_div_4_thm + ---END ashr_mul_times_5_div_4 + + + +def ashr_mul_times_5_div_4_exact_before := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg15, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_5_div_4_exact_after := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.ashr %arg15, %0 : i32 + %2 = llvm.add %arg15, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_5_div_4_exact_proof : ashr_mul_times_5_div_4_exact_before ⊑ ashr_mul_times_5_div_4_exact_after := by + unfold ashr_mul_times_5_div_4_exact_before ashr_mul_times_5_div_4_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_5_div_4_exact + apply ashr_mul_times_5_div_4_exact_thm + ---END ashr_mul_times_5_div_4_exact + + + +def ashr_mul_times_5_div_4_exact_2_before := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.mul %arg12, %0 overflow : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_mul_times_5_div_4_exact_2_after := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.ashr %arg12, %0 : i32 + %2 = llvm.add %arg12, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem ashr_mul_times_5_div_4_exact_2_proof : ashr_mul_times_5_div_4_exact_2_before ⊑ ashr_mul_times_5_div_4_exact_2_after := by + unfold ashr_mul_times_5_div_4_exact_2_before ashr_mul_times_5_div_4_exact_2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_mul_times_5_div_4_exact_2 + apply ashr_mul_times_5_div_4_exact_2_thm + ---END ashr_mul_times_5_div_4_exact_2 + + + +def lsb_mask_sign_zext_wrong_cst2_before := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %3 = llvm.add %arg8, %0 : i32 + %4 = llvm.xor %arg8, %1 : i32 + %5 = llvm.and %3, %4 : i32 + %6 = llvm.lshr %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def lsb_mask_sign_zext_wrong_cst2_after := [llvm| +{ +^0(%arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %2 = llvm.add %arg8, %0 : i32 + %3 = llvm.and %2, %arg8 : i32 + %4 = llvm.lshr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem lsb_mask_sign_zext_wrong_cst2_proof : lsb_mask_sign_zext_wrong_cst2_before ⊑ lsb_mask_sign_zext_wrong_cst2_after := by + unfold lsb_mask_sign_zext_wrong_cst2_before lsb_mask_sign_zext_wrong_cst2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lsb_mask_sign_zext_wrong_cst2 + apply lsb_mask_sign_zext_wrong_cst2_thm + ---END lsb_mask_sign_zext_wrong_cst2 + + + +def lsb_mask_sign_sext_wrong_cst2_before := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %3 = llvm.add %arg2, %0 : i32 + %4 = llvm.xor %arg2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + %6 = llvm.ashr %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def lsb_mask_sign_sext_wrong_cst2_after := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %2 = llvm.add %arg2, %0 : i32 + %3 = llvm.and %2, %arg2 : i32 + %4 = llvm.ashr %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem lsb_mask_sign_sext_wrong_cst2_proof : lsb_mask_sign_sext_wrong_cst2_before ⊑ lsb_mask_sign_sext_wrong_cst2_after := by + unfold lsb_mask_sign_sext_wrong_cst2_before lsb_mask_sign_sext_wrong_cst2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lsb_mask_sign_sext_wrong_cst2 + apply lsb_mask_sign_sext_wrong_cst2_thm + ---END lsb_mask_sign_sext_wrong_cst2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gashrhlshr_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr_proof.lean new file mode 100644 index 000000000..99ab99f15 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr_proof.lean @@ -0,0 +1,88 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gashrhlshr_proof +theorem ashr_known_pos_exact_thm (x x_1 : BitVec 8) : + (if 8#8 ≤ x then none else some ((x_1 &&& 127#8).sshiftRight x.toNat)) ⊑ + if 8#8 ≤ x then none else some ((x_1 &&& 127#8) >>> x.toNat) := sorry + +theorem lshr_mul_times_3_div_2_thm (x : BitVec 32) : + ((if signExtend 64 x * 3#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 3#64 then none + else if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 3#64 then none else some (x * 3#32)).bind + fun x' => some (x' >>> 1)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 1).msb = x.msb then none + else if x + x >>> 1 < x ∨ x + x >>> 1 < x >>> 1 then none else some (x + x >>> 1) := sorry + +theorem lshr_mul_times_3_div_2_exact_thm (x : BitVec 32) : + ((if signExtend 64 x * 3#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 3#64 then none + else some (x * 3#32)).bind + fun x' => some (x' >>> 1)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 1).msb = x.msb then none else some (x + x >>> 1) := sorry + +theorem lshr_mul_times_3_div_2_exact_2_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 3#64 then none else some (x * 3#32)).bind fun x' => some (x' >>> 1)) ⊑ + if x + x >>> 1 < x ∨ x + x >>> 1 < x >>> 1 then none else some (x + x >>> 1) := sorry + +theorem lshr_mul_times_5_div_4_thm (x : BitVec 32) : + ((if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 5#64 then none else some (x * 5#32)).bind + fun x' => some (x' >>> 2)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 2).msb = x.msb then none + else if x + x >>> 2 < x ∨ x + x >>> 2 < x >>> 2 then none else some (x + x >>> 2) := sorry + +theorem lshr_mul_times_5_div_4_exact_thm (x : BitVec 32) : + ((if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else some (x * 5#32)).bind + fun x' => some (x' >>> 2)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 2).msb = x.msb then none else some (x + x >>> 2) := sorry + +theorem lshr_mul_times_5_div_4_exact_2_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 5#64 then none else some (x * 5#32)).bind fun x' => some (x' >>> 2)) ⊑ + if x + x >>> 2 < x ∨ x + x >>> 2 < x >>> 2 then none else some (x + x >>> 2) := sorry + +theorem ashr_mul_times_3_div_2_thm (x : BitVec 32) : + ((if signExtend 64 x * 3#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 3#64 then none + else if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 3#64 then none else some (x * 3#32)).bind + fun x' => some (x'.sshiftRight 1)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 1).msb = x.msb then none + else if x + x >>> 1 < x ∨ x + x >>> 1 < x >>> 1 then none else some (x + x >>> 1) := sorry + +theorem ashr_mul_times_3_div_2_exact_thm (x : BitVec 32) : + ((if signExtend 64 x * 3#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 3#64 then none + else some (x * 3#32)).bind + fun x' => some (x'.sshiftRight 1)) ⊑ + if (x + x.sshiftRight 1).msb = x.msb then some (x + x.sshiftRight 1) else none := sorry + +theorem ashr_mul_times_3_div_2_exact_2_thm (x : BitVec 32) : + ((if signExtend 64 x * 3#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 3#64 then none + else some (x * 3#32)).bind + fun x' => some (x'.sshiftRight 1)) ⊑ + if (x + x.sshiftRight 1).msb = x.msb then some (x + x.sshiftRight 1) else none := sorry + +theorem ashr_mul_times_5_div_4_thm (x : BitVec 32) : + ((if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 5#64 then none else some (x * 5#32)).bind + fun x' => some (x'.sshiftRight 2)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 2).msb = x.msb then none + else if x + x >>> 2 < x ∨ x + x >>> 2 < x >>> 2 then none else some (x + x >>> 2) := sorry + +theorem ashr_mul_times_5_div_4_exact_thm (x : BitVec 32) : + ((if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else some (x * 5#32)).bind + fun x' => some (x'.sshiftRight 2)) ⊑ + if (x + x.sshiftRight 2).msb = x.msb then some (x + x.sshiftRight 2) else none := sorry + +theorem ashr_mul_times_5_div_4_exact_2_thm (x : BitVec 32) : + ((if signExtend 64 x * 5#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 5#64 then none + else some (x * 5#32)).bind + fun x' => some (x'.sshiftRight 2)) ⊑ + if (x + x.sshiftRight 2).msb = x.msb then some (x + x.sshiftRight 2) else none := sorry + +theorem lsb_mask_sign_zext_wrong_cst2_thm (x : BitVec 32) : + (x + 4294967295#32 &&& (x ^^^ 2#32)) >>> 31 = (x + 4294967295#32 &&& x) >>> 31 := sorry + +theorem lsb_mask_sign_sext_wrong_cst2_thm (x : BitVec 32) : + (x + 4294967295#32 &&& (x ^^^ 2#32)).sshiftRight 31 = (x + 4294967295#32 &&& x).sshiftRight 31 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean b/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean new file mode 100644 index 000000000..1ea61e0db --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.gavghlsb_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 gavghlsb_statements + +def avg_lsb_before := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.and %arg4, %0 : i8 + %2 = llvm.and %arg5, %0 : i8 + %3 = llvm.add %2, %1 overflow : i8 + %4 = llvm.lshr %3, %0 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def avg_lsb_after := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.and %arg4, %0 : i8 + %2 = llvm.and %arg5, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem avg_lsb_proof : avg_lsb_before ⊑ avg_lsb_after := by + unfold avg_lsb_before avg_lsb_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN avg_lsb + apply avg_lsb_thm + ---END avg_lsb + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gavghlsb_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gavghlsb_proof.lean new file mode 100644 index 000000000..b9893858d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gavghlsb_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gavghlsb_proof +theorem avg_lsb_thm (x x_1 : BitVec 8) : + ((if ((x_1 &&& 1#8) + (x &&& 1#8)).msb = true then none + else + if (x_1 &&& 1#8) + (x &&& 1#8) < x_1 &&& 1#8 ∨ (x_1 &&& 1#8) + (x &&& 1#8) < x &&& 1#8 then none + else some ((x_1 &&& 1#8) + (x &&& 1#8))).bind + fun x' => some (x' >>> 1)) ⊑ + some (x_1 &&& (x &&& 1#8)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean new file mode 100644 index 000000000..49bb84dd2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean @@ -0,0 +1,487 @@ +import SSA.Projects.InstCombine.tests.proofs.gbinophofhdisplacedhshifts_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 gbinophofhdisplacedhshifts_statements + +def shl_or_before := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg25 : i8 + %4 = llvm.add %arg25, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.or %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_or_after := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 22 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg25 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by + unfold shl_or_before shl_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or + apply shl_or_thm + ---END shl_or + + + +def lshr_or_before := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg24 : i8 + %4 = llvm.add %arg24, %1 : i8 + %5 = llvm.lshr %2, %4 : i8 + %6 = llvm.or %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def lshr_or_after := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 17 : i8}> : () -> i8 + %1 = llvm.lshr %0, %arg24 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by + unfold lshr_or_before lshr_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_or + apply lshr_or_thm + ---END lshr_or + + + +def ashr_or_before := [llvm| +{ +^0(%arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %3 = llvm.ashr %0, %arg23 : i8 + %4 = llvm.add %arg23, %1 : i8 + %5 = llvm.ashr %2, %4 : i8 + %6 = llvm.or %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def ashr_or_after := [llvm| +{ +^0(%arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = llvm.ashr %0, %arg23 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem ashr_or_proof : ashr_or_before ⊑ ashr_or_after := by + unfold ashr_or_before ashr_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_or + apply ashr_or_thm + ---END ashr_or + + + +def shl_xor_before := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg22 : i8 + %4 = llvm.add %arg22, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.xor %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_xor_after := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 22 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg22 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by + unfold shl_xor_before shl_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_xor + apply shl_xor_thm + ---END shl_xor + + + +def lshr_xor_before := [llvm| +{ +^0(%arg21 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg21 : i8 + %4 = llvm.add %arg21, %1 : i8 + %5 = llvm.lshr %2, %4 : i8 + %6 = llvm.xor %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def lshr_xor_after := [llvm| +{ +^0(%arg21 : i8): + %0 = "llvm.mlir.constant"() <{value = 17 : i8}> : () -> i8 + %1 = llvm.lshr %0, %arg21 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by + unfold lshr_xor_before lshr_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_xor + apply lshr_xor_thm + ---END lshr_xor + + + +def ashr_xor_before := [llvm| +{ +^0(%arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %3 = llvm.ashr %0, %arg20 : i8 + %4 = llvm.add %arg20, %1 : i8 + %5 = llvm.ashr %2, %4 : i8 + %6 = llvm.xor %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def ashr_xor_after := [llvm| +{ +^0(%arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = 96 : i8}> : () -> i8 + %1 = llvm.lshr %0, %arg20 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by + unfold ashr_xor_before ashr_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_xor + apply ashr_xor_thm + ---END ashr_xor + + + +def shl_and_before := [llvm| +{ +^0(%arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 8 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg19 : i8 + %4 = llvm.add %arg19, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.and %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_and_after := [llvm| +{ +^0(%arg19 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg19 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by + unfold shl_and_before shl_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_and + apply shl_and_thm + ---END shl_and + + + +def lshr_and_before := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg18 : i8 + %4 = llvm.add %arg18, %1 : i8 + %5 = llvm.lshr %2, %4 : i8 + %6 = llvm.and %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def lshr_and_after := [llvm| +{ +^0(%arg18 : i8): + %0 = "llvm.mlir.constant"() <{value = 32 : i8}> : () -> i8 + %1 = llvm.lshr %0, %arg18 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by + unfold lshr_and_before lshr_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_and + apply lshr_and_thm + ---END lshr_and + + + +def ashr_and_before := [llvm| +{ +^0(%arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %3 = llvm.ashr %0, %arg17 : i8 + %4 = llvm.add %arg17, %1 : i8 + %5 = llvm.ashr %2, %4 : i8 + %6 = llvm.and %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def ashr_and_after := [llvm| +{ +^0(%arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = llvm.ashr %0, %arg17 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem ashr_and_proof : ashr_and_before ⊑ ashr_and_after := by + unfold ashr_and_before ashr_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_and + apply ashr_and_thm + ---END ashr_and + + + +def shl_add_before := [llvm| +{ +^0(%arg16 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg16 : i8 + %4 = llvm.add %arg16, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.add %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_add_after := [llvm| +{ +^0(%arg16 : i8): + %0 = "llvm.mlir.constant"() <{value = 30 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg16 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by + unfold shl_add_before shl_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add + apply shl_add_thm + ---END shl_add + + + +def lshr_add_fail_before := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg15 : i8 + %4 = llvm.add %arg15, %1 : i8 + %5 = llvm.lshr %2, %4 : i8 + %6 = llvm.add %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def lshr_add_fail_after := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %3 = llvm.lshr %0, %arg15 : i8 + %4 = llvm.add %arg15, %1 : i8 + %5 = llvm.lshr %2, %4 : i8 + %6 = llvm.add %3, %5 overflow : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_add_fail_proof : lshr_add_fail_before ⊑ lshr_add_fail_after := by + unfold lshr_add_fail_before lshr_add_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_add_fail + apply lshr_add_fail_thm + ---END lshr_add_fail + + + +def shl_or_commuted_before := [llvm| +{ +^0(%arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg13 : i8 + %4 = llvm.add %arg13, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.or %5, %3 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_or_commuted_after := [llvm| +{ +^0(%arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 22 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg13 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_or_commuted_proof : shl_or_commuted_before ⊑ shl_or_commuted_after := by + unfold shl_or_commuted_before shl_or_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_commuted + apply shl_or_commuted_thm + ---END shl_or_commuted + + + +def shl_or_with_or_disjoint_instead_of_add_before := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 16 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %3 = llvm.shl %0, %arg1 : i8 + %4 = llvm.or %arg1, %1 : i8 + %5 = llvm.shl %2, %4 : i8 + %6 = llvm.or %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_or_with_or_disjoint_instead_of_add_after := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 22 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg1 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem shl_or_with_or_disjoint_instead_of_add_proof : shl_or_with_or_disjoint_instead_of_add_before ⊑ shl_or_with_or_disjoint_instead_of_add_after := by + unfold shl_or_with_or_disjoint_instead_of_add_before shl_or_with_or_disjoint_instead_of_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_with_or_disjoint_instead_of_add + apply shl_or_with_or_disjoint_instead_of_add_thm + ---END shl_or_with_or_disjoint_instead_of_add + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts_proof.lean new file mode 100644 index 000000000..baa465737 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts_proof.lean @@ -0,0 +1,77 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gbinophofhdisplacedhshifts_proof +theorem shl_or_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (3#8 <<< ((x.toNat + 1) % 256))) fun y' => some (a ||| y')) ⊑ + if 8#8 ≤ x then none else some (22#8 <<< x.toNat) := sorry + +theorem lshr_or_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (3#8 >>> ((x.toNat + 1) % 256))) fun y' => some (a ||| y')) ⊑ + if 8#8 ≤ x then none else some (17#8 >>> x.toNat) := sorry + +theorem ashr_or_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some ((192#8).sshiftRight x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some ((128#8).sshiftRight ((x.toNat + 1) % 256))) fun y' => + some (a ||| y')) ⊑ + if 8#8 ≤ x then none else some ((192#8).sshiftRight x.toNat) := sorry + +theorem shl_xor_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (3#8 <<< ((x.toNat + 1) % 256))) fun y' => some (a ^^^ y')) ⊑ + if 8#8 ≤ x then none else some (22#8 <<< x.toNat) := sorry + +theorem lshr_xor_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (3#8 >>> ((x.toNat + 1) % 256))) fun y' => some (a ^^^ y')) ⊑ + if 8#8 ≤ x then none else some (17#8 >>> x.toNat) := sorry + +theorem ashr_xor_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some ((128#8).sshiftRight x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some ((192#8).sshiftRight ((x.toNat + 1) % 256))) fun y' => + some (a ^^^ y')) ⊑ + if 8#8 ≤ x then none else some (96#8 >>> x.toNat) := sorry + +theorem shl_and_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (48#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (8#8 <<< ((x.toNat + 1) % 256))) fun y' => some (a &&& y')) ⊑ + if 8#8 ≤ x then none else some (16#8 <<< x.toNat) := sorry + +theorem lshr_and_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (48#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (64#8 >>> ((x.toNat + 1) % 256))) fun y' => some (a &&& y')) ⊑ + if 8#8 ≤ x then none else some (32#8 >>> x.toNat) := sorry + +theorem ashr_and_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some ((192#8).sshiftRight x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some ((128#8).sshiftRight ((x.toNat + 1) % 256))) fun y' => + some (a &&& y')) ⊑ + if 8#8 ≤ x then none else some ((192#8).sshiftRight x.toNat) := sorry + +theorem shl_add_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (7#8 <<< ((x.toNat + 1) % 256))) fun y' => some (a + y')) ⊑ + if 8#8 ≤ x then none else some (30#8 <<< x.toNat) := sorry + +theorem lshr_add_fail_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (7#8 >>> ((x.toNat + 1) % 256))) fun y' => some (a + y')) ⊑ + Option.bind (if 8#8 ≤ x then none else some (16#8 >>> x.toNat)) fun a => + Option.bind (if 8#8 ≤ x + 1#8 then none else some (7#8 >>> ((x.toNat + 1) % 256))) fun y' => + if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none + else if a + y' < a ∨ a + y' < y' then none else some (a + y') := sorry + +theorem shl_or_commuted_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x + 1#8 then none else some (3#8 <<< ((x.toNat + 1) % 256))) fun a => + Option.bind (if 8#8 ≤ x then none else some (16#8 <<< x.toNat)) fun y' => some (a ||| y')) ⊑ + if 8#8 ≤ x then none else some (22#8 <<< x.toNat) := sorry + +theorem shl_or_with_or_disjoint_instead_of_add_thm (x : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (16#8 <<< x.toNat)) fun a => + Option.bind (if 8#8 ≤ x ||| 1#8 then none else some (3#8 <<< (x.toNat ||| 1))) fun y' => some (a ||| y')) ⊑ + if 8#8 ≤ x then none else some (22#8 <<< x.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean index b0c2559a3..647861f10 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean @@ -35,6 +35,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem positive_biggerashr_proof : positive_biggerashr_before ⊑ positive_bigg simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -134,6 +137,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -165,6 +169,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -196,6 +201,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -230,6 +236,7 @@ theorem positive_biggerashr_shlnuw_proof : positive_biggerashr_shlnuw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +271,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -295,6 +303,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +335,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -360,6 +370,7 @@ theorem positive_biggerashr_shlnsw_proof : positive_biggerashr_shlnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -394,6 +405,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -425,6 +437,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -456,6 +469,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -490,6 +504,7 @@ theorem positive_biggerashr_shlnuwnsw_proof : positive_biggerashr_shlnuwnsw_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -524,6 +539,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -552,6 +568,7 @@ theorem positive_samevar_ashrexact_proof : positive_samevar_ashrexact_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -581,6 +598,7 @@ theorem positive_sameconst_ashrexact_proof : positive_sameconst_ashrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -613,6 +631,7 @@ theorem positive_biggerashr_ashrexact_proof : positive_biggerashr_ashrexact_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -645,6 +664,7 @@ theorem positive_biggershl_ashrexact_proof : positive_biggershl_ashrexact_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -673,6 +693,7 @@ theorem positive_samevar_shlnsw_ashrexact_proof : positive_samevar_shlnsw_ashrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -702,6 +723,7 @@ theorem positive_sameconst_shlnsw_ashrexact_proof : positive_sameconst_shlnsw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -734,6 +756,7 @@ theorem positive_biggerashr_shlnsw_ashrexact_proof : positive_biggerashr_shlnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -766,6 +789,7 @@ theorem positive_biggershl_shlnsw_ashrexact_proof : positive_biggershl_shlnsw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -794,6 +818,7 @@ theorem positive_samevar_shlnuw_ashrexact_proof : positive_samevar_shlnuw_ashrex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -823,6 +848,7 @@ theorem positive_sameconst_shlnuw_ashrexact_proof : positive_sameconst_shlnuw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -855,6 +881,7 @@ theorem positive_biggerashr_shlnuw_ashrexact_proof : positive_biggerashr_shlnuw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -887,6 +914,7 @@ theorem positive_biggershl_shlnuw_ashrexact_proof : positive_biggershl_shlnuw_as simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -915,6 +943,7 @@ theorem positive_samevar_shlnuwnsw_ashrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -944,6 +973,7 @@ theorem positive_sameconst_shlnuwnsw_ashrexact_proof : positive_sameconst_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -976,6 +1006,7 @@ theorem positive_biggerashr_shlnuwnsw_ashrexact_proof : positive_biggerashr_shln simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1008,6 +1039,7 @@ theorem positive_biggershl_shlnuwnsw_ashrexact_proof : positive_biggershl_shlnuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean index 18407b4d4..884f82bce 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking_proof.lean @@ -34,7 +34,7 @@ theorem positive_biggerashr_shlnuw_thm (x : BitVec 8) : theorem positive_biggershl_shlnuw_thm (x : BitVec 8) : (if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ - (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry + (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => some (x' &&& 192#8) := sorry theorem positive_samevar_shlnsw_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => @@ -53,7 +53,7 @@ theorem positive_biggerashr_shlnsw_thm (x : BitVec 8) : theorem positive_biggershl_shlnsw_thm (x : BitVec 8) : (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ - (if (x <<< 3).sshiftRight 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry + (if (x <<< 3).sshiftRight 3 = x then none else some (x <<< 3)).bind fun x' => some (x' &&& 192#8) := sorry theorem positive_samevar_shlnuwnsw_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => @@ -76,8 +76,8 @@ theorem positive_biggerashr_shlnuwnsw_thm (x : BitVec 8) : theorem positive_biggershl_shlnuwnsw_thm (x : BitVec 8) : (if (x.sshiftRight 3 <<< 6).sshiftRight 6 = x.sshiftRight 3 then none else if x.sshiftRight 3 <<< 6 >>> 6 = x.sshiftRight 3 then none else some (x.sshiftRight 3 <<< 6)) ⊑ - (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => - some (a &&& 64#8) := sorry + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => + some (x' &&& 64#8) := sorry theorem positive_samevar_ashrexact_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean deleted file mode 100644 index 0e2c5487f..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean +++ /dev/null @@ -1,1018 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gcanonicalizehlshrhshlhtohmasking_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 gcanonicalizehlshrhshlhtohmasking_statements - -def positive_samevar_before := [llvm| -{ -^0(%arg62 : i8, %arg63 : i8): - %0 = llvm.lshr %arg62, %arg63 : i8 - %1 = llvm.shl %0, %arg63 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_after := [llvm| -{ -^0(%arg62 : i8, %arg63 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg63 overflow : i8 - %2 = llvm.and %1, %arg62 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_after := by - unfold positive_samevar_before positive_samevar_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar - apply positive_samevar_thm - ---END positive_samevar - - - -def positive_sameconst_before := [llvm| -{ -^0(%arg61 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg61, %0 : i8 - %2 = llvm.shl %1, %0 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_after := [llvm| -{ -^0(%arg61 : i8): - %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 - %1 = llvm.and %arg61, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameconst_after := by - unfold positive_sameconst_before positive_sameconst_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst - all_goals (try extract_goal ; sorry) - ---END positive_sameconst - - - -def positive_biggerlshr_before := [llvm| -{ -^0(%arg60 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg60, %0 : i8 - %3 = llvm.shl %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_after := [llvm| -{ -^0(%arg60 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 - %2 = llvm.lshr %arg60, %0 : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggerlshr_proof : positive_biggerlshr_before ⊑ positive_biggerlshr_after := by - unfold positive_biggerlshr_before positive_biggerlshr_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr - apply positive_biggerlshr_thm - ---END positive_biggerlshr - - - -def positive_biggershl_before := [llvm| -{ -^0(%arg59 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg59, %0 : i8 - %3 = llvm.shl %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_after := [llvm| -{ -^0(%arg59 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 - %2 = llvm.shl %arg59, %0 : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_biggershl_after := by - unfold positive_biggershl_before positive_biggershl_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl - apply positive_biggershl_thm - ---END positive_biggershl - - - -def positive_samevar_shlnuw_before := [llvm| -{ -^0(%arg57 : i8, %arg58 : i8): - %0 = llvm.lshr %arg57, %arg58 : i8 - %1 = llvm.shl %0, %arg58 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnuw_after := [llvm| -{ -^0(%arg57 : i8, %arg58 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg58 overflow : i8 - %2 = llvm.and %1, %arg57 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ positive_samevar_shlnuw_after := by - unfold positive_samevar_shlnuw_before positive_samevar_shlnuw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnuw - apply positive_samevar_shlnuw_thm - ---END positive_samevar_shlnuw - - - -def positive_sameconst_shlnuw_before := [llvm| -{ -^0(%arg56 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg56, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnuw_after := [llvm| -{ -^0(%arg56 : i8): - %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 - %1 = llvm.and %arg56, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ positive_sameconst_shlnuw_after := by - unfold positive_sameconst_shlnuw_before positive_sameconst_shlnuw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnuw - apply positive_sameconst_shlnuw_thm - ---END positive_sameconst_shlnuw - - - -def positive_biggerlshr_shlnuw_before := [llvm| -{ -^0(%arg55 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg55, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnuw_after := [llvm| -{ -^0(%arg55 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 - %2 = llvm.lshr %arg55, %0 : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnuw_proof : positive_biggerlshr_shlnuw_before ⊑ positive_biggerlshr_shlnuw_after := by - unfold positive_biggerlshr_shlnuw_before positive_biggerlshr_shlnuw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnuw - apply positive_biggerlshr_shlnuw_thm - ---END positive_biggerlshr_shlnuw - - - -def positive_biggershl_shlnuw_before := [llvm| -{ -^0(%arg54 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg54, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnuw_after := [llvm| -{ -^0(%arg54 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 - %2 = llvm.shl %arg54, %0 overflow : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ positive_biggershl_shlnuw_after := by - unfold positive_biggershl_shlnuw_before positive_biggershl_shlnuw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnuw - apply positive_biggershl_shlnuw_thm - ---END positive_biggershl_shlnuw - - - -def positive_samevar_shlnsw_before := [llvm| -{ -^0(%arg52 : i8, %arg53 : i8): - %0 = llvm.lshr %arg52, %arg53 : i8 - %1 = llvm.shl %0, %arg53 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnsw_after := [llvm| -{ -^0(%arg52 : i8, %arg53 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg53 overflow : i8 - %2 = llvm.and %1, %arg52 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ positive_samevar_shlnsw_after := by - unfold positive_samevar_shlnsw_before positive_samevar_shlnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnsw - apply positive_samevar_shlnsw_thm - ---END positive_samevar_shlnsw - - - -def positive_sameconst_shlnsw_before := [llvm| -{ -^0(%arg51 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg51, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnsw_after := [llvm| -{ -^0(%arg51 : i8): - %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 - %1 = llvm.and %arg51, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ positive_sameconst_shlnsw_after := by - unfold positive_sameconst_shlnsw_before positive_sameconst_shlnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnsw - apply positive_sameconst_shlnsw_thm - ---END positive_sameconst_shlnsw - - - -def positive_biggerlshr_shlnsw_before := [llvm| -{ -^0(%arg50 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg50, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnsw_after := [llvm| -{ -^0(%arg50 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 - %2 = llvm.lshr %arg50, %0 : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnsw_proof : positive_biggerlshr_shlnsw_before ⊑ positive_biggerlshr_shlnsw_after := by - unfold positive_biggerlshr_shlnsw_before positive_biggerlshr_shlnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnsw - apply positive_biggerlshr_shlnsw_thm - ---END positive_biggerlshr_shlnsw - - - -def positive_biggershl_shlnsw_before := [llvm| -{ -^0(%arg49 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg49, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnsw_after := [llvm| -{ -^0(%arg49 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 - %2 = llvm.shl %arg49, %0 overflow : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ positive_biggershl_shlnsw_after := by - unfold positive_biggershl_shlnsw_before positive_biggershl_shlnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnsw - apply positive_biggershl_shlnsw_thm - ---END positive_biggershl_shlnsw - - - -def positive_samevar_shlnuwnsw_before := [llvm| -{ -^0(%arg47 : i8, %arg48 : i8): - %0 = llvm.lshr %arg47, %arg48 : i8 - %1 = llvm.shl %0, %arg48 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnuwnsw_after := [llvm| -{ -^0(%arg47 : i8, %arg48 : i8): - %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 - %1 = llvm.shl %0, %arg48 overflow : i8 - %2 = llvm.and %1, %arg47 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ positive_samevar_shlnuwnsw_after := by - unfold positive_samevar_shlnuwnsw_before positive_samevar_shlnuwnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnuwnsw - apply positive_samevar_shlnuwnsw_thm - ---END positive_samevar_shlnuwnsw - - - -def positive_sameconst_shlnuwnsw_before := [llvm| -{ -^0(%arg46 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg46, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnuwnsw_after := [llvm| -{ -^0(%arg46 : i8): - %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 - %1 = llvm.and %arg46, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before ⊑ positive_sameconst_shlnuwnsw_after := by - unfold positive_sameconst_shlnuwnsw_before positive_sameconst_shlnuwnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnuwnsw - apply positive_sameconst_shlnuwnsw_thm - ---END positive_sameconst_shlnuwnsw - - - -def positive_biggerlshr_shlnuwnsw_before := [llvm| -{ -^0(%arg45 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg45, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnuwnsw_after := [llvm| -{ -^0(%arg45 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 - %2 = llvm.lshr %arg45, %0 : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnuwnsw_proof : positive_biggerlshr_shlnuwnsw_before ⊑ positive_biggerlshr_shlnuwnsw_after := by - unfold positive_biggerlshr_shlnuwnsw_before positive_biggerlshr_shlnuwnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnuwnsw - apply positive_biggerlshr_shlnuwnsw_thm - ---END positive_biggerlshr_shlnuwnsw - - - -def positive_biggershl_shlnuwnsw_before := [llvm| -{ -^0(%arg44 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg44, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnuwnsw_after := [llvm| -{ -^0(%arg44 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 - %2 = llvm.shl %arg44, %0 overflow : i8 - %3 = llvm.and %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before ⊑ positive_biggershl_shlnuwnsw_after := by - unfold positive_biggershl_shlnuwnsw_before positive_biggershl_shlnuwnsw_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnuwnsw - apply positive_biggershl_shlnuwnsw_thm - ---END positive_biggershl_shlnuwnsw - - - -def positive_samevar_lshrexact_before := [llvm| -{ -^0(%arg42 : i8, %arg43 : i8): - %0 = llvm.lshr %arg42, %arg43 : i8 - %1 = llvm.shl %0, %arg43 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_lshrexact_after := [llvm| -{ -^0(%arg42 : i8, %arg43 : i8): - "llvm.return"(%arg42) : (i8) -> () -} -] -theorem positive_samevar_lshrexact_proof : positive_samevar_lshrexact_before ⊑ positive_samevar_lshrexact_after := by - unfold positive_samevar_lshrexact_before positive_samevar_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_lshrexact - apply positive_samevar_lshrexact_thm - ---END positive_samevar_lshrexact - - - -def positive_sameconst_lshrexact_before := [llvm| -{ -^0(%arg41 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg41, %0 : i8 - %2 = llvm.shl %1, %0 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_lshrexact_after := [llvm| -{ -^0(%arg41 : i8): - "llvm.return"(%arg41) : (i8) -> () -} -] -theorem positive_sameconst_lshrexact_proof : positive_sameconst_lshrexact_before ⊑ positive_sameconst_lshrexact_after := by - unfold positive_sameconst_lshrexact_before positive_sameconst_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_lshrexact - apply positive_sameconst_lshrexact_thm - ---END positive_sameconst_lshrexact - - - -def positive_biggerlshr_lshrexact_before := [llvm| -{ -^0(%arg40 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg40, %0 : i8 - %3 = llvm.shl %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_lshrexact_after := [llvm| -{ -^0(%arg40 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg40, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggerlshr_lshrexact_proof : positive_biggerlshr_lshrexact_before ⊑ positive_biggerlshr_lshrexact_after := by - unfold positive_biggerlshr_lshrexact_before positive_biggerlshr_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_lshrexact - apply positive_biggerlshr_lshrexact_thm - ---END positive_biggerlshr_lshrexact - - - -def positive_biggershl_lshrexact_before := [llvm| -{ -^0(%arg39 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg39, %0 : i8 - %3 = llvm.shl %2, %1 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_lshrexact_after := [llvm| -{ -^0(%arg39 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.shl %arg39, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggershl_lshrexact_proof : positive_biggershl_lshrexact_before ⊑ positive_biggershl_lshrexact_after := by - unfold positive_biggershl_lshrexact_before positive_biggershl_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_lshrexact - apply positive_biggershl_lshrexact_thm - ---END positive_biggershl_lshrexact - - - -def positive_samevar_shlnsw_lshrexact_before := [llvm| -{ -^0(%arg37 : i8, %arg38 : i8): - %0 = llvm.lshr %arg37, %arg38 : i8 - %1 = llvm.shl %0, %arg38 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnsw_lshrexact_after := [llvm| -{ -^0(%arg37 : i8, %arg38 : i8): - "llvm.return"(%arg37) : (i8) -> () -} -] -theorem positive_samevar_shlnsw_lshrexact_proof : positive_samevar_shlnsw_lshrexact_before ⊑ positive_samevar_shlnsw_lshrexact_after := by - unfold positive_samevar_shlnsw_lshrexact_before positive_samevar_shlnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnsw_lshrexact - apply positive_samevar_shlnsw_lshrexact_thm - ---END positive_samevar_shlnsw_lshrexact - - - -def positive_sameconst_shlnsw_lshrexact_before := [llvm| -{ -^0(%arg36 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg36, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnsw_lshrexact_after := [llvm| -{ -^0(%arg36 : i8): - "llvm.return"(%arg36) : (i8) -> () -} -] -theorem positive_sameconst_shlnsw_lshrexact_proof : positive_sameconst_shlnsw_lshrexact_before ⊑ positive_sameconst_shlnsw_lshrexact_after := by - unfold positive_sameconst_shlnsw_lshrexact_before positive_sameconst_shlnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnsw_lshrexact - apply positive_sameconst_shlnsw_lshrexact_thm - ---END positive_sameconst_shlnsw_lshrexact - - - -def positive_biggerlshr_shlnsw_lshrexact_before := [llvm| -{ -^0(%arg35 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg35, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnsw_lshrexact_after := [llvm| -{ -^0(%arg35 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg35, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnsw_lshrexact_proof : positive_biggerlshr_shlnsw_lshrexact_before ⊑ positive_biggerlshr_shlnsw_lshrexact_after := by - unfold positive_biggerlshr_shlnsw_lshrexact_before positive_biggerlshr_shlnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnsw_lshrexact - apply positive_biggerlshr_shlnsw_lshrexact_thm - ---END positive_biggerlshr_shlnsw_lshrexact - - - -def positive_biggershl_shlnsw_lshrexact_before := [llvm| -{ -^0(%arg34 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg34, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnsw_lshrexact_after := [llvm| -{ -^0(%arg34 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.shl %arg34, %0 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggershl_shlnsw_lshrexact_proof : positive_biggershl_shlnsw_lshrexact_before ⊑ positive_biggershl_shlnsw_lshrexact_after := by - unfold positive_biggershl_shlnsw_lshrexact_before positive_biggershl_shlnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnsw_lshrexact - apply positive_biggershl_shlnsw_lshrexact_thm - ---END positive_biggershl_shlnsw_lshrexact - - - -def positive_samevar_shlnuw_lshrexact_before := [llvm| -{ -^0(%arg32 : i8, %arg33 : i8): - %0 = llvm.lshr %arg32, %arg33 : i8 - %1 = llvm.shl %0, %arg33 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnuw_lshrexact_after := [llvm| -{ -^0(%arg32 : i8, %arg33 : i8): - "llvm.return"(%arg32) : (i8) -> () -} -] -theorem positive_samevar_shlnuw_lshrexact_proof : positive_samevar_shlnuw_lshrexact_before ⊑ positive_samevar_shlnuw_lshrexact_after := by - unfold positive_samevar_shlnuw_lshrexact_before positive_samevar_shlnuw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnuw_lshrexact - apply positive_samevar_shlnuw_lshrexact_thm - ---END positive_samevar_shlnuw_lshrexact - - - -def positive_sameconst_shlnuw_lshrexact_before := [llvm| -{ -^0(%arg31 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg31, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnuw_lshrexact_after := [llvm| -{ -^0(%arg31 : i8): - "llvm.return"(%arg31) : (i8) -> () -} -] -theorem positive_sameconst_shlnuw_lshrexact_proof : positive_sameconst_shlnuw_lshrexact_before ⊑ positive_sameconst_shlnuw_lshrexact_after := by - unfold positive_sameconst_shlnuw_lshrexact_before positive_sameconst_shlnuw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnuw_lshrexact - apply positive_sameconst_shlnuw_lshrexact_thm - ---END positive_sameconst_shlnuw_lshrexact - - - -def positive_biggerlshr_shlnuw_lshrexact_before := [llvm| -{ -^0(%arg30 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg30, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnuw_lshrexact_after := [llvm| -{ -^0(%arg30 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg30, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnuw_lshrexact_proof : positive_biggerlshr_shlnuw_lshrexact_before ⊑ positive_biggerlshr_shlnuw_lshrexact_after := by - unfold positive_biggerlshr_shlnuw_lshrexact_before positive_biggerlshr_shlnuw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnuw_lshrexact - apply positive_biggerlshr_shlnuw_lshrexact_thm - ---END positive_biggerlshr_shlnuw_lshrexact - - - -def positive_biggershl_shlnuw_lshrexact_before := [llvm| -{ -^0(%arg29 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg29, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnuw_lshrexact_after := [llvm| -{ -^0(%arg29 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.shl %arg29, %0 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggershl_shlnuw_lshrexact_proof : positive_biggershl_shlnuw_lshrexact_before ⊑ positive_biggershl_shlnuw_lshrexact_after := by - unfold positive_biggershl_shlnuw_lshrexact_before positive_biggershl_shlnuw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnuw_lshrexact - apply positive_biggershl_shlnuw_lshrexact_thm - ---END positive_biggershl_shlnuw_lshrexact - - - -def positive_samevar_shlnuwnsw_lshrexact_before := [llvm| -{ -^0(%arg27 : i8, %arg28 : i8): - %0 = llvm.lshr %arg27, %arg28 : i8 - %1 = llvm.shl %0, %arg28 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -def positive_samevar_shlnuwnsw_lshrexact_after := [llvm| -{ -^0(%arg27 : i8, %arg28 : i8): - "llvm.return"(%arg27) : (i8) -> () -} -] -theorem positive_samevar_shlnuwnsw_lshrexact_proof : positive_samevar_shlnuwnsw_lshrexact_before ⊑ positive_samevar_shlnuwnsw_lshrexact_after := by - unfold positive_samevar_shlnuwnsw_lshrexact_before positive_samevar_shlnuwnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_samevar_shlnuwnsw_lshrexact - apply positive_samevar_shlnuwnsw_lshrexact_thm - ---END positive_samevar_shlnuwnsw_lshrexact - - - -def positive_sameconst_shlnuwnsw_lshrexact_before := [llvm| -{ -^0(%arg26 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg26, %0 : i8 - %2 = llvm.shl %1, %0 overflow : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def positive_sameconst_shlnuwnsw_lshrexact_after := [llvm| -{ -^0(%arg26 : i8): - "llvm.return"(%arg26) : (i8) -> () -} -] -theorem positive_sameconst_shlnuwnsw_lshrexact_proof : positive_sameconst_shlnuwnsw_lshrexact_before ⊑ positive_sameconst_shlnuwnsw_lshrexact_after := by - unfold positive_sameconst_shlnuwnsw_lshrexact_before positive_sameconst_shlnuwnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_sameconst_shlnuwnsw_lshrexact - apply positive_sameconst_shlnuwnsw_lshrexact_thm - ---END positive_sameconst_shlnuwnsw_lshrexact - - - -def positive_biggerlshr_shlnuwnsw_lshrexact_before := [llvm| -{ -^0(%arg25 : i8): - %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %2 = llvm.lshr %arg25, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggerlshr_shlnuwnsw_lshrexact_after := [llvm| -{ -^0(%arg25 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.lshr %arg25, %0 : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggerlshr_shlnuwnsw_lshrexact_proof : positive_biggerlshr_shlnuwnsw_lshrexact_before ⊑ positive_biggerlshr_shlnuwnsw_lshrexact_after := by - unfold positive_biggerlshr_shlnuwnsw_lshrexact_before positive_biggerlshr_shlnuwnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggerlshr_shlnuwnsw_lshrexact - apply positive_biggerlshr_shlnuwnsw_lshrexact_thm - ---END positive_biggerlshr_shlnuwnsw_lshrexact - - - -def positive_biggershl_shlnuwnsw_lshrexact_before := [llvm| -{ -^0(%arg24 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 - %2 = llvm.lshr %arg24, %0 : i8 - %3 = llvm.shl %2, %1 overflow : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def positive_biggershl_shlnuwnsw_lshrexact_after := [llvm| -{ -^0(%arg24 : i8): - %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 - %1 = llvm.shl %arg24, %0 overflow : i8 - "llvm.return"(%1) : (i8) -> () -} -] -theorem positive_biggershl_shlnuwnsw_lshrexact_proof : positive_biggershl_shlnuwnsw_lshrexact_before ⊑ positive_biggershl_shlnuwnsw_lshrexact_after := by - unfold positive_biggershl_shlnuwnsw_lshrexact_before positive_biggershl_shlnuwnsw_lshrexact_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN positive_biggershl_shlnuwnsw_lshrexact - apply positive_biggershl_shlnuwnsw_lshrexact_thm - ---END positive_biggershl_shlnuwnsw_lshrexact - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean deleted file mode 100644 index 5594096e6..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean +++ /dev/null @@ -1,138 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gcanonicalizehlshrhshlhtohmasking_proof -theorem positive_samevar_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - (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)).bind - fun a => some (a &&& x_1) := sorry - -theorem positive_biggerlshr_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 &&& 24#8 := sorry - -theorem positive_biggershl_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 &&& 192#8 := sorry - -theorem positive_samevar_shlnuw_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - (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)).bind - fun a => some (a &&& x_1) := sorry - -theorem positive_sameconst_shlnuw_thm (x : BitVec 8) : - (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry - -theorem positive_biggerlshr_shlnuw_thm (x : BitVec 8) : - (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry - -theorem positive_biggershl_shlnuw_thm (x : BitVec 8) : - (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => some (a &&& 192#8) := sorry - -theorem positive_samevar_shlnsw_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - (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)).bind - fun a => some (a &&& x_1) := sorry - -theorem positive_sameconst_shlnsw_thm (x : BitVec 8) : - (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry - -theorem positive_biggerlshr_shlnsw_thm (x : BitVec 8) : - (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry - -theorem positive_biggershl_shlnsw_thm (x : BitVec 8) : - (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => - some (a &&& 64#8) := sorry - -theorem positive_samevar_shlnuwnsw_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if (a <<< x.toNat).sshiftRight x.toNat = a then none - else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - (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)).bind - fun a => some (a &&& x_1) := sorry - -theorem positive_sameconst_shlnuwnsw_thm (x : BitVec 8) : - (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none - else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ - some (x &&& 248#8) := sorry - -theorem positive_biggerlshr_shlnuwnsw_thm (x : BitVec 8) : - (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none - else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ - some (x >>> 3 &&& 24#8) := sorry - -theorem positive_biggershl_shlnuwnsw_thm (x : BitVec 8) : - (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none - else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun a => - some (a &&& 64#8) := sorry - -theorem positive_samevar_lshrexact_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - some x_1 := sorry - -theorem positive_sameconst_lshrexact_thm (x : BitVec 8) : x &&& 248#8 = x := sorry - -theorem positive_biggerlshr_lshrexact_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 := sorry - -theorem positive_biggershl_lshrexact_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 := sorry - -theorem positive_samevar_shlnsw_lshrexact_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - some x_1 := sorry - -theorem positive_sameconst_shlnsw_lshrexact_thm (x : BitVec 8) : - (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry - -theorem positive_biggerlshr_shlnsw_lshrexact_thm (x : BitVec 8) : - (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry - -theorem positive_biggershl_shlnsw_lshrexact_thm (x : BitVec 8) : - (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry - -theorem positive_samevar_shlnuw_lshrexact_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - some x_1 := sorry - -theorem positive_sameconst_shlnuw_lshrexact_thm (x : BitVec 8) : - (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry - -theorem positive_biggerlshr_shlnuw_lshrexact_thm (x : BitVec 8) : - (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry - -theorem positive_biggershl_shlnuw_lshrexact_thm (x : BitVec 8) : - (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry - -theorem positive_samevar_shlnuwnsw_lshrexact_thm (x x_1 : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => - if (a <<< x.toNat).sshiftRight x.toNat = a then none - else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ - some x_1 := sorry - -theorem positive_sameconst_shlnuwnsw_lshrexact_thm (x : BitVec 8) : - (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none - else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ - some x := sorry - -theorem positive_biggerlshr_shlnuwnsw_lshrexact_thm (x : BitVec 8) : - (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none - else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ - some (x >>> 3) := sorry - -theorem positive_biggershl_shlnuwnsw_lshrexact_thm (x : BitVec 8) : - (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none - else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ - if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean index 1966b2573..e303ae261 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean @@ -35,6 +35,7 @@ theorem factorize_proof : factorize_before ⊑ factorize_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -129,6 +132,7 @@ theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -161,6 +165,7 @@ theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -194,6 +199,7 @@ theorem expand_proof : expand_before ⊑ expand_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean index 842af1449..19544eb92 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean @@ -34,6 +34,7 @@ theorem t7_proof : t7_before ⊑ t7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem t10_proof : t10_before ⊑ t10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem sdiv_mul_shl_nsw_proof : sdiv_mul_shl_nsw_before ⊑ sdiv_mul_shl_nsw_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -158,6 +162,7 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -190,6 +195,7 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -222,6 +228,7 @@ theorem sdiv_shl_pair1_proof : sdiv_shl_pair1_before ⊑ sdiv_shl_pair1_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -254,6 +261,7 @@ theorem sdiv_shl_pair2_proof : sdiv_shl_pair2_before ⊑ sdiv_shl_pair2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -286,6 +294,7 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean index 4dad1db4a..c752ccbf8 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift_proof.lean @@ -26,9 +26,9 @@ theorem sdiv_mul_shl_nsw_thm (x x_1 x_2 : BitVec 5) : fun a => (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none else if 5#5 ≤ x then none else some (x_2 <<< x.toNat)).bind - fun a_1 => if a_1 = 0#5 ∨ a = intMin 5 ∧ a_1 = 31#5 then none else some (a.sdiv a_1)) ⊑ - (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 a => - if a = 0#5 ∨ x_1 = intMin 5 ∧ a = 31#5 then none else some (x_1.sdiv a) := sorry + fun y' => if y' = 0#5 ∨ a = intMin 5 ∧ y' = 31#5 then none else some (a.sdiv y')) ⊑ + (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_1 = intMin 5 ∧ y' = 31#5 then none else some (x_1.sdiv y') := sorry theorem sdiv_mul_shl_nsw_exact_commute1_thm (x x_1 x_2 : BitVec 5) : ((if @@ -39,9 +39,9 @@ theorem sdiv_mul_shl_nsw_exact_commute1_thm (x x_1 x_2 : BitVec 5) : fun a => (if (x_1 <<< x.toNat).sshiftRight x.toNat = x_1 then none else if 5#5 ≤ x then none else some (x_1 <<< x.toNat)).bind - fun a_1 => if a_1 = 0#5 ∨ a = intMin 5 ∧ a_1 = 31#5 then none else some (a.sdiv a_1)) ⊑ - (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 a => - if a = 0#5 ∨ x_2 = intMin 5 ∧ a = 31#5 then none else some (x_2.sdiv a) := sorry + fun y' => if y' = 0#5 ∨ a = intMin 5 ∧ y' = 31#5 then none else some (a.sdiv y')) ⊑ + (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 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 @@ -50,13 +50,13 @@ theorem sdiv_shl_shl_nsw2_nuw_thm (x x_1 x_2 : BitVec 8) : (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none else if x <<< x_1.toNat >>> x_1.toNat = x then none else if 8#8 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => if a_1 = 0#8 ∨ a = intMin 8 ∧ a_1 = 255#8 then none else some (a.sdiv a_1)) ⊑ + 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 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 a_1 => - if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + (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 sdiv_shl_pair1_thm (x x_1 x_2 : BitVec 32) : @@ -66,7 +66,7 @@ theorem sdiv_shl_pair1_thm (x x_1 x_2 : BitVec 32) : (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 a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + fun y' => if y' = 0#32 ∨ a = intMin 32 ∧ y' = 4294967295#32 then none else some (a.sdiv 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 @@ -81,7 +81,7 @@ theorem sdiv_shl_pair2_thm (x x_1 x_2 : BitVec 32) : fun a => (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind - fun a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + fun y' => if y' = 0#32 ∨ a = intMin 32 ∧ y' = 4294967295#32 then none else some (a.sdiv 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 @@ -94,7 +94,7 @@ theorem sdiv_shl_pair3_thm (x x_1 x_2 : BitVec 32) : fun a => (if (x_2 <<< x.toNat).sshiftRight x.toNat = x_2 then none else if 32#32 ≤ x then none else some (x_2 <<< x.toNat)).bind - fun a_1 => if a_1 = 0#32 ∨ a = intMin 32 ∧ a_1 = 4294967295#32 then none else some (a.sdiv a_1)) ⊑ + fun y' => if y' = 0#32 ∨ a = intMin 32 ∧ y' = 4294967295#32 then none else some (a.sdiv 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/gearly_constfold_changes_IR.lean b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean deleted file mode 100644 index 5a4e77b7b..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean +++ /dev/null @@ -1,46 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gearly_constfold_changes_IR_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 gearly_constfold_changes_IR_statements - -def foo_before := [llvm| -{ -^0(%arg0 : i32): - %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 - %2 = llvm.or %0, %1 : i32 - %3 = llvm.and %arg0, %2 : i32 - "llvm.return"(%3) : (i32) -> () -} -] -def foo_after := [llvm| -{ -^0(%arg0 : i32): - %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 - %1 = llvm.and %arg0, %0 : i32 - "llvm.return"(%1) : (i32) -> () -} -] -theorem foo_proof : foo_before ⊑ foo_after := by - unfold foo_before foo_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN foo - all_goals (try extract_goal ; sorry) - ---END foo - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gexact.lean b/SSA/Projects/InstCombine/tests/proofs/gexact.lean new file mode 100644 index 000000000..11b31de5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gexact.lean @@ -0,0 +1,176 @@ +import SSA.Projects.InstCombine.tests.proofs.gexact_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 gexact_statements + +def sdiv2_before := [llvm| +{ +^0(%arg39 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = llvm.sdiv %arg39, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def sdiv2_after := [llvm| +{ +^0(%arg39 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.ashr %arg39, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sdiv2_proof : sdiv2_before ⊑ sdiv2_after := by + unfold sdiv2_before sdiv2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv2 + apply sdiv2_thm + ---END sdiv2 + + + +def sdiv4_before := [llvm| +{ +^0(%arg36 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = llvm.sdiv %arg36, %0 : i32 + %2 = llvm.mul %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sdiv4_after := [llvm| +{ +^0(%arg36 : i32): + "llvm.return"(%arg36) : (i32) -> () +} +] +theorem sdiv4_proof : sdiv4_before ⊑ sdiv4_after := by + unfold sdiv4_before sdiv4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv4 + apply sdiv4_thm + ---END sdiv4 + + + +def sdiv6_before := [llvm| +{ +^0(%arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %2 = llvm.sdiv %arg34, %0 : i32 + %3 = llvm.mul %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sdiv6_after := [llvm| +{ +^0(%arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg34 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by + unfold sdiv6_before sdiv6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sdiv6 + apply sdiv6_thm + ---END sdiv6 + + + +def mul_of_sdiv_before := [llvm| +{ +^0(%arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %2 = llvm.sdiv %arg5, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_sdiv_after := [llvm| +{ +^0(%arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.ashr %arg5, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by + unfold mul_of_sdiv_before mul_of_sdiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_of_sdiv + apply mul_of_sdiv_thm + ---END mul_of_sdiv + + + +def mul_of_sdiv_fail_ub_before := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -6 : i8}> : () -> i8 + %2 = llvm.sdiv %arg1, %0 : i8 + %3 = llvm.mul %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def mul_of_sdiv_fail_ub_after := [llvm| +{ +^0(%arg1 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg1 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem mul_of_sdiv_fail_ub_proof : mul_of_sdiv_fail_ub_before ⊑ mul_of_sdiv_fail_ub_after := by + unfold mul_of_sdiv_fail_ub_before mul_of_sdiv_fail_ub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_of_sdiv_fail_ub + apply mul_of_sdiv_fail_ub_thm + ---END mul_of_sdiv_fail_ub + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean new file mode 100644 index 000000000..96c0ffc1f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gexact_proof.lean @@ -0,0 +1,19 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gexact_proof +theorem sdiv2_thm (x : BitVec 32) : x.sdiv 8#32 = x.sshiftRight 3 := sorry + +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 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_sdiv_fail_ub_thm (x : BitVec 8) : x.sdiv 6#8 * 250#8 = -x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean deleted file mode 100644 index 842620e35..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean +++ /dev/null @@ -1,46 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gfoldhsubhofhnothtohinchofhadd_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 gfoldhsubhofhnothtohinchofhadd_statements - -def p0_scalar_before := [llvm| -{ -^0(%arg14 : i32, %arg15 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg14, %0 : i32 - %2 = llvm.sub %arg15, %1 : i32 - "llvm.return"(%2) : (i32) -> () -} -] -def p0_scalar_after := [llvm| -{ -^0(%arg14 : i32, %arg15 : i32): - %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 - %1 = llvm.add %arg14, %0 : i32 - %2 = llvm.add %1, %arg15 : i32 - "llvm.return"(%2) : (i32) -> () -} -] -theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by - unfold p0_scalar_before p0_scalar_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN p0_scalar - apply p0_scalar_thm - ---END p0_scalar - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean deleted file mode 100644 index fd9e11c7e..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean +++ /dev/null @@ -1,8 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gfoldhsubhofhnothtohinchofhadd_proof -theorem p0_scalar_thm (x x_1 : BitVec 32) : x_1 - (x ^^^ 4294967295#32) = x + 1#32 + x_1 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean index f8270fd2d..d7b02ccd6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean @@ -39,6 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem t9_nocse_proof : t9_nocse_before ⊑ t9_nocse_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -150,6 +153,7 @@ theorem t17_nocse_mismatching_x_proof : t17_nocse_mismatching_x_before ⊑ t17_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean index e5dd0f25c..12bfa8d2a 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit_proof.lean @@ -6,27 +6,27 @@ open BitVec section ggethlowbitmaskhuptohandhincludinghbit_proof theorem t0_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 a_1 => some (a + 255#8 ||| a_1)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun y' => some (a + 255#8 ||| y')) ⊑ if 8#8 ≤ 7#8 - x then none else some (255#8 >>> ((256 - x.toNat + 7) % 256)) := sorry theorem t1_thm (x : BitVec 16) : (Option.bind (if 16#16 ≤ x then none else some (1#16 <<< x.toNat)) fun a => - Option.bind (if 16#16 ≤ x then none else some (1#16 <<< x.toNat)) fun a_1 => some (a + 65535#16 ||| a_1)) ⊑ + Option.bind (if 16#16 ≤ x then none else some (1#16 <<< x.toNat)) fun y' => some (a + 65535#16 ||| y')) ⊑ if 16#16 ≤ 15#16 - x then none else some (65535#16 >>> ((65536 - x.toNat + 15) % 65536)) := sorry theorem t9_nocse_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 a_1 => some (a + 255#8 ||| a_1)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun y' => some (a + 255#8 ||| y')) ⊑ (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 (255#8 <<< x.toNat).sshiftRight x.toNat = 255#8 then none else if 8#8 ≤ x then none else some (255#8 <<< x.toNat)).bind - fun a_1 => some (a ||| a_1 ^^^ 255#8) := sorry + fun x => some (a ||| x ^^^ 255#8) := sorry theorem t17_nocse_mismatching_x_thm (x x_1 : BitVec 8) : (Option.bind (if 8#8 ≤ x_1 then none else some (1#8 <<< x_1.toNat)) fun a => - Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun a_1 => some (a + 255#8 ||| a_1)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (1#8 <<< x.toNat)) fun y' => some (a + 255#8 ||| y')) ⊑ (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 (255#8 <<< x_1.toNat).sshiftRight x_1.toNat = 255#8 then none else if 8#8 ≤ x_1 then none else some (255#8 <<< x_1.toNat)).bind - fun a_1 => some (a ||| a_1 ^^^ 255#8) := sorry + fun x => some (a ||| x ^^^ 255#8) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean new file mode 100644 index 000000000..0d8781df7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean @@ -0,0 +1,181 @@ +import SSA.Projects.InstCombine.tests.proofs.ghighhbithsignmask_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 ghighhbithsignmask_statements + +def t0_before := [llvm| +{ +^0(%arg10 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.lshr %arg10, %0 : i64 + %3 = llvm.sub %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg10 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = llvm.ashr %arg10, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t0_exact_before := [llvm| +{ +^0(%arg9 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.lshr %arg9, %0 : i64 + %3 = llvm.sub %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def t0_exact_after := [llvm| +{ +^0(%arg9 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = llvm.ashr %arg9, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem t0_exact_proof : t0_exact_before ⊑ t0_exact_after := by + unfold t0_exact_before t0_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0_exact + apply t0_exact_thm + ---END t0_exact + + + +def t2_before := [llvm| +{ +^0(%arg8 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.ashr %arg8, %0 : i64 + %3 = llvm.sub %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def t2_after := [llvm| +{ +^0(%arg8 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = llvm.lshr %arg8, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem t2_proof : t2_before ⊑ t2_after := by + unfold t2_before t2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t2 + apply t2_thm + ---END t2 + + + +def t3_exact_before := [llvm| +{ +^0(%arg7 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.ashr %arg7, %0 : i64 + %3 = llvm.sub %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def t3_exact_after := [llvm| +{ +^0(%arg7 : i64): + %0 = "llvm.mlir.constant"() <{value = 63 : i64}> : () -> i64 + %1 = llvm.lshr %arg7, %0 : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem t3_exact_proof : t3_exact_before ⊑ t3_exact_after := by + unfold t3_exact_before t3_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t3_exact + apply t3_exact_thm + ---END t3_exact + + + +def n9_before := [llvm| +{ +^0(%arg1 : i64): + %0 = "llvm.mlir.constant"() <{value = 62 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.lshr %arg1, %0 : i64 + %3 = llvm.sub %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def n9_after := [llvm| +{ +^0(%arg1 : i64): + %0 = "llvm.mlir.constant"() <{value = 62 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 0 : i64}> : () -> i64 + %2 = llvm.lshr %arg1, %0 : i64 + %3 = llvm.sub %1, %2 overflow : i64 + "llvm.return"(%3) : (i64) -> () +} +] +theorem n9_proof : n9_before ⊑ n9_after := by + unfold n9_before n9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN n9 + apply n9_thm + ---END n9 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask_proof.lean new file mode 100644 index 000000000..226a5e086 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask_proof.lean @@ -0,0 +1,18 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghighhbithsignmask_proof +theorem t0_thm (x : BitVec 64) : -x >>> 63 = x.sshiftRight 63 := sorry + +theorem t0_exact_thm (x : BitVec 64) : -x >>> 63 = x.sshiftRight 63 := sorry + +theorem t2_thm (x : BitVec 64) : -x.sshiftRight 63 = x >>> 63 := sorry + +theorem t3_exact_thm (x : BitVec 64) : -x.sshiftRight 63 = x >>> 63 := sorry + +theorem n9_thm (x : BitVec 64) : + some (-x >>> 62) ⊑ + if (-signExtend 65 (x >>> 62)).msb = (-signExtend 65 (x >>> 62)).getMsbD 1 then some (-x >>> 62) else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean index 0af255b92..b8e3f3a3d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean @@ -39,6 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -72,6 +73,7 @@ theorem n7_proof : n7_before ⊑ n7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean new file mode 100644 index 000000000..323bd26f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean @@ -0,0 +1,80 @@ +import SSA.Projects.InstCombine.tests.proofs.ghoisthnegationhouthofhbiashcalculationhwithhconstant_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 ghoisthnegationhouthofhbiashcalculationhwithhconstant_statements + +def t0_before := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.and %arg7, %0 : i8 + %2 = llvm.sub %1, %arg7 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = -43 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.and %arg7, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def n5_before := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.and %arg2, %0 : i8 + %2 = llvm.sub %arg2, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def n5_after := [llvm| +{ +^0(%arg2 : i8): + %0 = "llvm.mlir.constant"() <{value = -43 : i8}> : () -> i8 + %1 = llvm.and %arg2, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem n5_proof : n5_before ⊑ n5_after := by + unfold n5_before n5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN n5 + apply n5_thm + ---END n5 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean new file mode 100644 index 000000000..f61ea0f0e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghoisthnegationhouthofhbiashcalculationhwithhconstant_proof +theorem t0_thm (x : BitVec 8) : (x &&& 42#8) - x = -(x &&& 213#8) := sorry + +theorem n5_thm (x : BitVec 8) : x - (x &&& 42#8) = x &&& 213#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean index 3a5c2e508..79c73784a 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean @@ -36,6 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean index 48c30e8bc..96e6cbaec 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand_proof.lean @@ -6,9 +6,9 @@ open BitVec section ghoisthnothfromhashrhoperand_proof theorem t0_thm (x x_1 : BitVec 8) : (if 8#8 ≤ x then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ - Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry + Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8) := sorry theorem t1_thm (x x_1 : BitVec 8) : (if 8#8 ≤ x then none else some ((x_1 ^^^ 255#8).sshiftRight x.toNat)) ⊑ - Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun a => some (a ^^^ 255#8) := sorry + Option.bind (if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat)) fun x' => some (x' ^^^ 255#8) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean deleted file mode 100644 index b8647a975..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean +++ /dev/null @@ -1,46 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.ghoisthxorhbyhconstanthfromhxorhbyhvalue_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 ghoisthxorhbyhconstanthfromhxorhbyhvalue_statements - -def t0_scalar_before := [llvm| -{ -^0(%arg10 : i8, %arg11 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.xor %arg10, %0 : i8 - %2 = llvm.xor %1, %arg11 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -def t0_scalar_after := [llvm| -{ -^0(%arg10 : i8, %arg11 : i8): - %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 - %1 = llvm.xor %arg10, %arg11 : i8 - %2 = llvm.xor %1, %0 : i8 - "llvm.return"(%2) : (i8) -> () -} -] -theorem t0_scalar_proof : t0_scalar_before ⊑ t0_scalar_after := by - unfold t0_scalar_before t0_scalar_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN t0_scalar - apply t0_scalar_thm - ---END t0_scalar - - diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean deleted file mode 100644 index 94f29eb56..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean +++ /dev/null @@ -1,8 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof -theorem t0_scalar_thm (x x_1 : BitVec 8) : x_1 ^^^ 42#8 ^^^ x = x_1 ^^^ x ^^^ 42#8 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean deleted file mode 100644 index 73d51dc58..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean +++ /dev/null @@ -1,48 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gicmphmul_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 gicmphmul_statements - -def mul_of_pow2s_before := [llvm| -{ -^0(%arg79 : i32, %arg80 : i32): - %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 - %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 - %2 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - %3 = llvm.and %arg79, %0 : i32 - %4 = llvm.and %arg80, %1 : i32 - %5 = llvm.mul %3, %4 : i32 - %6 = llvm.or %5, %2 : i32 - "llvm.return"(%6) : (i32) -> () -} -] -def mul_of_pow2s_after := [llvm| -{ -^0(%arg79 : i32, %arg80 : i32): - %0 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 - "llvm.return"(%0) : (i32) -> () -} -] -theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by - unfold mul_of_pow2s_before mul_of_pow2s_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN mul_of_pow2s - apply mul_of_pow2s_thm - ---END mul_of_pow2s - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean deleted file mode 100644 index 232e6e4e4..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean +++ /dev/null @@ -1,8 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gicmphmul_proof -theorem mul_of_pow2s_thm (x x_1 : BitVec 32) : (x_1 &&& 8#32) * (x &&& 16#32) ||| 128#32 = 128#32 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean new file mode 100644 index 000000000..6a18bc5f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean @@ -0,0 +1,82 @@ +import SSA.Projects.InstCombine.tests.proofs.glowhbithsplat_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 glowhbithsplat_statements + +def t0_before := [llvm| +{ +^0(%arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.shl %arg12, %0 : i8 + %2 = llvm.ashr %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.and %arg12, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t1_otherbitwidth_before := [llvm| +{ +^0(%arg11 : i16): + %0 = "llvm.mlir.constant"() <{value = 15 : i16}> : () -> i16 + %1 = llvm.shl %arg11, %0 : i16 + %2 = llvm.ashr %1, %0 : i16 + "llvm.return"(%2) : (i16) -> () +} +] +def t1_otherbitwidth_after := [llvm| +{ +^0(%arg11 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 0 : i16}> : () -> i16 + %2 = llvm.and %arg11, %0 : i16 + %3 = llvm.sub %1, %2 overflow : i16 + "llvm.return"(%3) : (i16) -> () +} +] +theorem t1_otherbitwidth_proof : t1_otherbitwidth_before ⊑ t1_otherbitwidth_after := by + unfold t1_otherbitwidth_before t1_otherbitwidth_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t1_otherbitwidth + apply t1_otherbitwidth_thm + ---END t1_otherbitwidth + + diff --git a/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat_proof.lean b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat_proof.lean new file mode 100644 index 000000000..41f52b734 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat_proof.lean @@ -0,0 +1,16 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section glowhbithsplat_proof +theorem t0_thm (x : BitVec 8) : + some ((x <<< 7).sshiftRight 7) ⊑ + if (-signExtend 9 (x &&& 1#8)).msb = (-signExtend 9 (x &&& 1#8)).getMsbD 1 then some (-(x &&& 1#8)) + else none := sorry + +theorem t1_otherbitwidth_thm (x : BitVec 16) : + some ((x <<< 15).sshiftRight 15) ⊑ + if (-signExtend 17 (x &&& 1#16)).msb = (-signExtend 17 (x &&& 1#16)).getMsbD 1 then some (-(x &&& 1#16)) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/glshr.lean b/SSA/Projects/InstCombine/tests/proofs/glshr.lean new file mode 100644 index 000000000..d4e45f9b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/glshr.lean @@ -0,0 +1,730 @@ +import SSA.Projects.InstCombine.tests.proofs.glshr_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 glshr_statements + +def lshr_exact_before := [llvm| +{ +^0(%arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = llvm.shl %arg183, %0 : i8 + %3 = llvm.add %2, %1 : i8 + %4 = llvm.lshr %3, %0 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def lshr_exact_after := [llvm| +{ +^0(%arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 63 : i8}> : () -> i8 + %2 = llvm.add %arg183, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem lshr_exact_proof : lshr_exact_before ⊑ lshr_exact_after := by + unfold lshr_exact_before lshr_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN lshr_exact + apply lshr_exact_thm + ---END lshr_exact + + + +def shl_add_before := [llvm| +{ +^0(%arg179 : i8, %arg180 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = llvm.shl %arg179, %0 : i8 + %2 = llvm.add %1, %arg180 : i8 + %3 = llvm.lshr %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_add_after := [llvm| +{ +^0(%arg179 : i8, %arg180 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 63 : i8}> : () -> i8 + %2 = llvm.lshr %arg180, %0 : i8 + %3 = llvm.add %2, %arg179 : i8 + %4 = llvm.and %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by + unfold shl_add_before shl_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add + apply shl_add_thm + ---END shl_add + + + +def mul_splat_fold_before := [llvm| +{ +^0(%arg161 : i32): + %0 = "llvm.mlir.constant"() <{value = 65537 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = llvm.mul %arg161, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def mul_splat_fold_after := [llvm| +{ +^0(%arg161 : i32): + "llvm.return"(%arg161) : (i32) -> () +} +] +theorem mul_splat_fold_proof : mul_splat_fold_before ⊑ mul_splat_fold_after := by + unfold mul_splat_fold_before mul_splat_fold_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_splat_fold + apply mul_splat_fold_thm + ---END mul_splat_fold + + + +def shl_add_lshr_flag_preservation_before := [llvm| +{ +^0(%arg157 : i32, %arg158 : i32, %arg159 : i32): + %0 = llvm.shl %arg157, %arg158 overflow : i32 + %1 = llvm.add %0, %arg159 overflow : i32 + %2 = llvm.lshr %1, %arg158 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_add_lshr_flag_preservation_after := [llvm| +{ +^0(%arg157 : i32, %arg158 : i32, %arg159 : i32): + %0 = llvm.lshr %arg159, %arg158 : i32 + %1 = llvm.add %0, %arg157 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_add_lshr_flag_preservation_proof : shl_add_lshr_flag_preservation_before ⊑ shl_add_lshr_flag_preservation_after := by + unfold shl_add_lshr_flag_preservation_before shl_add_lshr_flag_preservation_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_lshr_flag_preservation + apply shl_add_lshr_flag_preservation_thm + ---END shl_add_lshr_flag_preservation + + + +def shl_add_lshr_before := [llvm| +{ +^0(%arg154 : i32, %arg155 : i32, %arg156 : i32): + %0 = llvm.shl %arg154, %arg155 overflow : i32 + %1 = llvm.add %0, %arg156 overflow : i32 + %2 = llvm.lshr %1, %arg155 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_add_lshr_after := [llvm| +{ +^0(%arg154 : i32, %arg155 : i32, %arg156 : i32): + %0 = llvm.lshr %arg156, %arg155 : i32 + %1 = llvm.add %0, %arg154 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_add_lshr_proof : shl_add_lshr_before ⊑ shl_add_lshr_after := by + unfold shl_add_lshr_before shl_add_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_lshr + apply shl_add_lshr_thm + ---END shl_add_lshr + + + +def shl_add_lshr_comm_before := [llvm| +{ +^0(%arg151 : i32, %arg152 : i32, %arg153 : i32): + %0 = llvm.shl %arg151, %arg152 overflow : i32 + %1 = llvm.mul %arg153, %arg153 : i32 + %2 = llvm.add %1, %0 overflow : i32 + %3 = llvm.lshr %2, %arg152 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_add_lshr_comm_after := [llvm| +{ +^0(%arg151 : i32, %arg152 : i32, %arg153 : i32): + %0 = llvm.mul %arg153, %arg153 : i32 + %1 = llvm.lshr %0, %arg152 : i32 + %2 = llvm.add %1, %arg151 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_add_lshr_comm_proof : shl_add_lshr_comm_before ⊑ shl_add_lshr_comm_after := by + unfold shl_add_lshr_comm_before shl_add_lshr_comm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_lshr_comm + apply shl_add_lshr_comm_thm + ---END shl_add_lshr_comm + + + +def shl_sub_lshr_before := [llvm| +{ +^0(%arg139 : i32, %arg140 : i32, %arg141 : i32): + %0 = llvm.shl %arg139, %arg140 overflow : i32 + %1 = llvm.sub %0, %arg141 overflow : i32 + %2 = llvm.lshr %1, %arg140 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_sub_lshr_after := [llvm| +{ +^0(%arg139 : i32, %arg140 : i32, %arg141 : i32): + %0 = llvm.lshr %arg141, %arg140 : i32 + %1 = llvm.sub %arg139, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_sub_lshr_proof : shl_sub_lshr_before ⊑ shl_sub_lshr_after := by + unfold shl_sub_lshr_before shl_sub_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_sub_lshr + apply shl_sub_lshr_thm + ---END shl_sub_lshr + + + +def shl_sub_lshr_reverse_before := [llvm| +{ +^0(%arg136 : i32, %arg137 : i32, %arg138 : i32): + %0 = llvm.shl %arg136, %arg137 overflow : i32 + %1 = llvm.sub %arg138, %0 overflow : i32 + %2 = llvm.lshr %1, %arg137 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_sub_lshr_reverse_after := [llvm| +{ +^0(%arg136 : i32, %arg137 : i32, %arg138 : i32): + %0 = llvm.lshr %arg138, %arg137 : i32 + %1 = llvm.sub %0, %arg136 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_sub_lshr_reverse_proof : shl_sub_lshr_reverse_before ⊑ shl_sub_lshr_reverse_after := by + unfold shl_sub_lshr_reverse_before shl_sub_lshr_reverse_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_sub_lshr_reverse + apply shl_sub_lshr_reverse_thm + ---END shl_sub_lshr_reverse + + + +def shl_sub_lshr_reverse_no_nsw_before := [llvm| +{ +^0(%arg133 : i32, %arg134 : i32, %arg135 : i32): + %0 = llvm.shl %arg133, %arg134 overflow : i32 + %1 = llvm.sub %arg135, %0 overflow : i32 + %2 = llvm.lshr %1, %arg134 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_sub_lshr_reverse_no_nsw_after := [llvm| +{ +^0(%arg133 : i32, %arg134 : i32, %arg135 : i32): + %0 = llvm.lshr %arg135, %arg134 : i32 + %1 = llvm.sub %0, %arg133 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_sub_lshr_reverse_no_nsw_proof : shl_sub_lshr_reverse_no_nsw_before ⊑ shl_sub_lshr_reverse_no_nsw_after := by + unfold shl_sub_lshr_reverse_no_nsw_before shl_sub_lshr_reverse_no_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_sub_lshr_reverse_no_nsw + apply shl_sub_lshr_reverse_no_nsw_thm + ---END shl_sub_lshr_reverse_no_nsw + + + +def shl_sub_lshr_reverse_nsw_on_op1_before := [llvm| +{ +^0(%arg130 : i32, %arg131 : i32, %arg132 : i32): + %0 = llvm.shl %arg130, %arg131 overflow : i32 + %1 = llvm.sub %arg132, %0 overflow : i32 + %2 = llvm.lshr %1, %arg131 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_sub_lshr_reverse_nsw_on_op1_after := [llvm| +{ +^0(%arg130 : i32, %arg131 : i32, %arg132 : i32): + %0 = llvm.lshr %arg132, %arg131 : i32 + %1 = llvm.sub %0, %arg130 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_sub_lshr_reverse_nsw_on_op1_proof : shl_sub_lshr_reverse_nsw_on_op1_before ⊑ shl_sub_lshr_reverse_nsw_on_op1_after := by + unfold shl_sub_lshr_reverse_nsw_on_op1_before shl_sub_lshr_reverse_nsw_on_op1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_sub_lshr_reverse_nsw_on_op1 + apply shl_sub_lshr_reverse_nsw_on_op1_thm + ---END shl_sub_lshr_reverse_nsw_on_op1 + + + +def shl_or_lshr_before := [llvm| +{ +^0(%arg112 : i32, %arg113 : i32, %arg114 : i32): + %0 = llvm.shl %arg112, %arg113 overflow : i32 + %1 = llvm.or %0, %arg114 : i32 + %2 = llvm.lshr %1, %arg113 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_or_lshr_after := [llvm| +{ +^0(%arg112 : i32, %arg113 : i32, %arg114 : i32): + %0 = llvm.lshr %arg114, %arg113 : i32 + %1 = llvm.or %0, %arg112 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_or_lshr_proof : shl_or_lshr_before ⊑ shl_or_lshr_after := by + unfold shl_or_lshr_before shl_or_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_lshr + apply shl_or_lshr_thm + ---END shl_or_lshr + + + +def shl_or_disjoint_lshr_before := [llvm| +{ +^0(%arg109 : i32, %arg110 : i32, %arg111 : i32): + %0 = llvm.shl %arg109, %arg110 overflow : i32 + %1 = llvm.or %0, %arg111 : i32 + %2 = llvm.lshr %1, %arg110 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_or_disjoint_lshr_after := [llvm| +{ +^0(%arg109 : i32, %arg110 : i32, %arg111 : i32): + %0 = llvm.lshr %arg111, %arg110 : i32 + %1 = llvm.or %0, %arg109 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_or_disjoint_lshr_proof : shl_or_disjoint_lshr_before ⊑ shl_or_disjoint_lshr_after := by + unfold shl_or_disjoint_lshr_before shl_or_disjoint_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_disjoint_lshr + apply shl_or_disjoint_lshr_thm + ---END shl_or_disjoint_lshr + + + +def shl_or_lshr_comm_before := [llvm| +{ +^0(%arg106 : i32, %arg107 : i32, %arg108 : i32): + %0 = llvm.shl %arg106, %arg107 overflow : i32 + %1 = llvm.or %arg108, %0 : i32 + %2 = llvm.lshr %1, %arg107 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_or_lshr_comm_after := [llvm| +{ +^0(%arg106 : i32, %arg107 : i32, %arg108 : i32): + %0 = llvm.lshr %arg108, %arg107 : i32 + %1 = llvm.or %0, %arg106 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_or_lshr_comm_proof : shl_or_lshr_comm_before ⊑ shl_or_lshr_comm_after := by + unfold shl_or_lshr_comm_before shl_or_lshr_comm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_lshr_comm + apply shl_or_lshr_comm_thm + ---END shl_or_lshr_comm + + + +def shl_or_disjoint_lshr_comm_before := [llvm| +{ +^0(%arg103 : i32, %arg104 : i32, %arg105 : i32): + %0 = llvm.shl %arg103, %arg104 overflow : i32 + %1 = llvm.or %arg105, %0 : i32 + %2 = llvm.lshr %1, %arg104 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_or_disjoint_lshr_comm_after := [llvm| +{ +^0(%arg103 : i32, %arg104 : i32, %arg105 : i32): + %0 = llvm.lshr %arg105, %arg104 : i32 + %1 = llvm.or %0, %arg103 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_or_disjoint_lshr_comm_proof : shl_or_disjoint_lshr_comm_before ⊑ shl_or_disjoint_lshr_comm_after := by + unfold shl_or_disjoint_lshr_comm_before shl_or_disjoint_lshr_comm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_or_disjoint_lshr_comm + apply shl_or_disjoint_lshr_comm_thm + ---END shl_or_disjoint_lshr_comm + + + +def shl_xor_lshr_before := [llvm| +{ +^0(%arg100 : i32, %arg101 : i32, %arg102 : i32): + %0 = llvm.shl %arg100, %arg101 overflow : i32 + %1 = llvm.xor %0, %arg102 : i32 + %2 = llvm.lshr %1, %arg101 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_xor_lshr_after := [llvm| +{ +^0(%arg100 : i32, %arg101 : i32, %arg102 : i32): + %0 = llvm.lshr %arg102, %arg101 : i32 + %1 = llvm.xor %0, %arg100 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_xor_lshr_proof : shl_xor_lshr_before ⊑ shl_xor_lshr_after := by + unfold shl_xor_lshr_before shl_xor_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_xor_lshr + apply shl_xor_lshr_thm + ---END shl_xor_lshr + + + +def shl_xor_lshr_comm_before := [llvm| +{ +^0(%arg97 : i32, %arg98 : i32, %arg99 : i32): + %0 = llvm.shl %arg97, %arg98 overflow : i32 + %1 = llvm.xor %arg99, %0 : i32 + %2 = llvm.lshr %1, %arg98 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_xor_lshr_comm_after := [llvm| +{ +^0(%arg97 : i32, %arg98 : i32, %arg99 : i32): + %0 = llvm.lshr %arg99, %arg98 : i32 + %1 = llvm.xor %0, %arg97 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_xor_lshr_comm_proof : shl_xor_lshr_comm_before ⊑ shl_xor_lshr_comm_after := by + unfold shl_xor_lshr_comm_before shl_xor_lshr_comm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_xor_lshr_comm + apply shl_xor_lshr_comm_thm + ---END shl_xor_lshr_comm + + + +def shl_and_lshr_before := [llvm| +{ +^0(%arg94 : i32, %arg95 : i32, %arg96 : i32): + %0 = llvm.shl %arg94, %arg95 overflow : i32 + %1 = llvm.and %0, %arg96 : i32 + %2 = llvm.lshr %1, %arg95 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_and_lshr_after := [llvm| +{ +^0(%arg94 : i32, %arg95 : i32, %arg96 : i32): + %0 = llvm.lshr %arg96, %arg95 : i32 + %1 = llvm.and %0, %arg94 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_and_lshr_proof : shl_and_lshr_before ⊑ shl_and_lshr_after := by + unfold shl_and_lshr_before shl_and_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_and_lshr + apply shl_and_lshr_thm + ---END shl_and_lshr + + + +def shl_and_lshr_comm_before := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32, %arg93 : i32): + %0 = llvm.shl %arg91, %arg92 overflow : i32 + %1 = llvm.and %arg93, %0 : i32 + %2 = llvm.lshr %1, %arg92 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_and_lshr_comm_after := [llvm| +{ +^0(%arg91 : i32, %arg92 : i32, %arg93 : i32): + %0 = llvm.lshr %arg93, %arg92 : i32 + %1 = llvm.and %0, %arg91 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_and_lshr_comm_proof : shl_and_lshr_comm_before ⊑ shl_and_lshr_comm_after := by + unfold shl_and_lshr_comm_before shl_and_lshr_comm_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_and_lshr_comm + apply shl_and_lshr_comm_thm + ---END shl_and_lshr_comm + + + +def shl_lshr_and_exact_before := [llvm| +{ +^0(%arg88 : i32, %arg89 : i32, %arg90 : i32): + %0 = llvm.shl %arg88, %arg89 overflow : i32 + %1 = llvm.and %0, %arg90 : i32 + %2 = llvm.lshr %1, %arg89 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def shl_lshr_and_exact_after := [llvm| +{ +^0(%arg88 : i32, %arg89 : i32, %arg90 : i32): + %0 = llvm.lshr %arg90, %arg89 : i32 + %1 = llvm.and %0, %arg88 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem shl_lshr_and_exact_proof : shl_lshr_and_exact_before ⊑ shl_lshr_and_exact_after := by + unfold shl_lshr_and_exact_before shl_lshr_and_exact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_lshr_and_exact + apply shl_lshr_and_exact_thm + ---END shl_lshr_and_exact + + + +def mul_splat_fold_no_nuw_before := [llvm| +{ +^0(%arg79 : i32): + %0 = "llvm.mlir.constant"() <{value = 65537 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = llvm.mul %arg79, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def mul_splat_fold_no_nuw_after := [llvm| +{ +^0(%arg79 : i32): + %0 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %1 = llvm.lshr %arg79, %0 : i32 + %2 = llvm.add %arg79, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem mul_splat_fold_no_nuw_proof : mul_splat_fold_no_nuw_before ⊑ mul_splat_fold_no_nuw_after := by + unfold mul_splat_fold_no_nuw_before mul_splat_fold_no_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_splat_fold_no_nuw + apply mul_splat_fold_no_nuw_thm + ---END mul_splat_fold_no_nuw + + + +def mul_splat_fold_too_narrow_before := [llvm| +{ +^0(%arg77 : i2): + %0 = "llvm.mlir.constant"() <{value = -2 : i2}> : () -> i2 + %1 = "llvm.mlir.constant"() <{value = 1 : i2}> : () -> i2 + %2 = llvm.mul %arg77, %0 overflow : i2 + %3 = llvm.lshr %2, %1 : i2 + "llvm.return"(%3) : (i2) -> () +} +] +def mul_splat_fold_too_narrow_after := [llvm| +{ +^0(%arg77 : i2): + "llvm.return"(%arg77) : (i2) -> () +} +] +theorem mul_splat_fold_too_narrow_proof : mul_splat_fold_too_narrow_before ⊑ mul_splat_fold_too_narrow_after := by + unfold mul_splat_fold_too_narrow_before mul_splat_fold_too_narrow_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN mul_splat_fold_too_narrow + apply mul_splat_fold_too_narrow_thm + ---END mul_splat_fold_too_narrow + + + +def negative_and_odd_before := [llvm| +{ +^0(%arg76 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %2 = llvm.srem %arg76, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def negative_and_odd_after := [llvm| +{ +^0(%arg76 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = llvm.lshr %arg76, %0 : i32 + %2 = llvm.and %1, %arg76 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem negative_and_odd_proof : negative_and_odd_before ⊑ negative_and_odd_after := by + unfold negative_and_odd_before negative_and_odd_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN negative_and_odd + apply negative_and_odd_thm + ---END negative_and_odd + + diff --git a/SSA/Projects/InstCombine/tests/proofs/glshr_proof.lean b/SSA/Projects/InstCombine/tests/proofs/glshr_proof.lean new file mode 100644 index 000000000..905eb4840 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/glshr_proof.lean @@ -0,0 +1,137 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section glshr_proof +theorem lshr_exact_thm (x : BitVec 8) : (x <<< 2 + 4#8) >>> 2 = x + 1#8 &&& 63#8 := sorry + +theorem shl_add_thm (x x_1 : BitVec 8) : (x_1 <<< 2 + x) >>> 2 = x >>> 2 + x_1 &&& 63#8 := sorry + +theorem mul_splat_fold_thm (x : BitVec 32) : + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 65537#64 then none else some (x * 65537#32)).bind fun x' => + some (x' >>> 16)) ⊑ + some x := sorry + +theorem shl_add_lshr_flag_preservation_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 a.msb = x.msb ∧ ¬(a + x).msb = a.msb then none else if a + x < a ∨ a + x < x then none else some (a + x)).bind + fun a => if 32#32 ≤ x_1 then none else some (a >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => + if a.msb = x_2.msb ∧ ¬(a + x_2).msb = a.msb then none + else if a + x_2 < a ∨ a + x_2 < x_2 then none else some (a + x_2) := sorry + +theorem shl_add_lshr_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 a + x < a ∨ a + x < x then none else some (a + x)).bind fun a => + if 32#32 ≤ x_1 then none else some (a >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => + if a + x_2 < a ∨ a + x_2 < x_2 then none else some (a + x_2) := sorry + +theorem shl_add_lshr_comm_thm (x x_1 x_2 : 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_2 * x_2 + a < x_2 * x_2 ∨ x_2 * x_2 + a < a then none else some (x_2 * x_2 + a)).bind fun a => + if 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some ((x_2 * x_2) >>> x.toNat)) fun a => + if a + x_1 < a ∨ a + x_1 < x_1 then none else some (a + x_1) := sorry + +theorem shl_sub_lshr_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 (signExtend 33 a - signExtend 33 x).msb = (signExtend 33 a - signExtend 33 x).getMsbD 1 then + if a < x then none else some (a - x) + else none).bind + fun a => if 32#32 ≤ x_1 then none else some (a >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun y' => + if (signExtend 33 x_2 - signExtend 33 y').msb = (signExtend 33 x_2 - signExtend 33 y').getMsbD 1 then + if x_2 < y' then none else some (x_2 - y') + else none := sorry + +theorem shl_sub_lshr_reverse_thm (x x_1 x_2 : 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 (signExtend 33 x_2 - signExtend 33 a).msb = (signExtend 33 x_2 - signExtend 33 a).getMsbD 1 then + if x_2 < a then none else some (x_2 - a) + else none).bind + fun a => if 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => + if (signExtend 33 a - signExtend 33 x_1).msb = (signExtend 33 a - signExtend 33 x_1).getMsbD 1 then + if a < x_1 then none else some (a - x_1) + else none := sorry + +theorem shl_sub_lshr_reverse_no_nsw_thm (x x_1 x_2 : 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_2 < a then none else some (x_2 - a)).bind fun a => if 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => + if a < x_1 then none else some (a - x_1) := sorry + +theorem shl_sub_lshr_reverse_nsw_on_op1_thm (x x_1 x_2 : BitVec 32) : + ((if (x_1 <<< x.toNat).sshiftRight x.toNat = x_1 then none + else + 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_2 < a then none else some (x_2 - a)).bind fun a => if 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => + if a < x_1 then none else some (a - x_1) := sorry + +theorem shl_or_lshr_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 32#32 ≤ x_1 then none else some ((a ||| x) >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => some (a ||| x_2) := sorry + +theorem shl_or_disjoint_lshr_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 32#32 ≤ x_1 then none else some ((a ||| x) >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => some (a ||| x_2) := sorry + +theorem shl_or_lshr_comm_thm (x x_1 x_2 : 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 32#32 ≤ x then none else some ((x_2 ||| a) >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => some (a ||| x_1) := sorry + +theorem shl_or_disjoint_lshr_comm_thm (x x_1 x_2 : 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 32#32 ≤ x then none else some ((x_2 ||| a) >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => some (a ||| x_1) := sorry + +theorem shl_xor_lshr_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 32#32 ≤ x_1 then none else some ((a ^^^ x) >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => some (a ^^^ x_2) := sorry + +theorem shl_xor_lshr_comm_thm (x x_1 x_2 : 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 32#32 ≤ x then none else some ((x_2 ^^^ a) >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => some (a ^^^ x_1) := sorry + +theorem shl_and_lshr_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 32#32 ≤ x_1 then none else some ((a &&& x) >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => some (a &&& x_2) := sorry + +theorem shl_and_lshr_comm_thm (x x_1 x_2 : 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 32#32 ≤ x then none else some ((x_2 &&& a) >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (x_2 >>> x.toNat)) fun a => some (a &&& x_1) := sorry + +theorem shl_lshr_and_exact_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 32#32 ≤ x_1 then none else some ((a &&& x) >>> x_1.toNat)) ⊑ + Option.bind (if 32#32 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => some (a &&& x_2) := sorry + +theorem mul_splat_fold_no_nuw_thm (x : BitVec 32) : + ((if signExtend 64 x * 65537#64 < signExtend 64 (twoPow 32 31) ∨ twoPow 64 31 ≤ signExtend 64 x * 65537#64 then none + else some (x * 65537#32)).bind + fun x' => some (x' >>> 16)) ⊑ + if x.msb = false ∧ ¬(x + x >>> 16).msb = x.msb then none else some (x + x >>> 16) := sorry + +theorem mul_splat_fold_too_narrow_thm (x : BitVec 2) : + ((if twoPow 4 1 <<< 1 ≤ setWidth 4 x * 2#4 then none else some (x * 2#2)).bind fun x' => some (x' >>> 1)) ⊑ + some x := sorry + +theorem negative_and_odd_thm (x : BitVec 32) : (x - x.sdiv 2#32 * 2#32) >>> 31 = x >>> 31 &&& x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean index 8d5ab2977..684072c59 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean @@ -40,6 +40,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -148,6 +151,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -184,6 +188,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -220,6 +225,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -256,6 +262,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -292,6 +299,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -326,6 +334,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean deleted file mode 100644 index 03057209b..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean +++ /dev/null @@ -1,155 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehandhofhors_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 gmaskedhmergehandhofhors_statements - -def p_before := [llvm| -{ -^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg75, %0 : i32 - %2 = llvm.or %1, %arg73 : i32 - %3 = llvm.or %arg74, %arg75 : i32 - %4 = llvm.and %2, %3 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -def p_after := [llvm| -{ -^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg75, %0 : i32 - %2 = llvm.or %arg73, %1 : i32 - %3 = llvm.or %arg74, %arg75 : i32 - %4 = llvm.and %2, %3 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem p_proof : p_before ⊑ p_after := by - unfold p_before p_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN p - apply p_thm - ---END p - - - -def p_commutative2_before := [llvm| -{ -^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg53, %0 : i32 - %2 = llvm.or %1, %arg51 : i32 - %3 = llvm.or %arg52, %arg53 : i32 - %4 = llvm.and %3, %2 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -def p_commutative2_after := [llvm| -{ -^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg53, %0 : i32 - %2 = llvm.or %arg51, %1 : i32 - %3 = llvm.or %arg52, %arg53 : i32 - %4 = llvm.and %3, %2 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by - unfold p_commutative2_before p_commutative2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN p_commutative2 - apply p_commutative2_thm - ---END p_commutative2 - - - -def n2_badmask_before := [llvm| -{ -^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg9, %0 : i32 - %2 = llvm.or %1, %arg6 : i32 - %3 = llvm.or %arg8, %arg7 : i32 - %4 = llvm.and %2, %3 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -def n2_badmask_after := [llvm| -{ -^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): - %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 - %1 = llvm.xor %arg9, %0 : i32 - %2 = llvm.or %arg6, %1 : i32 - %3 = llvm.or %arg8, %arg7 : i32 - %4 = llvm.and %2, %3 : i32 - "llvm.return"(%4) : (i32) -> () -} -] -theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by - unfold n2_badmask_before n2_badmask_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN n2_badmask - apply n2_badmask_thm - ---END n2_badmask - - - -def n3_constmask_samemask_before := [llvm| -{ -^0(%arg0 : i32, %arg1 : i32): - %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 - %1 = llvm.or %arg0, %0 : i32 - %2 = llvm.or %arg1, %0 : i32 - %3 = llvm.and %1, %2 : i32 - "llvm.return"(%3) : (i32) -> () -} -] -def n3_constmask_samemask_after := [llvm| -{ -^0(%arg0 : i32, %arg1 : i32): - %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 - %1 = llvm.and %arg0, %arg1 : i32 - %2 = llvm.or %1, %0 : i32 - "llvm.return"(%2) : (i32) -> () -} -] -theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by - unfold n3_constmask_samemask_before n3_constmask_samemask_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN n3_constmask_samemask - apply n3_constmask_samemask_thm - ---END n3_constmask_samemask - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean deleted file mode 100644 index 95060e9d6..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean +++ /dev/null @@ -1,18 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gmaskedhmergehandhofhors_proof -theorem p_thm (x x_1 x_2 : BitVec 32) : - (x_2 ^^^ 4294967295#32 ||| x_1) &&& (x ||| x_2) = (x_1 ||| x_2 ^^^ 4294967295#32) &&& (x ||| x_2) := sorry - -theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : - (x_2 ||| x_1) &&& (x_1 ^^^ 4294967295#32 ||| x) = (x_2 ||| x_1) &&& (x ||| x_1 ^^^ 4294967295#32) := sorry - -theorem n2_badmask_thm (x x_1 x_2 x_3 : BitVec 32) : - (x_3 ^^^ 4294967295#32 ||| x_2) &&& (x_1 ||| x) = (x_2 ||| x_3 ^^^ 4294967295#32) &&& (x_1 ||| x) := sorry - -theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : - (x_1 ||| 4294902015#32) &&& (x ||| 4294902015#32) = x_1 &&& x ||| 4294902015#32 := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean b/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean new file mode 100644 index 000000000..0c82d1a1d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.gmisch2002_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 gmisch2002_statements + +def missed_const_prop_2002h12h05_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg0 : i32 + %3 = llvm.sub %0, %1 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.add %arg0, %4 : i32 + %6 = llvm.add %2, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def missed_const_prop_2002h12h05_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem missed_const_prop_2002h12h05_proof : missed_const_prop_2002h12h05_before ⊑ missed_const_prop_2002h12h05_after := by + unfold missed_const_prop_2002h12h05_before missed_const_prop_2002h12h05_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN missed_const_prop_2002h12h05 + all_goals (try extract_goal ; sorry) + ---END missed_const_prop_2002h12h05 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmisch2002_proof.lean similarity index 79% rename from SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean rename to SSA/Projects/InstCombine/tests/proofs/gmisch2002_proof.lean index 7ef0dfc3c..35cc7f004 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmisch2002_proof.lean @@ -3,4 +3,4 @@ import SSA.Projects.InstCombine.TacticAuto import SSA.Projects.InstCombine.LLVM.Semantics open BitVec -section gannotations_proof +section gmisch2002_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean index 6f1c8ae9f..7c7b37e4e 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean @@ -36,6 +36,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nuw_proof : shl_add_log_may_ca simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nsw_proof : shl_add_log_may_ca simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean index 7d4442d1f..f2dc415cf 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2_proof.lean @@ -5,12 +5,12 @@ open BitVec section gmulhpow2_proof 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 a => - some (x_1 * a)) ⊑ + ((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')) ⊑ if 8#8 ≤ x + 2#8 then none else some (x_1 <<< ((x.toNat + 2) % 256)) := sorry theorem shl_add_log_may_cause_poison_pr62175_with_nsw_thm (x x_1 : BitVec 8) : ((if (4#8 <<< x.toNat).sshiftRight x.toNat = 4#8 then none else if 8#8 ≤ x then none else some (4#8 <<< x.toNat)).bind - fun a => some (x_1 * a)) ⊑ + fun y' => some (x_1 * y')) ⊑ if 8#8 ≤ x + 2#8 then none else some (x_1 <<< ((x.toNat + 2) % 256)) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean index f7ac33390..1b82a05bf 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean @@ -35,6 +35,7 @@ theorem basic_proof : basic_before ⊑ basic_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem basic_com_add_proof : basic_com_add_before ⊑ basic_com_add_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem basic_preserve_nsw_proof : basic_preserve_nsw_before ⊑ basic_preserve_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem basic_preserve_nuw_proof : basic_preserve_nuw_before ⊑ basic_preserve_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -159,6 +163,7 @@ theorem basic_preserve_nuw_nsw_proof : basic_preserve_nuw_nsw_before ⊑ basic_p simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean index b0771dfcb..ce1a0e07f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gnothadd_proof.lean @@ -11,13 +11,13 @@ theorem basic_com_add_thm (x x_1 : BitVec 8) : x_1 + (x ^^^ 255#8) ^^^ 255#8 = x theorem basic_preserve_nsw_thm (x x_1 : BitVec 8) : ((if (x_1.msb ^^ (255#8).msb) = x.msb ∧ ¬((x_1 ^^^ 255#8) + x).msb = (x_1.msb ^^ (255#8).msb) then none else some ((x_1 ^^^ 255#8) + x)).bind - fun a => some (a ^^^ 255#8)) ⊑ + fun x' => some (x' ^^^ 255#8)) ⊑ if (signExtend 9 x_1 - signExtend 9 x).msb = (signExtend 9 x_1 - signExtend 9 x).getMsbD 1 then some (x_1 - x) else none := sorry theorem basic_preserve_nuw_thm (x x_1 : BitVec 8) : ((if (x_1 ^^^ 255#8) + x < x_1 ^^^ 255#8 ∨ (x_1 ^^^ 255#8) + x < x then none else some ((x_1 ^^^ 255#8) + x)).bind - fun a => some (a ^^^ 255#8)) ⊑ + fun x' => some (x' ^^^ 255#8)) ⊑ if x_1 < x then none else some (x_1 - x) := sorry theorem basic_preserve_nuw_nsw_thm (x x_1 : BitVec 8) : @@ -25,7 +25,7 @@ theorem basic_preserve_nuw_nsw_thm (x x_1 : BitVec 8) : else if (x_1 ^^^ 255#8) + x < x_1 ^^^ 255#8 ∨ (x_1 ^^^ 255#8) + x < x then none else some ((x_1 ^^^ 255#8) + x)).bind - fun a => some (a ^^^ 255#8)) ⊑ + fun x' => some (x' ^^^ 255#8)) ⊑ if (signExtend 9 x_1 - signExtend 9 x).msb = (signExtend 9 x_1 - signExtend 9 x).getMsbD 1 then if x_1 < x then none else some (x_1 - x) else none := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean deleted file mode 100644 index 65fcc1d78..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor.lean +++ /dev/null @@ -1,171 +0,0 @@ -import SSA.Projects.InstCombine.tests.proofs.gorhxorhxor_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 gorhxorhxor_statements - -def or_xor_xor_normal_variant1_before := [llvm| -{ -^0(%arg17 : i1, %arg18 : i1): - %0 = llvm.and %arg17, %arg18 : i1 - %1 = llvm.xor %0, %arg17 : i1 - %2 = llvm.xor %0, %arg18 : i1 - %3 = llvm.or %1, %2 : i1 - "llvm.return"(%3) : (i1) -> () -} -] -def or_xor_xor_normal_variant1_after := [llvm| -{ -^0(%arg17 : i1, %arg18 : i1): - %0 = llvm.xor %arg17, %arg18 : i1 - "llvm.return"(%0) : (i1) -> () -} -] -theorem or_xor_xor_normal_variant1_proof : or_xor_xor_normal_variant1_before ⊑ or_xor_xor_normal_variant1_after := by - unfold or_xor_xor_normal_variant1_before or_xor_xor_normal_variant1_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN or_xor_xor_normal_variant1 - apply or_xor_xor_normal_variant1_thm - ---END or_xor_xor_normal_variant1 - - - -def or_xor_xor_normal_variant2_before := [llvm| -{ -^0(%arg15 : i8, %arg16 : i8): - %0 = llvm.and %arg15, %arg16 : i8 - %1 = llvm.xor %0, %arg16 : i8 - %2 = llvm.xor %arg15, %0 : i8 - %3 = llvm.or %1, %2 : i8 - "llvm.return"(%3) : (i8) -> () -} -] -def or_xor_xor_normal_variant2_after := [llvm| -{ -^0(%arg15 : i8, %arg16 : i8): - %0 = llvm.xor %arg15, %arg16 : i8 - "llvm.return"(%0) : (i8) -> () -} -] -theorem or_xor_xor_normal_variant2_proof : or_xor_xor_normal_variant2_before ⊑ or_xor_xor_normal_variant2_after := by - unfold or_xor_xor_normal_variant2_before or_xor_xor_normal_variant2_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN or_xor_xor_normal_variant2 - apply or_xor_xor_normal_variant2_thm - ---END or_xor_xor_normal_variant2 - - - -def or_xor_xor_normal_variant3_before := [llvm| -{ -^0(%arg13 : i16, %arg14 : i16): - %0 = llvm.and %arg14, %arg13 : i16 - %1 = llvm.xor %arg14, %0 : i16 - %2 = llvm.xor %arg13, %0 : i16 - %3 = llvm.or %1, %2 : i16 - "llvm.return"(%3) : (i16) -> () -} -] -def or_xor_xor_normal_variant3_after := [llvm| -{ -^0(%arg13 : i16, %arg14 : i16): - %0 = llvm.xor %arg14, %arg13 : i16 - "llvm.return"(%0) : (i16) -> () -} -] -theorem or_xor_xor_normal_variant3_proof : or_xor_xor_normal_variant3_before ⊑ or_xor_xor_normal_variant3_after := by - unfold or_xor_xor_normal_variant3_before or_xor_xor_normal_variant3_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN or_xor_xor_normal_variant3 - apply or_xor_xor_normal_variant3_thm - ---END or_xor_xor_normal_variant3 - - - -def or_xor_xor_normal_variant4_before := [llvm| -{ -^0(%arg11 : i64, %arg12 : i64): - %0 = llvm.and %arg12, %arg11 : i64 - %1 = llvm.xor %0, %arg12 : i64 - %2 = llvm.xor %0, %arg11 : i64 - %3 = llvm.or %1, %2 : i64 - "llvm.return"(%3) : (i64) -> () -} -] -def or_xor_xor_normal_variant4_after := [llvm| -{ -^0(%arg11 : i64, %arg12 : i64): - %0 = llvm.xor %arg12, %arg11 : i64 - "llvm.return"(%0) : (i64) -> () -} -] -theorem or_xor_xor_normal_variant4_proof : or_xor_xor_normal_variant4_before ⊑ or_xor_xor_normal_variant4_after := by - unfold or_xor_xor_normal_variant4_before or_xor_xor_normal_variant4_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN or_xor_xor_normal_variant4 - apply or_xor_xor_normal_variant4_thm - ---END or_xor_xor_normal_variant4 - - - -def or_xor_xor_normal_binops_before := [llvm| -{ -^0(%arg8 : i32, %arg9 : i32, %arg10 : i32): - %0 = llvm.xor %arg8, %arg10 : i32 - %1 = llvm.xor %arg9, %arg10 : i32 - %2 = llvm.and %1, %0 : i32 - %3 = llvm.xor %1, %2 : i32 - %4 = llvm.xor %0, %2 : i32 - %5 = llvm.or %3, %4 : i32 - "llvm.return"(%5) : (i32) -> () -} -] -def or_xor_xor_normal_binops_after := [llvm| -{ -^0(%arg8 : i32, %arg9 : i32, %arg10 : i32): - %0 = llvm.xor %arg9, %arg8 : i32 - "llvm.return"(%0) : (i32) -> () -} -] -theorem or_xor_xor_normal_binops_proof : or_xor_xor_normal_binops_before ⊑ or_xor_xor_normal_binops_after := by - unfold or_xor_xor_normal_binops_before or_xor_xor_normal_binops_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - simp_alive_case_bash - intros - try simp - ---BEGIN or_xor_xor_normal_binops - apply or_xor_xor_normal_binops_thm - ---END or_xor_xor_normal_binops - - diff --git a/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean deleted file mode 100644 index 8507e55ce..000000000 --- a/SSA/Projects/InstCombine/tests/proofs/gorhxorhxor_proof.lean +++ /dev/null @@ -1,17 +0,0 @@ - -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section gorhxorhxor_proof -theorem or_xor_xor_normal_variant1_thm (x x_1 : BitVec 1) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry - -theorem or_xor_xor_normal_variant2_thm (x x_1 : BitVec 8) : x_1 &&& x ^^^ x ||| x_1 ^^^ x_1 &&& x = x_1 ^^^ x := sorry - -theorem or_xor_xor_normal_variant3_thm (x x_1 : BitVec 16) : x_1 ^^^ x_1 &&& x ||| x ^^^ x_1 &&& x = x_1 ^^^ x := sorry - -theorem or_xor_xor_normal_variant4_thm (x x_1 : BitVec 64) : x_1 &&& x ^^^ x_1 ||| x_1 &&& x ^^^ x = x_1 ^^^ x := sorry - -theorem or_xor_xor_normal_binops_thm (x x_1 x_2 : BitVec 32) : - x_2 ^^^ x_1 ^^^ (x_2 ^^^ x_1) &&& (x ^^^ x_1) ||| x ^^^ x_1 ^^^ (x_2 ^^^ x_1) &&& (x ^^^ x_1) = x_2 ^^^ x := sorry - diff --git a/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean new file mode 100644 index 000000000..16fa6bead --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean @@ -0,0 +1,45 @@ +import SSA.Projects.InstCombine.tests.proofs.gpreservedhanalyses_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 gpreservedhanalyses_statements + +def test_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -5 : i32}> : () -> i32 + %2 = llvm.add %arg0, %0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test_after := [llvm| +{ +^0(%arg0 : i32): + "llvm.return"(%arg0) : (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 + intros + try simp + ---BEGIN test + apply test_thm + ---END test + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses_proof.lean new file mode 100644 index 000000000..ae25e2d0c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gpreservedhanalyses_proof +theorem test_thm (x : BitVec 32) : x + 5#32 + 4294967291#32 = x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean index a04ae1009..cc767f05a 100644 --- a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean +++ b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean @@ -36,6 +36,7 @@ theorem reassoc_add_nuw_proof : reassoc_add_nuw_before ⊑ reassoc_add_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem reassoc_sub_nuw_proof : reassoc_sub_nuw_before ⊑ reassoc_sub_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem reassoc_mul_nuw_proof : reassoc_mul_nuw_before ⊑ reassoc_mul_nuw_after simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -132,6 +135,7 @@ theorem no_reassoc_add_nuw_none_proof : no_reassoc_add_nuw_none_before ⊑ no_re simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -164,6 +168,7 @@ theorem no_reassoc_add_none_nuw_proof : no_reassoc_add_none_nuw_before ⊑ no_re simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -198,6 +203,7 @@ theorem reassoc_x2_add_nuw_proof : reassoc_x2_add_nuw_before ⊑ reassoc_x2_add_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -232,6 +238,7 @@ theorem reassoc_x2_mul_nuw_proof : reassoc_x2_mul_nuw_before ⊑ reassoc_x2_mul_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -266,6 +273,7 @@ theorem reassoc_x2_sub_nuw_proof : reassoc_x2_sub_nuw_before ⊑ reassoc_x2_sub_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -297,6 +305,7 @@ theorem tryFactorization_add_nuw_mul_nuw_proof : tryFactorization_add_nuw_mul_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -328,6 +337,7 @@ theorem tryFactorization_add_nuw_mul_nuw_int_max_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -359,6 +369,7 @@ theorem tryFactorization_add_mul_nuw_proof : tryFactorization_add_mul_nuw_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -390,6 +401,7 @@ theorem tryFactorization_add_nuw_mul_proof : tryFactorization_add_nuw_mul_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -421,6 +433,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_proof : tryFactorization_ad simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -452,6 +465,7 @@ theorem tryFactorization_add_nuw_mul_mul_nuw_var_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -483,6 +497,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_var_proof : tryFactorization_add_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -514,6 +529,7 @@ theorem tryFactorization_add_mul_nuw_mul_var_proof : tryFactorization_add_mul_nu simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean index 40310a459..d354a9b38 100644 --- a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw_proof.lean @@ -5,17 +5,17 @@ open BitVec section greassociatehnuw_proof theorem reassoc_add_nuw_thm (x : BitVec 32) : - ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun a => - if a + 64#32 < a ∨ a + 64#32 < 64#32 then none else some (a + 64#32)) ⊑ + ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun x' => + if x' + 64#32 < x' ∨ x' + 64#32 < 64#32 then none else some (x' + 64#32)) ⊑ if x + 68#32 < x ∨ x + 68#32 < 68#32 then none else some (x + 68#32) := sorry theorem reassoc_sub_nuw_thm (x : BitVec 32) : - ((if x < 4#32 then none else some (x - 4#32)).bind fun a => if a < 64#32 then none else some (a - 64#32)) ⊑ + ((if x < 4#32 then none else some (x - 4#32)).bind fun x' => if x' < 64#32 then none else some (x' - 64#32)) ⊑ some (x + 4294967228#32) := sorry theorem reassoc_mul_nuw_thm (x : BitVec 32) : - ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 4#64 then none else some (x * 4#32)).bind fun a => - if twoPow 64 31 <<< 1 ≤ setWidth 64 a * 65#64 then none else some (a * 65#32)) ⊑ + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 4#64 then none else some (x * 4#32)).bind fun x' => + if twoPow 64 31 <<< 1 ≤ setWidth 64 x' * 65#64 then none else some (x' * 65#32)) ⊑ if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 260#64 then none else some (x * 260#32) := sorry theorem no_reassoc_add_nuw_none_thm (x : BitVec 32) : @@ -23,25 +23,25 @@ theorem no_reassoc_add_nuw_none_thm (x : BitVec 32) : some (x + 68#32) := sorry theorem no_reassoc_add_none_nuw_thm (x : BitVec 32) : - ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun a => some (a + 64#32)) ⊑ + ((if x + 4#32 < x ∨ x + 4#32 < 4#32 then none else some (x + 4#32)).bind fun x' => some (x' + 64#32)) ⊑ some (x + 68#32) := sorry theorem reassoc_x2_add_nuw_thm (x x_1 : BitVec 32) : ((if x_1 + 4#32 < x_1 ∨ x_1 + 4#32 < 4#32 then none else some (x_1 + 4#32)).bind fun a => - (if x + 8#32 < x ∨ x + 8#32 < 8#32 then none else some (x + 8#32)).bind fun a_1 => - if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ - (if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x)).bind fun a => - if a + 12#32 < a ∨ a + 12#32 < 12#32 then none else some (a + 12#32) := sorry + (if x + 8#32 < x ∨ x + 8#32 < 8#32 then none else some (x + 8#32)).bind fun y' => + if a + y' < a ∨ a + y' < y' then none else some (a + y')) ⊑ + (if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x)).bind fun x' => + if x' + 12#32 < x' ∨ x' + 12#32 < 12#32 then none else some (x' + 12#32) := sorry theorem reassoc_x2_mul_nuw_thm (x x_1 : BitVec 32) : ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_1 * 5#64 then none else some (x_1 * 5#32)).bind fun a => - (if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 9#64 then none else some (x * 9#32)).bind fun a_1 => - if twoPow 64 31 <<< 1 ≤ setWidth 64 a * setWidth 64 a_1 then none else some (a * a_1)) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x * 9#64 then none else some (x * 9#32)).bind fun y' => + if twoPow 64 31 <<< 1 ≤ setWidth 64 a * setWidth 64 y' then none else some (a * y')) ⊑ if twoPow 64 31 <<< 1 ≤ setWidth 64 (x_1 * x) * 45#64 then none else some (x_1 * x * 45#32) := sorry theorem reassoc_x2_sub_nuw_thm (x x_1 : BitVec 32) : ((if x_1 < 4#32 then none else some (x_1 - 4#32)).bind fun a => - (if x < 8#32 then none else some (x - 8#32)).bind fun a_1 => if a < a_1 then none else some (a - a_1)) ⊑ + (if x < 8#32 then none else some (x - 8#32)).bind fun y' => if a < y' then none else some (a - y')) ⊑ some (x_1 - x + 4#32) := sorry theorem tryFactorization_add_nuw_mul_nuw_thm (x : BitVec 32) : @@ -63,13 +63,13 @@ theorem tryFactorization_add_nuw_mul_thm (x : BitVec 32) : theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_thm (x x_1 x_2 : BitVec 32) : ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x_1 then none else some (x_2 * x_1)).bind fun a => - (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a_1 => - if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun y' => + if a + y' < a ∨ a + y' < y' then none else some (a + y')) ⊑ if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 (x_1 + x) then none else some (x_2 * (x_1 + x)) := sorry theorem tryFactorization_add_nuw_mul_mul_nuw_var_thm (x x_1 x_2 : BitVec 32) : - ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a => - if x_2 * x_1 + a < x_2 * x_1 ∨ x_2 * x_1 + a < a then none else some (x_2 * x_1 + a)) ⊑ + ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun y' => + if x_2 * x_1 + y' < x_2 * x_1 ∨ x_2 * x_1 + y' < y' then none else some (x_2 * x_1 + y')) ⊑ some (x_2 * (x_1 + x)) := sorry theorem tryFactorization_add_nuw_mul_nuw_mul_var_thm (x x_1 x_2 : BitVec 32) : @@ -79,7 +79,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_var_thm (x x_1 x_2 : BitVec 32) : theorem tryFactorization_add_mul_nuw_mul_var_thm (x x_1 x_2 : BitVec 32) : ((if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x_1 then none else some (x_2 * x_1)).bind fun a => - (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun a_1 => - some (a + a_1)) ⊑ + (if twoPow 64 31 <<< 1 ≤ setWidth 64 x_2 * setWidth 64 x then none else some (x_2 * x)).bind fun y' => + some (a + y')) ⊑ some (x_2 * (x_1 + x)) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean new file mode 100644 index 000000000..78be8022f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean @@ -0,0 +1,119 @@ +import SSA.Projects.InstCombine.tests.proofs.gredundanthrighthshifthinputhmasking_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 gredundanthrighthshifthinputhmasking_statements + +def t0_lshr_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 : i32 + %2 = llvm.and %1, %arg30 : i32 + %3 = llvm.lshr %2, %arg31 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def t0_lshr_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg31 overflow : i32 + %2 = llvm.and %1, %arg30 : i32 + %3 = llvm.lshr %2, %arg31 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem t0_lshr_proof : t0_lshr_before ⊑ t0_lshr_after := by + unfold t0_lshr_before t0_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0_lshr + apply t0_lshr_thm + ---END t0_lshr + + + +def t1_sshr_before := [llvm| +{ +^0(%arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg29 : i32 + %2 = llvm.and %1, %arg28 : i32 + %3 = llvm.ashr %2, %arg29 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def t1_sshr_after := [llvm| +{ +^0(%arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg29 overflow : i32 + %2 = llvm.and %1, %arg28 : i32 + %3 = llvm.ashr %2, %arg29 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem t1_sshr_proof : t1_sshr_before ⊑ t1_sshr_after := by + unfold t1_sshr_before t1_sshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t1_sshr + apply t1_sshr_thm + ---END t1_sshr + + + +def n13_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg5 : i32 + %2 = llvm.and %1, %arg4 : i32 + %3 = llvm.lshr %2, %arg6 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n13_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg5 overflow : i32 + %2 = llvm.and %1, %arg4 : i32 + %3 = llvm.lshr %2, %arg6 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem n13_proof : n13_before ⊑ n13_after := by + unfold n13_before n13_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN n13 + apply n13_thm + ---END n13 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking_proof.lean new file mode 100644 index 000000000..33beca34c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking_proof.lean @@ -0,0 +1,27 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gredundanthrighthshifthinputhmasking_proof +theorem t0_lshr_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x_1 then none else some (4294967295#32 <<< x_1.toNat)) fun a => + if 32#32 ≤ x_1 then none else some ((a &&& x) >>> x_1.toNat)) ⊑ + (if (4294967295#32 <<< x_1.toNat).sshiftRight x_1.toNat = 4294967295#32 then none + else if 32#32 ≤ x_1 then none else some (4294967295#32 <<< x_1.toNat)).bind + fun a => if 32#32 ≤ x_1 then none else some ((a &&& x) >>> x_1.toNat) := sorry + +theorem t1_sshr_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x_1 then none else some (4294967295#32 <<< x_1.toNat)) fun a => + if 32#32 ≤ x_1 then none else some ((a &&& x).sshiftRight x_1.toNat)) ⊑ + (if (4294967295#32 <<< x_1.toNat).sshiftRight x_1.toNat = 4294967295#32 then none + else if 32#32 ≤ x_1 then none else some (4294967295#32 <<< x_1.toNat)).bind + fun a => if 32#32 ≤ x_1 then none else some ((a &&& x).sshiftRight x_1.toNat) := sorry + +theorem n13_thm (x x_1 x_2 : BitVec 32) : + (Option.bind (if 32#32 ≤ x_2 then none else some (4294967295#32 <<< x_2.toNat)) fun a => + if 32#32 ≤ x then none else some ((a &&& x_1) >>> x.toNat)) ⊑ + (if (4294967295#32 <<< x_2.toNat).sshiftRight x_2.toNat = 4294967295#32 then none + else if 32#32 ≤ x_2 then none else some (4294967295#32 <<< x_2.toNat)).bind + fun a => if 32#32 ≤ x then none else some ((a &&& x_1) >>> x.toNat) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean index ea2e2712a..8cc91eb0b 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean @@ -36,6 +36,7 @@ theorem test_sdiv_canonicalize_op0_proof : test_sdiv_canonicalize_op0_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem test_sdiv_canonicalize_op0_exact_proof : test_sdiv_canonicalize_op0_exac simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean new file mode 100644 index 000000000..e566085a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean @@ -0,0 +1,118 @@ +import SSA.Projects.InstCombine.tests.proofs.gsdivhexacthbyhnegativehpowerhofhtwo_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 gsdivhexacthbyhnegativehpowerhofhtwo_statements + +def t0_before := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = llvm.sdiv %arg15, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg15 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.ashr %arg15, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def prove_exact_with_high_mask_before := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -4 : i8}> : () -> i8 + %2 = llvm.and %arg8, %0 : i8 + %3 = llvm.sdiv %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def prove_exact_with_high_mask_after := [llvm| +{ +^0(%arg8 : i8, %arg9 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.ashr %arg8, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.sub %2, %4 overflow : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ prove_exact_with_high_mask_after := by + unfold prove_exact_with_high_mask_before prove_exact_with_high_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN prove_exact_with_high_mask + apply prove_exact_with_high_mask_thm + ---END prove_exact_with_high_mask + + + +def prove_exact_with_high_mask_limit_before := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %1 = llvm.and %arg6, %0 : i8 + %2 = llvm.sdiv %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def prove_exact_with_high_mask_limit_after := [llvm| +{ +^0(%arg6 : i8, %arg7 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.ashr %arg6, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limit_before ⊑ prove_exact_with_high_mask_limit_after := by + unfold prove_exact_with_high_mask_limit_before prove_exact_with_high_mask_limit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN prove_exact_with_high_mask_limit + apply prove_exact_with_high_mask_limit_thm + ---END prove_exact_with_high_mask_limit + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo_proof.lean new file mode 100644 index 000000000..eb132a71f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo_proof.lean @@ -0,0 +1,22 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsdivhexacthbyhnegativehpowerhofhtwo_proof +theorem t0_thm (x : BitVec 8) : + some (x.sdiv 224#8) ⊑ + if (-signExtend 9 (x.sshiftRight 5)).msb = (-signExtend 9 (x.sshiftRight 5)).getMsbD 1 then some (-x.sshiftRight 5) + else none := sorry + +theorem prove_exact_with_high_mask_thm (x : BitVec 8) : + some ((x &&& 224#8).sdiv 252#8) ⊑ + if (-signExtend 9 (x.sshiftRight 2 &&& 248#8)).msb = (-signExtend 9 (x.sshiftRight 2 &&& 248#8)).getMsbD 1 then + some (-(x.sshiftRight 2 &&& 248#8)) + else none := sorry + +theorem prove_exact_with_high_mask_limit_thm (x : BitVec 8) : + some ((x &&& 224#8).sdiv 224#8) ⊑ + if (-signExtend 9 (x.sshiftRight 5)).msb = (-signExtend 9 (x.sshiftRight 5)).getMsbD 1 then some (-x.sshiftRight 5) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean index e5b4a785c..d7b1c7913 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean @@ -34,6 +34,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -64,6 +65,7 @@ theorem shl1_nsw_proof : shl1_nsw_before ⊑ shl1_nsw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -96,6 +98,7 @@ theorem shl1_nsw_not_exact_proof : shl1_nsw_not_exact_before ⊑ shl1_nsw_not_ex simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -130,6 +133,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -162,6 +166,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean index c09bd68e3..7f6531736 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo_proof.lean @@ -8,15 +8,15 @@ theorem t0_thm (x : BitVec 8) : x.sdiv 32#8 = x.sshiftRight 5 := sorry theorem shl1_nsw_thm (x x_1 : BitVec 8) : ((if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind - fun a => if a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a)) ⊑ + fun y' => if y' = 0#8 ∨ x_1 = intMin 8 ∧ y' = 255#8 then none else some (x_1.sdiv y')) ⊑ if 8#8 ≤ x then none else some (x_1.sshiftRight x.toNat) := sorry theorem shl1_nsw_not_exact_thm (x x_1 : BitVec 8) : ((if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none else if 8#8 ≤ x then none else some (1#8 <<< x.toNat)).bind - fun a => if a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a)) ⊑ + fun y' => if y' = 0#8 ∨ x_1 = intMin 8 ∧ y' = 255#8 then none else some (x_1.sdiv y')) ⊑ (if (1#8 <<< x.toNat).sshiftRight x.toNat = 1#8 then none else 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 a = 0#8 ∨ x_1 = intMin 8 ∧ a = 255#8 then none else some (x_1.sdiv a) := sorry + fun y' => if y' = 0#8 ∨ x_1 = intMin 8 ∧ y' = 255#8 then none else some (x_1.sdiv y') := sorry theorem prove_exact_with_high_mask_thm (x : BitVec 8) : (x &&& 248#8).sdiv 4#8 = x.sshiftRight 2 &&& 254#8 := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean new file mode 100644 index 000000000..3f906d6bb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean @@ -0,0 +1,643 @@ +import SSA.Projects.InstCombine.tests.proofs.gsethlowbitshmaskhcanonicalize_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 gsethlowbitshmaskhcanonicalize_statements + +def shl_add_before := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg26 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_add_after := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg26 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by + unfold shl_add_before shl_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add + apply shl_add_thm + ---END shl_add + + + +def shl_add_nsw_before := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg25 : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_add_nsw_after := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg25 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by + unfold shl_add_nsw_before shl_add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nsw + apply shl_add_nsw_thm + ---END shl_add_nsw + + + +def shl_add_nuw_before := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg24 : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_add_nuw_after := [llvm| +{ +^0(%arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by + unfold shl_add_nuw_before shl_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nuw + apply shl_add_nuw_thm + ---END shl_add_nuw + + + +def shl_add_nsw_nuw_before := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg23 : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_add_nsw_nuw_after := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_add_nsw_nuw_proof : shl_add_nsw_nuw_before ⊑ shl_add_nsw_nuw_after := by + unfold shl_add_nsw_nuw_before shl_add_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_add_nsw_nuw + apply shl_add_nsw_nuw_thm + ---END shl_add_nsw_nuw + + + +def shl_nsw_add_before := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg22 overflow : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_add_after := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg22 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nsw_add_proof : shl_nsw_add_before ⊑ shl_nsw_add_after := by + unfold shl_nsw_add_before shl_nsw_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_add + apply shl_nsw_add_thm + ---END shl_nsw_add + + + +def shl_nsw_add_nsw_before := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg21 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_add_nsw_after := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg21 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nsw_add_nsw_proof : shl_nsw_add_nsw_before ⊑ shl_nsw_add_nsw_after := by + unfold shl_nsw_add_nsw_before shl_nsw_add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_add_nsw + apply shl_nsw_add_nsw_thm + ---END shl_nsw_add_nsw + + + +def shl_nsw_add_nuw_before := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg20 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_add_nuw_after := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after := by + unfold shl_nsw_add_nuw_before shl_nsw_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_add_nuw + apply shl_nsw_add_nuw_thm + ---END shl_nsw_add_nuw + + + +def shl_nsw_add_nsw_nuw_before := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg19 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_add_nsw_nuw_after := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nsw_add_nsw_nuw_proof : shl_nsw_add_nsw_nuw_before ⊑ shl_nsw_add_nsw_nuw_after := by + unfold shl_nsw_add_nsw_nuw_before shl_nsw_add_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_add_nsw_nuw + apply shl_nsw_add_nsw_nuw_thm + ---END shl_nsw_add_nsw_nuw + + + +def shl_nuw_add_before := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg18 overflow : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nuw_add_after := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg18 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nuw_add_proof : shl_nuw_add_before ⊑ shl_nuw_add_after := by + unfold shl_nuw_add_before shl_nuw_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nuw_add + apply shl_nuw_add_thm + ---END shl_nuw_add + + + +def shl_nuw_add_nsw_before := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg17 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nuw_add_nsw_after := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg17 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nuw_add_nsw_proof : shl_nuw_add_nsw_before ⊑ shl_nuw_add_nsw_after := by + unfold shl_nuw_add_nsw_before shl_nuw_add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nuw_add_nsw + apply shl_nuw_add_nsw_thm + ---END shl_nuw_add_nsw + + + +def shl_nuw_add_nuw_before := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg16 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nuw_add_nuw_after := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after := by + unfold shl_nuw_add_nuw_before shl_nuw_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nuw_add_nuw + apply shl_nuw_add_nuw_thm + ---END shl_nuw_add_nuw + + + +def shl_nuw_add_nsw_nuw_before := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg15 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nuw_add_nsw_nuw_after := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nuw_add_nsw_nuw_proof : shl_nuw_add_nsw_nuw_before ⊑ shl_nuw_add_nsw_nuw_after := by + unfold shl_nuw_add_nsw_nuw_before shl_nuw_add_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nuw_add_nsw_nuw + apply shl_nuw_add_nsw_nuw_thm + ---END shl_nuw_add_nsw_nuw + + + +def shl_nsw_nuw_add_before := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg14 overflow : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_nuw_add_after := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg14 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nsw_nuw_add_proof : shl_nsw_nuw_add_before ⊑ shl_nsw_nuw_add_after := by + unfold shl_nsw_nuw_add_before shl_nsw_nuw_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_nuw_add + apply shl_nsw_nuw_add_thm + ---END shl_nsw_nuw_add + + + +def shl_nsw_nuw_add_nsw_before := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg13 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_nuw_add_nsw_after := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg13 overflow : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem shl_nsw_nuw_add_nsw_proof : shl_nsw_nuw_add_nsw_before ⊑ shl_nsw_nuw_add_nsw_after := by + unfold shl_nsw_nuw_add_nsw_before shl_nsw_nuw_add_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_nuw_add_nsw + apply shl_nsw_nuw_add_nsw_thm + ---END shl_nsw_nuw_add_nsw + + + +def shl_nsw_nuw_add_nuw_before := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg12 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_nuw_add_nuw_after := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nsw_nuw_add_nuw_proof : shl_nsw_nuw_add_nuw_before ⊑ shl_nsw_nuw_add_nuw_after := by + unfold shl_nsw_nuw_add_nuw_before shl_nsw_nuw_add_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_nuw_add_nuw + apply shl_nsw_nuw_add_nuw_thm + ---END shl_nsw_nuw_add_nuw + + + +def shl_nsw_nuw_add_nsw_nuw_before := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg11 overflow : i32 + %3 = llvm.add %2, %1 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def shl_nsw_nuw_add_nsw_nuw_after := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem shl_nsw_nuw_add_nsw_nuw_proof : shl_nsw_nuw_add_nsw_nuw_before ⊑ shl_nsw_nuw_add_nsw_nuw_after := by + unfold shl_nsw_nuw_add_nsw_nuw_before shl_nsw_nuw_add_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN shl_nsw_nuw_add_nsw_nuw + apply shl_nsw_nuw_add_nsw_nuw_thm + ---END shl_nsw_nuw_add_nsw_nuw + + + +def bad_add0_before := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg2 : i32 + %2 = llvm.add %1, %arg3 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def bad_add0_after := [llvm| +{ +^0(%arg2 : i32, %arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg2 overflow : i32 + %2 = llvm.add %1, %arg3 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem bad_add0_proof : bad_add0_before ⊑ bad_add0_after := by + unfold bad_add0_before bad_add0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN bad_add0 + apply bad_add0_thm + ---END bad_add0 + + + +def bad_add1_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg1 : i32 + %2 = llvm.add %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def bad_add1_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg1 overflow : i32 + %2 = llvm.add %1, %0 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem bad_add1_proof : bad_add1_before ⊑ bad_add1_after := by + unfold bad_add1_before bad_add1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN bad_add1 + apply bad_add1_thm + ---END bad_add1 + + + +def bad_add2_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def bad_add2_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg0 overflow : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem bad_add2_proof : bad_add2_before ⊑ bad_add2_after := by + unfold bad_add2_before bad_add2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN bad_add2 + apply bad_add2_thm + ---END bad_add2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize_proof.lean new file mode 100644 index 000000000..a63989e18 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize_proof.lean @@ -0,0 +1,146 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsethlowbitshmaskhcanonicalize_proof +theorem shl_add_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_add_nsw_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none else some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_add_nuw_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => + if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_add_nsw_nuw_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none + else if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nsw_add_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nsw_add_nsw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none else some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nsw_add_nuw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nsw_add_nsw_nuw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none + else if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nuw_add_thm (x : BitVec 32) : + ((if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nuw_add_nsw_thm (x : BitVec 32) : + ((if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none else some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nuw_add_nuw_thm (x : BitVec 32) : + ((if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nuw_add_nsw_nuw_thm (x : BitVec 32) : + ((if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none + else if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nsw_nuw_add_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + 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)).bind + fun x' => some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nsw_nuw_add_nsw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + 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)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none else some (x' + 4294967295#32)) ⊑ + (if (4294967295#32 <<< x.toNat).sshiftRight x.toNat = 4294967295#32 then none + else if 32#32 ≤ x then none else some (4294967295#32 <<< x.toNat)).bind + fun x' => some (x' ^^^ 4294967295#32) := sorry + +theorem shl_nsw_nuw_add_nuw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + 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)).bind + fun x' => + if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem shl_nsw_nuw_add_nsw_nuw_thm (x : BitVec 32) : + ((if (1#32 <<< x.toNat).sshiftRight x.toNat = 1#32 then none + 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)).bind + fun x' => + if x'.msb = (4294967295#32).msb ∧ ¬(x' + 4294967295#32).msb = x'.msb then none + else if x' + 4294967295#32 < x' ∨ x' + 4294967295#32 < 4294967295#32 then none else some (x' + 4294967295#32)) ⊑ + some 4294967295#32 := sorry + +theorem bad_add0_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) fun a => some (a + x)) ⊑ + (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 => some (a + x) := sorry + +theorem bad_add1_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => some (x' + 1#32)) ⊑ + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => if x' + 1#32 < x' ∨ x' + 1#32 < 1#32 then none else some (x' + 1#32) := sorry + +theorem bad_add2_thm (x : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x' => some (x' + 4294967294#32)) ⊑ + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun x' => some (x' + 4294967294#32) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean index 81d775be6..e46720ce7 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean @@ -37,6 +37,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -73,6 +74,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean index d0eb4adc2..493050aeb 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean @@ -40,6 +40,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem shl_add_nuw_and_nsw_proof : shl_add_nuw_and_nsw_before ⊑ shl_add_nuw_a simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean index 6cf110b12..168114f75 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean @@ -35,6 +35,7 @@ theorem shl_shl_proof : shl_shl_before ⊑ shl_shl_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem ashr_shl_constants_proof : ashr_shl_constants_before ⊑ ashr_shl_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -136,6 +139,7 @@ theorem shl_lshr_demand1_proof : shl_lshr_demand1_before ⊑ shl_lshr_demand1_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -172,6 +176,7 @@ theorem shl_lshr_demand6_proof : shl_lshr_demand6_before ⊑ shl_lshr_demand6_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -208,6 +213,7 @@ theorem lshr_shl_demand1_proof : lshr_shl_demand1_before ⊑ lshr_shl_demand1_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -244,6 +250,7 @@ theorem lshr_shl_demand3_proof : lshr_shl_demand3_before ⊑ lshr_shl_demand3_af simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean index 3d11b8570..900728ebf 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift_proof.lean @@ -9,24 +9,24 @@ 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 ashr_shl_constants_thm (x : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun a => some (a <<< 3)) ⊑ - Option.bind (if 32#32 ≤ x then none else some ((4294967263#32).sshiftRight x.toNat)) fun a => - if (a <<< 3).sshiftRight 3 = a then none else some (a <<< 3) := sorry + (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' => + if (x' <<< 3).sshiftRight 3 = x' then none else some (x' <<< 3) := sorry theorem shl_lshr_demand1_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (40#8 <<< x.toNat)) fun a => some (a >>> 3 ||| 224#8)) ⊑ - Option.bind (if 8#8 ≤ x then none else some (5#8 <<< x.toNat)) fun a => some (a ||| 224#8) := sorry + (Option.bind (if 8#8 ≤ x then none else some (40#8 <<< x.toNat)) fun x => some (x >>> 3 ||| 224#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (5#8 <<< x.toNat)) fun x' => some (x' ||| 224#8) := sorry theorem shl_lshr_demand6_thm (x : BitVec 16) : - (Option.bind (if 16#16 ≤ x then none else some (32912#16 <<< x.toNat)) fun a => some (a >>> 4 &&& 4094#16)) ⊑ - Option.bind (if 16#16 ≤ x then none else some (2057#16 <<< x.toNat)) fun a => some (a &&& 4094#16) := sorry + (Option.bind (if 16#16 ≤ x then none else some (32912#16 <<< x.toNat)) fun x => some (x >>> 4 &&& 4094#16)) ⊑ + Option.bind (if 16#16 ≤ x then none else some (2057#16 <<< x.toNat)) fun x' => some (x' &&& 4094#16) := sorry theorem lshr_shl_demand1_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => some (a <<< 3 ||| 7#8)) ⊑ - Option.bind (if 8#8 ≤ x then none else some (224#8 >>> x.toNat)) fun a => some (a ||| 7#8) := sorry + (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun x => some (x <<< 3 ||| 7#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (224#8 >>> x.toNat)) fun x' => some (x' ||| 7#8) := sorry theorem lshr_shl_demand3_thm (x : BitVec 8) : - (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => some (a <<< 3 ||| 3#8)) ⊑ - Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun a => - (if a <<< 3 >>> 3 = a then none else some (a <<< 3)).bind fun a => some (a ||| 3#8) := sorry + (Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun x => some (x <<< 3 ||| 3#8)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (28#8 >>> x.toNat)) fun x => + (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => some (x' ||| 3#8) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean new file mode 100644 index 000000000..3d238e735 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean @@ -0,0 +1,80 @@ +import SSA.Projects.InstCombine.tests.proofs.gshifthsra_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 gshifthsra_statements + +def ashr_ashr_before := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.ashr %arg7, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_ashr_after := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = llvm.ashr %arg7, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem ashr_ashr_proof : ashr_ashr_before ⊑ ashr_ashr_after := by + unfold ashr_ashr_before ashr_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_ashr + apply ashr_ashr_thm + ---END ashr_ashr + + + +def ashr_overshift_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 15 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 17 : i32}> : () -> i32 + %2 = llvm.ashr %arg6, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def ashr_overshift_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = llvm.ashr %arg6, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem ashr_overshift_proof : ashr_overshift_before ⊑ ashr_overshift_after := by + unfold ashr_overshift_before ashr_overshift_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr_overshift + apply ashr_overshift_thm + ---END ashr_overshift + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthsra_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthsra_proof.lean new file mode 100644 index 000000000..88d580529 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthsra_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshifthsra_proof +theorem ashr_ashr_thm (x : BitVec 32) : (x.sshiftRight 5).sshiftRight 7 = x.sshiftRight 12 := sorry + +theorem ashr_overshift_thm (x : BitVec 32) : (x.sshiftRight 15).sshiftRight 17 = x.sshiftRight 31 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean index 66e731864..9a207e58e 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean @@ -40,6 +40,7 @@ theorem src_srem_shl_demand_max_signbit_proof : src_srem_shl_demand_max_signbit_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem src_srem_shl_demand_min_signbit_proof : src_srem_shl_demand_min_signbit_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -112,6 +114,7 @@ theorem src_srem_shl_demand_max_mask_proof : src_srem_shl_demand_max_mask_before simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -150,6 +153,7 @@ theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_proof : src_srem_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -188,6 +192,7 @@ theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_proof : src_srem_sh simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -226,6 +231,7 @@ theorem src_srem_shl_demand_eliminate_signbit_proof : src_srem_shl_demand_elimin simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -264,6 +270,7 @@ theorem src_srem_shl_demand_max_mask_hit_demand_proof : src_srem_shl_demand_max_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -300,6 +307,7 @@ theorem set_shl_mask_proof : set_shl_mask_before ⊑ set_shl_mask_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean index 0e9463eb2..76e130ca6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand_proof.lean @@ -18,30 +18,30 @@ theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_thm (x : BitVec 32 some ((x - x.sdiv 4#32 * 4#32) <<< 29 &&& 3221225472#32) ⊑ (if ((x - x.sdiv 4#32 * 4#32) <<< 29).sshiftRight 29 = x - x.sdiv 4#32 * 4#32 then none else some ((x - x.sdiv 4#32 * 4#32) <<< 29)).bind - fun a => some (a &&& 3221225472#32) := sorry + fun x' => some (x' &&& 3221225472#32) := sorry theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_thm (x : BitVec 32) : some ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1 &&& 3221225474#32) ⊑ (if ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1).sshiftRight 1 = x - x.sdiv 536870912#32 * 536870912#32 then none else some ((x - x.sdiv 536870912#32 * 536870912#32) <<< 1)).bind - fun a => some (a &&& 3221225474#32) := sorry + fun x' => some (x' &&& 3221225474#32) := sorry theorem src_srem_shl_demand_eliminate_signbit_thm (x : BitVec 32) : some ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1 &&& 2#32) ⊑ (if ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1).sshiftRight 1 = x - x.sdiv 1073741824#32 * 1073741824#32 then none else some ((x - x.sdiv 1073741824#32 * 1073741824#32) <<< 1)).bind - fun a => some (a &&& 2#32) := sorry + fun x' => some (x' &&& 2#32) := sorry theorem src_srem_shl_demand_max_mask_hit_demand_thm (x : BitVec 32) : some ((x - x.sdiv 4#32 * 4#32) <<< 1 &&& 4294967292#32) ⊑ (if ((x - x.sdiv 4#32 * 4#32) <<< 1).sshiftRight 1 = x - x.sdiv 4#32 * 4#32 then none else some ((x - x.sdiv 4#32 * 4#32) <<< 1)).bind - fun a => some (a &&& 4294967292#32) := sorry + fun x' => some (x' &&& 4294967292#32) := sorry theorem set_shl_mask_thm (x x_1 : BitVec 32) : - (Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 196609#32) <<< x.toNat)) fun a => some (a &&& 65536#32)) ⊑ - Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 65537#32) <<< x.toNat)) fun a => - some (a &&& 65536#32) := sorry + (Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 196609#32) <<< x.toNat)) fun x' => some (x' &&& 65536#32)) ⊑ + Option.bind (if 32#32 ≤ x then none else some ((x_1 ||| 65537#32) <<< x.toNat)) fun x' => + some (x' &&& 65536#32) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean index 5b78c4c1a..4055af384 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean @@ -35,6 +35,7 @@ theorem add_shl_same_amount_proof : add_shl_same_amount_before ⊑ add_shl_same_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -66,6 +67,7 @@ theorem add_shl_same_amount_nuw_proof : add_shl_same_amount_nuw_before ⊑ add_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -97,6 +99,7 @@ theorem add_shl_same_amount_partial_nsw1_proof : add_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -128,6 +131,7 @@ theorem add_shl_same_amount_partial_nsw2_proof : add_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -159,6 +163,7 @@ theorem add_shl_same_amount_partial_nuw1_proof : add_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -190,6 +195,7 @@ theorem add_shl_same_amount_partial_nuw2_proof : add_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -221,6 +227,7 @@ theorem sub_shl_same_amount_proof : sub_shl_same_amount_before ⊑ sub_shl_same_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -252,6 +259,7 @@ theorem sub_shl_same_amount_nuw_proof : sub_shl_same_amount_nuw_before ⊑ sub_s simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -283,6 +291,7 @@ theorem sub_shl_same_amount_partial_nsw1_proof : sub_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -314,6 +323,7 @@ theorem sub_shl_same_amount_partial_nsw2_proof : sub_shl_same_amount_partial_nsw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -345,6 +355,7 @@ theorem sub_shl_same_amount_partial_nuw1_proof : sub_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -376,6 +387,7 @@ theorem sub_shl_same_amount_partial_nuw2_proof : sub_shl_same_amount_partial_nuw simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -409,6 +421,7 @@ theorem add_shl_same_amount_constants_proof : add_shl_same_amount_constants_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean index eb56796c2..e03f6af8c 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor_proof.lean @@ -6,14 +6,14 @@ open BitVec section gshlhfactor_proof theorem add_shl_same_amount_thm (x x_1 x_2 : BitVec 6) : (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => - Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a + a_1)) ⊑ + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun y' => some (a + y')) ⊑ if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry theorem add_shl_same_amount_nuw_thm (x x_1 x_2 : BitVec 64) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 64#64 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 64#64 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + fun y' => if a + y' < a ∨ a + y' < y' then none else some (a + y')) ⊑ (if x_2 + x < x_2 ∨ x_2 + x < x then none else some (x_2 + x)).bind fun a => if a <<< x_1.toNat >>> x_1.toNat = a then none else if 64#64 ≤ x_1 then none else some (a <<< x_1.toNat) := sorry @@ -23,40 +23,40 @@ theorem add_shl_same_amount_partial_nsw1_thm (x x_1 x_2 : BitVec 6) : fun a => (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => some (a + a_1)) ⊑ + fun y' => some (a + y')) ⊑ if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry theorem add_shl_same_amount_partial_nsw2_thm (x x_1 x_2 : BitVec 6) : (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => if a.msb = a_1.msb ∧ ¬(a + a_1).msb = a.msb then none else some (a + a_1)) ⊑ + fun y' => if a.msb = y'.msb ∧ ¬(a + y').msb = a.msb then none else some (a + y')) ⊑ if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry theorem add_shl_same_amount_partial_nuw1_thm (x x_1 x_2 : BitVec 6) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => some (a + a_1)) ⊑ + fun y' => some (a + y')) ⊑ if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry theorem add_shl_same_amount_partial_nuw2_thm (x x_1 x_2 : BitVec 6) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => - Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => - if a + a_1 < a ∨ a + a_1 < a_1 then none else some (a + a_1)) ⊑ + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun y' => + if a + y' < a ∨ a + y' < y' then none else some (a + y')) ⊑ if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat + x <<< x_1.toNat) := sorry theorem sub_shl_same_amount_thm (x x_1 x_2 : BitVec 6) : (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => - Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => some (a - a_1)) ⊑ + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun y' => some (a - y')) ⊑ if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry theorem sub_shl_same_amount_nuw_thm (x x_1 x_2 : BitVec 64) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 64#64 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 64#64 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => if a < a_1 then none else some (a - a_1)) ⊑ + fun y' => if a < y' then none else some (a - y')) ⊑ (if x_2 < x then none else some (x_2 - x)).bind fun a => if a <<< x_1.toNat >>> x_1.toNat = a then none else if 64#64 ≤ x_1 then none else some (a <<< x_1.toNat) := sorry @@ -66,15 +66,15 @@ theorem sub_shl_same_amount_partial_nsw1_thm (x x_1 x_2 : BitVec 6) : fun a => (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => some (a - a_1)) ⊑ + fun y' => some (a - y')) ⊑ if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry theorem sub_shl_same_amount_partial_nsw2_thm (x x_1 x_2 : BitVec 6) : (Option.bind (if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)) fun a => (if (x <<< x_1.toNat).sshiftRight x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => - if (signExtend 7 a - signExtend 7 a_1).msb = (signExtend 7 a - signExtend 7 a_1).getMsbD 1 then some (a - a_1) + fun y' => + if (signExtend 7 a - signExtend 7 y').msb = (signExtend 7 a - signExtend 7 y').getMsbD 1 then some (a - y') else none) ⊑ if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry @@ -82,18 +82,18 @@ theorem sub_shl_same_amount_partial_nuw1_thm (x x_1 x_2 : BitVec 6) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => (if x <<< x_1.toNat >>> x_1.toNat = x then none else if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)).bind - fun a_1 => some (a - a_1)) ⊑ + fun y' => some (a - y')) ⊑ if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry theorem sub_shl_same_amount_partial_nuw2_thm (x x_1 x_2 : BitVec 6) : ((if x_2 <<< x_1.toNat >>> x_1.toNat = x_2 then none else if 6#6 ≤ x_1 then none else some (x_2 <<< x_1.toNat)).bind fun a => - Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun a_1 => - if a < a_1 then none else some (a - a_1)) ⊑ + Option.bind (if 6#6 ≤ x_1 then none else some (x <<< x_1.toNat)) fun y' => + if a < y' then none else some (a - y')) ⊑ if 6#6 ≤ x_1 then none else some ((x_2 - x) <<< x_1.toNat) := sorry theorem add_shl_same_amount_constants_thm (x : BitVec 8) : (Option.bind (if 8#8 ≤ x then none else some (4#8 <<< x.toNat)) fun a => - Option.bind (if 8#8 ≤ x then none else some (3#8 <<< x.toNat)) fun a_1 => some (a + a_1)) ⊑ + Option.bind (if 8#8 ≤ x then none else some (3#8 <<< x.toNat)) fun y' => some (a + y')) ⊑ if 8#8 ≤ x then none else some (7#8 <<< x.toNat) := sorry diff --git a/SSA/Projects/InstCombine/tests/proofs/gsignext.lean b/SSA/Projects/InstCombine/tests/proofs/gsignext.lean new file mode 100644 index 000000000..4d6013630 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsignext.lean @@ -0,0 +1,157 @@ +import SSA.Projects.InstCombine.tests.proofs.gsignext_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 gsignext_statements + +def sextinreg_before := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 65535 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -32768 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 32768 : i32}> : () -> i32 + %3 = llvm.and %arg14, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def sextinreg_after := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %1 = llvm.shl %arg14, %0 : i32 + %2 = llvm.ashr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sextinreg_proof : sextinreg_before ⊑ sextinreg_after := by + unfold sextinreg_before sextinreg_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sextinreg + apply sextinreg_thm + ---END sextinreg + + + +def sextinreg_alt_before := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 65535 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 32768 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -32768 : i32}> : () -> i32 + %3 = llvm.and %arg11, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def sextinreg_alt_after := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %1 = llvm.shl %arg11, %0 : i32 + %2 = llvm.ashr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sextinreg_alt_proof : sextinreg_alt_before ⊑ sextinreg_alt_after := by + unfold sextinreg_alt_before sextinreg_alt_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sextinreg_alt + apply sextinreg_alt_thm + ---END sextinreg_alt + + + +def sextinreg2_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 255 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -128 : i32}> : () -> i32 + %3 = llvm.and %arg6, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def sextinreg2_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 24 : i32}> : () -> i32 + %1 = llvm.shl %arg6, %0 : i32 + %2 = llvm.ashr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sextinreg2_proof : sextinreg2_before ⊑ sextinreg2_after := by + unfold sextinreg2_before sextinreg2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sextinreg2 + apply sextinreg2_thm + ---END sextinreg2 + + + +def ashr_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 67108864 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -67108864 : i32}> : () -> i32 + %3 = llvm.lshr %arg1, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def ashr_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.ashr %arg1, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem ashr_proof : ashr_before ⊑ ashr_after := by + unfold ashr_before ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN ashr + apply ashr_thm + ---END ashr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsignext_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsignext_proof.lean new file mode 100644 index 000000000..13792d627 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsignext_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsignext_proof +theorem sextinreg_thm (x : BitVec 32) : (x &&& 65535#32 ^^^ 4294934528#32) + 32768#32 = (x <<< 16).sshiftRight 16 := sorry + +theorem sextinreg_alt_thm (x : BitVec 32) : (x &&& 65535#32 ^^^ 32768#32) + 4294934528#32 = (x <<< 16).sshiftRight 16 := sorry + +theorem sextinreg2_thm (x : BitVec 32) : (x &&& 255#32 ^^^ 128#32) + 4294967168#32 = (x <<< 24).sshiftRight 24 := sorry + +theorem ashr_thm (x : BitVec 32) : (x >>> 5 ^^^ 67108864#32) + 4227858432#32 = x.sshiftRight 5 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean new file mode 100644 index 000000000..64aac43e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gsremhcanonicalize_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 gsremhcanonicalize_statements + +def test_srem_canonicalize_op0_before := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg8 overflow : i32 + %2 = llvm.srem %1, %arg9 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test_srem_canonicalize_op0_after := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.srem %arg8, %arg9 : i32 + %2 = llvm.sub %0, %1 overflow : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test_srem_canonicalize_op0_proof : test_srem_canonicalize_op0_before ⊑ test_srem_canonicalize_op0_after := by + unfold test_srem_canonicalize_op0_before test_srem_canonicalize_op0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN test_srem_canonicalize_op0 + apply test_srem_canonicalize_op0_thm + ---END test_srem_canonicalize_op0 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize_proof.lean new file mode 100644 index 000000000..dbd7644ab --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsremhcanonicalize_proof +theorem test_srem_canonicalize_op0_thm (x x_1 : BitVec 32) : + ((if (-signExtend 33 x_1).msb = (-signExtend 33 x_1).getMsbD 1 then some (-x_1) else none).bind fun a => + Option.map (fun div => a - div * x) + (if x = 0#32 ∨ a = intMin 32 ∧ x = 4294967295#32 then none else some (a.sdiv x))) ⊑ + (Option.map (fun div => x_1 - div * x) + (if x = 0#32 ∨ x_1 = intMin 32 ∧ x = 4294967295#32 then none else some (x_1.sdiv x))).bind + fun a => if (-signExtend 33 a).msb = (-signExtend 33 a).getMsbD 1 then some (-a) else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean new file mode 100644 index 000000000..51faf7b10 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean @@ -0,0 +1,113 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhandhorhneghxor_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 gsubhandhorhneghxor_statements + +def sub_to_xor_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = llvm.or %arg14, %arg15 : i32 + %1 = llvm.and %arg14, %arg15 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.xor %arg14, %arg15 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by + unfold sub_to_xor_before sub_to_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_xor + apply sub_to_xor_thm + ---END sub_to_xor + + + +def sub_to_xor_or_commuted_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = llvm.or %arg7, %arg6 : i32 + %1 = llvm.and %arg6, %arg7 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_or_commuted_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.xor %arg6, %arg7 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_xor_or_commuted_after := by + unfold sub_to_xor_or_commuted_before sub_to_xor_or_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_xor_or_commuted + apply sub_to_xor_or_commuted_thm + ---END sub_to_xor_or_commuted + + + +def sub_to_xor_and_commuted_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = llvm.or %arg4, %arg5 : i32 + %1 = llvm.and %arg5, %arg4 : i32 + %2 = llvm.sub %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_and_commuted_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.xor %arg5, %arg4 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_to_xor_and_commuted_after := by + unfold sub_to_xor_and_commuted_before sub_to_xor_and_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN sub_to_xor_and_commuted + apply sub_to_xor_and_commuted_thm + ---END sub_to_xor_and_commuted + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor_proof.lean new file mode 100644 index 000000000..10966bb1c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor_proof.lean @@ -0,0 +1,12 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhandhorhneghxor_proof +theorem sub_to_xor_thm (x x_1 : BitVec 32) : (x_1 &&& x) - (x_1 ||| x) = -(x_1 ^^^ x) := sorry + +theorem sub_to_xor_or_commuted_thm (x x_1 : BitVec 32) : (x_1 &&& x) - (x ||| x_1) = -(x_1 ^^^ x) := sorry + +theorem sub_to_xor_and_commuted_thm (x x_1 : BitVec 32) : (x_1 &&& x) - (x ||| x_1) = -(x_1 ^^^ x) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean new file mode 100644 index 000000000..6dc8d4bf3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean @@ -0,0 +1,155 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhxor_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 gsubhxor_statements + +def low_mask_nsw_nuw_before := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 63 : i32}> : () -> i32 + %2 = llvm.and %arg13, %0 : i32 + %3 = llvm.sub %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def low_mask_nsw_nuw_after := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 63 : i32}> : () -> i32 + %2 = llvm.and %arg13, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem low_mask_nsw_nuw_proof : low_mask_nsw_nuw_before ⊑ low_mask_nsw_nuw_after := by + unfold low_mask_nsw_nuw_before low_mask_nsw_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN low_mask_nsw_nuw + apply low_mask_nsw_nuw_thm + ---END low_mask_nsw_nuw + + + +def arbitrary_mask_sub_i8_before := [llvm| +{ +^0(%arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 10 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.and %arg11, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def arbitrary_mask_sub_i8_after := [llvm| +{ +^0(%arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 10 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.and %arg11, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem arbitrary_mask_sub_i8_proof : arbitrary_mask_sub_i8_before ⊑ arbitrary_mask_sub_i8_after := by + unfold arbitrary_mask_sub_i8_before arbitrary_mask_sub_i8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN arbitrary_mask_sub_i8 + apply arbitrary_mask_sub_i8_thm + ---END arbitrary_mask_sub_i8 + + + +def not_masked_sub_i8_before := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.and %arg6, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def not_masked_sub_i8_after := [llvm| +{ +^0(%arg6 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.and %arg6, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem not_masked_sub_i8_proof : not_masked_sub_i8_before ⊑ not_masked_sub_i8_after := by + unfold not_masked_sub_i8_before not_masked_sub_i8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN not_masked_sub_i8 + apply not_masked_sub_i8_thm + ---END not_masked_sub_i8 + + + +def xor_add_before := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %2 = llvm.and %arg4, %0 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def xor_add_after := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 73 : i32}> : () -> i32 + %2 = llvm.and %arg4, %0 : i32 + %3 = llvm.sub %1, %2 overflow : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_add_proof : xor_add_before ⊑ xor_add_after := by + unfold xor_add_before xor_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN xor_add + apply xor_add_thm + ---END xor_add + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxor_proof.lean new file mode 100644 index 000000000..8534b470b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxor_proof.lean @@ -0,0 +1,26 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhxor_proof +theorem low_mask_nsw_nuw_thm (x : BitVec 32) : 63#32 - (x &&& 31#32) = x &&& 31#32 ^^^ 63#32 := sorry + +theorem arbitrary_mask_sub_i8_thm (x : BitVec 8) : + some (11#8 - (x &&& 10#8)) ⊑ + if (11#9 - signExtend 9 (x &&& 10#8)).msb = (11#9 - signExtend 9 (x &&& 10#8)).getMsbD 1 then + if 11#8 < x &&& 10#8 then none else some (11#8 - (x &&& 10#8)) + else none := sorry + +theorem not_masked_sub_i8_thm (x : BitVec 8) : + some (11#8 - (x &&& 7#8)) ⊑ + if (11#9 - signExtend 9 (x &&& 7#8)).msb = (11#9 - signExtend 9 (x &&& 7#8)).getMsbD 1 then + if 11#8 < x &&& 7#8 then none else some (11#8 - (x &&& 7#8)) + else none := sorry + +theorem xor_add_thm (x : BitVec 32) : + some ((x &&& 31#32 ^^^ 31#32) + 42#32) ⊑ + if (73#33 - signExtend 33 (x &&& 31#32)).msb = (73#33 - signExtend 33 (x &&& 31#32)).getMsbD 1 then + if 73#32 < x &&& 31#32 then none else some (73#32 - (x &&& 31#32)) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean index d16d32172..96f194c63 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean @@ -36,6 +36,7 @@ theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -68,6 +69,7 @@ theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_ simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -100,6 +102,7 @@ theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_t simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean index ad4bf4795..e817c2fba 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean @@ -39,6 +39,7 @@ theorem scalar0_proof : scalar0_before ⊑ scalar0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -74,6 +75,7 @@ theorem scalar1_proof : scalar1_before ⊑ scalar1_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -107,6 +109,7 @@ theorem in_constant_varx_mone_proof : in_constant_varx_mone_before ⊑ in_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -140,6 +143,7 @@ theorem in_constant_varx_14_proof : in_constant_varx_14_before ⊑ in_constant_v simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -173,6 +177,7 @@ theorem in_constant_mone_vary_proof : in_constant_mone_vary_before ⊑ in_consta simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -206,6 +211,7 @@ theorem in_constant_14_vary_proof : in_constant_14_vary_before ⊑ in_constant_1 simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -241,6 +247,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -276,6 +283,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -311,6 +319,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -344,6 +353,7 @@ theorem commutativity_constant_14_vary_proof : commutativity_constant_14_vary_be simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp diff --git a/SSA/Projects/InstCombine/tests/proofs/gxor2.lean b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean index f421317c4..82797a616 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gxor2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean @@ -40,6 +40,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -76,6 +77,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -116,6 +118,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -152,6 +155,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -185,6 +189,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -218,6 +223,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -248,6 +254,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -278,6 +285,7 @@ theorem test9b_proof : test9b_before ⊑ test9b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -308,6 +316,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -338,6 +347,7 @@ theorem test10b_proof : test10b_before ⊑ test10b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -374,6 +384,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -410,6 +421,7 @@ theorem test11b_proof : test11b_before ⊑ test11b_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -446,6 +458,7 @@ theorem test11c_proof : test11c_before ⊑ test11c_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -482,6 +495,7 @@ theorem test11d_proof : test11d_before ⊑ test11d_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -520,6 +534,7 @@ theorem test11e_proof : test11e_before ⊑ test11e_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -558,6 +573,7 @@ theorem test11f_proof : test11f_before ⊑ test11f_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -592,6 +608,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -626,6 +643,7 @@ theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -660,6 +678,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -694,6 +713,7 @@ theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -727,6 +747,7 @@ theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -760,6 +781,7 @@ theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -793,6 +815,7 @@ theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -826,6 +849,7 @@ theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -859,6 +883,7 @@ theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -892,6 +917,7 @@ theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -925,6 +951,7 @@ theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -958,6 +985,7 @@ theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_befo simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -996,6 +1024,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1034,6 +1063,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1070,6 +1100,7 @@ theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1106,6 +1137,7 @@ theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1142,6 +1174,7 @@ theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1178,6 +1211,7 @@ theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_n simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1214,6 +1248,7 @@ theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1250,6 +1285,7 @@ theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1286,6 +1322,7 @@ theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp @@ -1322,6 +1359,7 @@ theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notan simp_alive_peephole simp_alive_undef simp_alive_ops + try simp simp_alive_case_bash intros try simp From 21fdfded9e0b24e0fb599d41a64a793c9a36ad57 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Thu, 17 Oct 2024 14:40:13 +0100 Subject: [PATCH 05/21] Adding a log to the test-gen --- SSA/Projects/InstCombine/scripts/cfg.py | 3 +- SSA/Projects/InstCombine/scripts/test-gen.py | 30 +++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index 555e7e4ea..6c1edb8ab 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -4,4 +4,5 @@ if len(llvm_path) == 0: raise ValueError("You need to give the path to llvm in config.py") -test_path="SSA/Projects/InstCombine/tests/LLVM" \ No newline at end of file +test_path="SSA/Projects/InstCombine/tests/LLVM" +log_path="SSA/Projects/InstCombine/tests/log" \ No newline at end of file diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index fda512110..28a92ec4b 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -24,6 +24,7 @@ from xdsl.printer import Printer from multiprocessing import Pool from cfg import * +import argparse as arg # Initialize the MLIR context and register the LLVM dialect ctx = MLContext(allow_unregistered=True) @@ -50,11 +51,9 @@ "llvm.sub", "llvm.sdiv", } -allowed_unregistered = set() # { +allowed_unregistered = set() -# "llvm.icmp" -# } def allowed(op): # we do not support void returns. Someone should look into this! if isinstance(op,ReturnOp) and op.arg is None: @@ -108,11 +107,13 @@ def parse_from_file(file_name): return parse_module(read_file(file_name)) rm_tests = "\nrm -r " + test_path + "/*\n" +rm_logs = "\nrm -r " + log_path + "/*\n" +subprocess.run(rm_tests, shell=True) +subprocess.run(rm_logs, shell=True) llvm_test_path = llvm_path + "/llvm/test/Transforms/InstCombine" -subprocess.run(rm_tests, shell=True) expensive_files = [ "pr96012.ll" @@ -127,10 +128,10 @@ def process_file(file): print("file too expensive, skipping") return stem = "g" + filename.split(".")[0].replace("-", "h") - output = "" - full_name = f"{llvm_test_path}/{filename}" run_process1 = f"opt -passes=instcombine -S {full_name} | mlir-translate -import-llvm | mlir-opt --mlir-print-op-generic" + log_file = full_name.replace("LLVM", "logs").replace(".lean", ".txt") + log = ["success"] print(run_process1) process1 = subprocess.run( run_process1, @@ -166,9 +167,18 @@ def process_file(file): if other is None: print(f"Cannot function function with sym name {func.sym_name}") continue - - if not all(allowed(o) for o in other.walk()): - print(f"{other.sym_name} contains unsupported operations, ignoring") + + flag = False + for op in other.walk(): + log.append(op.name + '\n') + if not allowed(op) and not flag: + flag = True + continue + + with open(log_file, "a+") as l: + l.writelines(log) + + if flag: continue s1 = showr(func.body) @@ -225,4 +235,4 @@ def {name}_after := [llvm| f3.write(o1) with Pool(7) as p: - p.map(process_file, os.listdir(directory)) + p.map(process_file, os.listdir(directory)) \ No newline at end of file From 55789ff26f64fb04c8a7acc1adec1546d584fd3d Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Fri, 18 Oct 2024 13:17:20 +0100 Subject: [PATCH 06/21] Updated test-gen to create log fiels --- SSA/Projects/InstCombine/scripts/cfg.py | 49 +++- SSA/Projects/InstCombine/scripts/test-gen.py | 221 +++++++++---------- 2 files changed, 151 insertions(+), 119 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index 6c1edb8ab..4ce777a6b 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -1,8 +1,51 @@ +#!/usr/bin/env python3 +from xdsl.dialects.llvm import LLVM +from xdsl.context import MLContext +from xdsl.dialects.builtin import ( + Builtin, +) +import os +from enum import Enum + # The path from lean-mlir to llvm-project -llvm_path="" +llvm_path = "../llvm-project-main" if len(llvm_path) == 0: raise ValueError("You need to give the path to llvm in config.py") -test_path="SSA/Projects/InstCombine/tests/LLVM" -log_path="SSA/Projects/InstCombine/tests/log" \ No newline at end of file +test_path = "SSA/Projects/InstCombine/tests/LLVM" +log_path = "SSA/Projects/InstCombine/tests/logs" +llvm_test_path = llvm_path + "/llvm/test/Transforms/InstCombine" +expensive_files = [ + "pr96012.ll", +] +directory = os.fsencode(llvm_test_path) + +# Initialize the MLIR context and register the LLVM dialect +ctx = MLContext(allow_unregistered=True) +ctx.load_dialect(LLVM) +ctx.load_dialect(Builtin) + + +allowed_names = { + "llvm.return", + "llvm.mul", + "llvm.add", + "llvm.sub", + "llvm.shl", + "llvm.and", + "llvm.or", + "llvm.xor", + "llvm.mlir.constant", + "llvm.lshr", + "llvm.ashr", + "llvm.urem", + "llvm.srem", + "llvm.add", + "llvm.mul", + "llvm.sub", + "llvm.sdiv", +} +allowed_unregistered = set() + +Msg = Enum('Msg', ['FUNC_NAME', 'OP', 'E_PARSE', 'E_UNSUPPORTED', 'E_EMPTY', 'E_NOT_FOUND', 'E_NOT_CHANGED', 'E_VECTOR']) \ No newline at end of file diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index 28a92ec4b..8cecd250e 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -1,57 +1,16 @@ #!/usr/bin/env python3 -from xdsl.dialects.builtin import ModuleOp -from xdsl.dialects.llvm import LLVM, ReturnOp +from xdsl.dialects.llvm import ReturnOp from xdsl.utils.exceptions import ParseError -from xdsl.context import MLContext -from xdsl.dialects import get_all_dialects from xdsl.dialects.llvm import FuncOp +from xdsl.dialects.builtin import ModuleOp from xdsl.parser import Parser from xdsl.printer import Printer -from xdsl.dialects.builtin import ( - Builtin, - IndexType, - IntegerAttr, - IntegerType, - ModuleOp, - StringAttr, - i32, - i64, -) import os import io import subprocess -from pathlib import Path from xdsl.printer import Printer from multiprocessing import Pool from cfg import * -import argparse as arg - -# Initialize the MLIR context and register the LLVM dialect -ctx = MLContext(allow_unregistered=True) -ctx.load_dialect(LLVM) -ctx.load_dialect(Builtin) - - -allowed_names = { - "llvm.return", - "llvm.mul", - "llvm.add", - "llvm.sub", - "llvm.shl", - "llvm.and", - "llvm.or", - "llvm.xor", - "llvm.mlir.constant", - "llvm.lshr", - "llvm.ashr", - "llvm.urem", - "llvm.srem", - "llvm.add", - "llvm.mul", - "llvm.sub", - "llvm.sdiv", -} -allowed_unregistered = set() def allowed(op): @@ -106,19 +65,57 @@ def parse_module(module): def parse_from_file(file_name): return parse_module(read_file(file_name)) -rm_tests = "\nrm -r " + test_path + "/*\n" -rm_logs = "\nrm -r " + log_path + "/*\n" -subprocess.run(rm_tests, shell=True) -subprocess.run(rm_logs, shell=True) +def remove(): + rm_tests = "\nrm -r " + test_path + "/*\n" + rm_logs = "\nrm -r " + log_path + "/*\n" + subprocess.run(rm_tests, shell=True) + subprocess.run(rm_logs, shell=True) + +def make_theorem(s1, s2, name): + return f""" +def {name}_before := [llvm| +{s2} +] +def {name}_after := [llvm| +{s1} +] +theorem {name}_proof : {name}_before ⊑ {name}_after := by + unfold {name}_before {name}_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + intros + try simp + ---BEGIN {name} + all_goals (try extract_goal ; sorry) + ---END {name}\n\n\n""" + +def make_intro(stem): + return f""" +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) -llvm_test_path = llvm_path + "/llvm/test/Transforms/InstCombine" +set_option linter.deprecated false +set_option linter.unreachableTactic false +set_option linter.unusedTactic false +section {stem}_statements\n""" +def print_log(log, log_file): + with open(log_file, "a+") as l: + l.writelines(log) -expensive_files = [ - "pr96012.ll" -] -directory = os.fsencode(llvm_test_path) +def op_name(op): + if op.name == "builtin.unregistered": + return f"builtin.unregistered: {op.op_name.data}" + return op.name # for file in os.listdir(directory): def process_file(file): @@ -130,9 +127,10 @@ def process_file(file): stem = "g" + filename.split(".")[0].replace("-", "h") full_name = f"{llvm_test_path}/{filename}" run_process1 = f"opt -passes=instcombine -S {full_name} | mlir-translate -import-llvm | mlir-opt --mlir-print-op-generic" - log_file = full_name.replace("LLVM", "logs").replace(".lean", ".txt") - log = ["success"] + log_file = f"{log_path}/{filename}".replace(".ll", ".txt") + log = [] print(run_process1) + process1 = subprocess.run( run_process1, shell=True, @@ -143,44 +141,51 @@ def process_file(file): module1 = parse_module( process1.stdout ) - module2 = parse_module( - subprocess.run( + + process2 = subprocess.run( f"mlir-translate -import-llvm {full_name} | mlir-opt --mlir-print-op-generic", shell=True, capture_output=True, encoding="utf-8" - ).stdout ) + + module2 = parse_module( + process2.stdout + ) + if module1 is None or module2 is None: + log.append(f"{Msg.E_PARSE.value}: {filename}: parsing has failed\n\n") + print_log(log, log_file) return - funcs = [ - func - for func in module1.walk() - if isinstance(func, FuncOp) - and all(allowed(o) for o in func.walk()) - and size(func) > 1 - ] funcs2 = {f.sym_name.data: f for f in module2.walk() if isinstance(f, FuncOp)} - for func in funcs: - other = funcs2.get(func.sym_name.data, None) - if other is None: - print(f"Cannot function function with sym name {func.sym_name}") + for func in module1.walk(): + if not isinstance(func, FuncOp): + # log.append(f"{type(func)}\n") continue + func_name = func.sym_name + log.append(f"{Msg.FUNC_NAME.value}: {func_name}\n") flag = False - for op in other.walk(): - log.append(op.name + '\n') - if not allowed(op) and not flag: + for op in func.walk(): + if not allowed(op): flag = True + log.append(f"{Msg.E_UNSUPPORTED.value}: {func_name} has unsupported operation: {op_name(op)}\n\n") continue - - with open(log_file, "a+") as l: - l.writelines(log) - if flag: continue - + + if not size(func) > 1: + log.append(f"{Msg.E_EMPTY.value}: {func_name} is empty\n\n") + continue + + other = funcs2.get(func.sym_name.data, None) + func_name = func.sym_name + + if other is None: + log.append(f"{Msg.E_NOT_FOUND.value}: Cannot find function after optimization with sym name: {func_name}\n\n") + continue + s1 = showr(func.body) s2 = showr(other.body) # Our parser is bad, someone should really fix this @@ -188,51 +193,35 @@ def process_file(file): s2 = s2.replace('"value"', 'value') name = func.sym_name.data.replace("-","h") if s1 == s2: + log.append(f"{Msg.E_NOT_CHANGED.value}: {func_name} is unchanged by InstCombine\n\n") continue if "vector" in (s1 + s2): + log.append(f"{func_name} contains vectors which are unsupported\n\n") continue - print(f"-----{filename}.{func.sym_name}-----") - o1 = f""" -def {name}_before := [llvm| -{s2} -] -def {name}_after := [llvm| -{s1} -] -theorem {name}_proof : {name}_before ⊑ {name}_after := by - unfold {name}_before {name}_after - simp_alive_peephole - simp_alive_undef - simp_alive_ops - try simp - simp_alive_case_bash - intros - try simp - ---BEGIN {name} - all_goals (try extract_goal ; sorry) - ---END {name}\n\n\n""" + + tmp_log = [] + flag = False + for op in other.walk(): + tmp_log.append(f"{Msg.OP.value}: {op_name(op)}\n") + if not allowed(op): + log.append(f"{Msg.E_UNSUPPORTED.value}: {func_name} has unsupported operation after optimization: {op_name(op)}\n\n") + flag = True + if flag: + continue + log = log + tmp_log + log.append("\n") + + print(f"-----{filename}.{func_name}-----") + o1 = make_theorem(s1, s2, name) print(o1) write_file = f"{test_path}/{stem}.lean" with open(write_file, "a+") as f3: if os.stat(write_file).st_size == 0: - f3.write( - f""" -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 {stem}_statements - """ - ) + f3.write(make_intro(stem)) f3.write(o1) - -with Pool(7) as p: - p.map(process_file, os.listdir(directory)) \ No newline at end of file + print_log(log, log_file) + +if __name__ == "__main__": + remove() + with Pool(7) as p: + p.map(process_file, os.listdir(directory)) \ No newline at end of file From 979785cde27b96baf1f89b4f0a2cd1c0f7a5b6d1 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Fri, 18 Oct 2024 15:53:08 +0100 Subject: [PATCH 07/21] Updated proof-gen to log build failures --- SSA/Projects/InstCombine/scripts/proof-gen.py | 45 +++++++++++++------ SSA/Projects/InstCombine/scripts/test-gen.py | 2 +- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index 481b603a7..3a0360176 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -10,29 +10,46 @@ def get_lines(msg): pattern = re.compile(r"info: .+?:(\d+):\d+: (.+?)(?=warning)", flags=re.DOTALL) # Find all matches in the log matches = pattern.findall(msg) - lines = [(int(l), m) for (l, m) in matches if "no goals to be solved" not in m] + lines_thm = [(int(l), m) for (l, m) in matches if "no goals to be solved" not in m] + lines_done = [(int(l), m) for (l, m) in matches if "no goals to be solved" in m] # Replace this with your actual implementation - return lines + return lines_thm, lines_done # return [(1, "New message for line 1"), (3, "New message for line 3")] +def gen_intro(stem): + return f""" +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section {stem}_proof +""" + +def print_log(log, log_file): + with open(log_file, "a+") as l: + l.writelines(log) + def process_file(file_path): # Run the `lake build` command and capture the output module_name = file_path[2:-5].replace("/", ".") proof_name = file_path[:-5].replace("/LLVM/", "/proofs/") + "_proof" stem_name = file_path.split("/")[-1][:-5] new_file_path = file_path.replace("/LLVM/", "/proofs/") + log_path = file_path.replace("/LLVM/", "/logs/").replace(".lean", ".txt") result = subprocess.run( ["lake", "build", module_name], capture_output=True, text=True ) print(result) msg = result.stdout if result.stderr: - raise Exception(result.stderr) + print_log([result.stdout, result.stderr], log_path) + # raise Exception(result.stderr) + return print(f"msg = {msg}") # Get the lines to replace and append - lines_to_replace = get_lines(msg) + lines_to_replace, lines_done = get_lines(msg) # Read the file content with open(file_path, "r") as file: @@ -43,7 +60,13 @@ def process_file(file_path): named = [(l, lines[l - 2][11:-1], m) for (l, m) in lines_to_replace] for l, n, m in named: if 0 <= l - 1 < len(lines): - lines[l - 1] = f" apply {n}_thm" + "\n" + lines[l - 1] = f" apply {n}_thm\n" + + named_done = [(l, lines[l - 2][11:-1], m) for (l, m) in lines_done] + for l, n, m in named_done: + if 0 <= l - 1 < len(lines): + lines[l - 1] = f" done\n" + lines[0] = f"import SSA.Projects.InstCombine.tests.proofs.{stem_name}_proof\n" # Write the modified content to the new file with open(new_file_path, "w") as file: @@ -51,15 +74,7 @@ def process_file(file_path): # Append the messages to the end of the file with open(proof_name + ".lean", "w") as file: - file.write( - f""" -import SSA.Projects.InstCombine.TacticAuto -import SSA.Projects.InstCombine.LLVM.Semantics -open BitVec - -section {stem_name}_proof -""" - ) + file.write(gen_intro(stem_name)) for _, n, m in named: print(f"m = {m}") print(f"n = {n}") @@ -70,6 +85,8 @@ def process_file(file_path): def main(): proof_directory = "./SSA/Projects/InstCombine/tests/proofs" + rm_proofs = "\nrm -r " + proof_directory + "/*\n" + subprocess.run(rm_proofs, shell=True) directory = "./SSA/Projects/InstCombine/tests/LLVM" diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index 8cecd250e..ad9247e0a 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -86,7 +86,7 @@ def {name}_after := [llvm| simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN {name} all_goals (try extract_goal ; sorry) From 4bf2f93744fa34c62f8bed9aab5f562c05081b5e Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Fri, 18 Oct 2024 15:53:46 +0100 Subject: [PATCH 08/21] Re-ran the sccripts --- .../LLVM/g2004h02h23hShiftShiftOverflow.lean | 6 +- .../LLVM/g2004h11h22hMissedhandhfold.lean | 4 +- .../tests/LLVM/g2008h02h16hSDivOverflow2.lean | 4 +- .../tests/LLVM/g2008h02h23hMulSub.lean | 4 +- .../tests/LLVM/g2008h05h31hAddBool.lean | 4 +- .../tests/LLVM/g2008h05h31hBools.lean | 8 +- .../tests/LLVM/g2008h07h08hSubAnd.lean | 4 +- .../tests/LLVM/g2008h07h09hSubAndError.lean | 4 +- .../tests/LLVM/g2008h07h11hRemAnd.lean | 4 +- .../tests/LLVM/g2010h11h01hlshrhmask.lean | 4 +- .../tests/LLVM/g2010h11h23hDistributed.lean | 4 +- .../InstCombine/tests/LLVM/gAddOverFlow.lean | 24 +- .../InstCombine/tests/LLVM/gadd2.lean | 68 +- .../InstCombine/tests/LLVM/gadd4.lean | 10 +- .../InstCombine/tests/LLVM/gadd_or_sub.lean | 18 +- .../InstCombine/tests/LLVM/gaddhmask.lean | 8 +- .../InstCombine/tests/LLVM/gaddhmaskhneg.lean | 8 +- .../InstCombine/tests/LLVM/gaddhshift.lean | 4 +- .../tests/LLVM/gaddhshlhsdivhtohsrem.lean | 12 +- .../InstCombine/tests/LLVM/gaddnegneg.lean | 4 +- .../tests/LLVM/gaddsubhconstanthfolding.lean | 40 +- SSA/Projects/InstCombine/tests/LLVM/gand.lean | 80 +- .../InstCombine/tests/LLVM/gand2.lean | 24 +- .../InstCombine/tests/LLVM/gandhorhand.lean | 12 +- .../InstCombine/tests/LLVM/gandhorhnot.lean | 44 +- .../tests/LLVM/gandhxorhmerge.lean | 8 +- .../InstCombine/tests/LLVM/gandhxorhor.lean | 230 +- .../InstCombine/tests/LLVM/gannotations.lean | 4 +- .../InstCombine/tests/LLVM/gapinthadd.lean | 20 +- .../InstCombine/tests/LLVM/gapinthand.lean | 18 +- .../tests/LLVM/gapinthandhorhand.lean | 12 +- .../tests/LLVM/gapinthandhxorhmerge.lean | 6 +- .../InstCombine/tests/LLVM/gapinthmul1.lean | 4 +- .../InstCombine/tests/LLVM/gapinthmul2.lean | 4 +- .../InstCombine/tests/LLVM/gapinthnot.lean | 4 +- .../InstCombine/tests/LLVM/gapinthor.lean | 10 +- .../InstCombine/tests/LLVM/gapinthrem1.lean | 6 +- .../InstCombine/tests/LLVM/gapinthrem2.lean | 6 +- .../InstCombine/tests/LLVM/gapinthshift.lean | 32 +- .../tests/LLVM/gapinthshifthsimplify.lean | 8 +- .../InstCombine/tests/LLVM/gapinthsub.lean | 30 +- .../InstCombine/tests/LLVM/gapinthxor1.lean | 16 +- .../InstCombine/tests/LLVM/gapinthxor2.lean | 16 +- .../InstCombine/tests/LLVM/gashrhdemand.lean | 4 +- .../InstCombine/tests/LLVM/gashrhlshr.lean | 32 +- .../InstCombine/tests/LLVM/gavghlsb.lean | 4 +- .../tests/LLVM/gbinophandhshifts.lean | 58 +- .../LLVM/gbinophofhdisplacedhshifts.lean | 28 +- .../gcanonicalizehashrhshlhtohmasking.lean | 66 +- .../gcanonicalizehlshrhshlhtohmasking.lean | 66 +- .../gcanonicalizehshlhlshrhtohmasking.lean | 22 +- .../tests/LLVM/gdemand_shrink_nsw.lean | 4 +- .../InstCombine/tests/LLVM/gdemorgan.lean | 54 +- .../InstCombine/tests/LLVM/gdistribute.lean | 14 +- .../InstCombine/tests/LLVM/gdivhi1.lean | 8 +- .../InstCombine/tests/LLVM/gdivhshift.lean | 20 +- .../LLVM/gearly_constfold_changes_IR.lean | 4 +- .../InstCombine/tests/LLVM/gexact.lean | 12 +- ...ofhaddhofhnothxhandhyhtohsubhxhfromhy.lean | 6 +- .../LLVM/gfoldhsubhofhnothtohinchofhadd.lean | 4 +- .../tests/LLVM/gfreehinversion.lean | 4 +- ...gethlowbitmaskhuptohandhincludinghbit.lean | 10 +- .../tests/LLVM/ghighhbithsignmask.lean | 12 +- ...oisthnegationhouthofhbiashcalculation.lean | 6 +- ...outhofhbiashcalculationhwithhconstant.lean | 6 +- .../LLVM/ghoisthnothfromhashrhoperand.lean | 6 +- ...isthxorhbyhconstanthfromhxorhbyhvalue.lean | 4 +- .../InstCombine/tests/LLVM/gicmphmul.lean | 4 +- .../InstCombine/tests/LLVM/gicmphmulhand.lean | 6 +- ...hvariablehmaskhinhmaskedhmergehscalar.lean | 22 +- .../tests/LLVM/glowhbithsplat.lean | 6 +- .../InstCombine/tests/LLVM/glshr.lean | 46 +- .../tests/LLVM/gmaskedhmergehadd.lean | 20 +- .../tests/LLVM/gmaskedhmergehandhofhors.lean | 10 +- .../tests/LLVM/gmaskedhmergehor.lean | 14 +- .../tests/LLVM/gmaskedhmergehxor.lean | 20 +- .../InstCombine/tests/LLVM/gmisch2002.lean | 4 +- .../InstCombine/tests/LLVM/gmul_fold.lean | 22 +- .../InstCombine/tests/LLVM/gmulhpow2.lean | 6 +- .../tests/LLVM/gnegatedhbitmask.lean | 8 +- SSA/Projects/InstCombine/tests/LLVM/gnot.lean | 18 +- .../InstCombine/tests/LLVM/gnothadd.lean | 12 +- .../tests/LLVM/gorhshiftedhmasks.lean | 22 +- .../InstCombine/tests/LLVM/gorhxor.lean | 138 +- .../InstCombine/tests/LLVM/gorhxorhxor.lean | 12 +- .../InstCombine/tests/LLVM/gpr14365.lean | 6 +- .../InstCombine/tests/LLVM/gpr53357.lean | 12 +- .../tests/LLVM/gpreservedhanalyses.lean | 4 +- .../tests/LLVM/gpullhbinophthroughhshift.lean | 42 +- .../tests/LLVM/greassociatehnuw.lean | 34 +- .../gredundanthrighthshifthinputhmasking.lean | 8 +- SSA/Projects/InstCombine/tests/LLVM/grem.lean | 30 +- .../InstCombine/tests/LLVM/gsdivh1.lean | 4 +- .../tests/LLVM/gsdivhcanonicalize.lean | 6 +- .../gsdivhexacthbyhnegativehpowerhofhtwo.lean | 8 +- .../LLVM/gsdivhexacthbyhpowerhofhtwo.lean | 12 +- .../LLVM/gsethlowbitshmaskhcanonicalize.lean | 40 +- .../InstCombine/tests/LLVM/gshifthadd.lean | 34 +- .../tests/LLVM/gshifthaddhinseltpoison.lean | 6 +- .../LLVM/gshifthamounthreassociation.lean | 16 +- .../InstCombine/tests/LLVM/gshifthflags.lean | 8 +- .../InstCombine/tests/LLVM/gshifthlogic.lean | 22 +- .../InstCombine/tests/LLVM/gshifthshift.lean | 16 +- .../InstCombine/tests/LLVM/gshifthsra.lean | 6 +- .../InstCombine/tests/LLVM/gshlhbo.lean | 30 +- .../InstCombine/tests/LLVM/gshlhdemand.lean | 18 +- .../InstCombine/tests/LLVM/gshlhfactor.lean | 28 +- .../InstCombine/tests/LLVM/gshlhsub.lean | 20 +- .../InstCombine/tests/LLVM/gsignext.lean | 10 +- .../tests/LLVM/gsremhcanonicalize.lean | 4 +- .../tests/LLVM/gsubhandhorhneghxor.lean | 8 +- .../InstCombine/tests/LLVM/gsubhfromhsub.lean | 28 +- .../InstCombine/tests/LLVM/gsubhnot.lean | 10 +- .../tests/LLVM/gsubhofhnegatible.lean | 582 ++++ .../LLVM/gsubhofhnegatiblehinseltpoison.lean | 34 +- .../tests/LLVM/gsubhorhandhxor.lean | 8 +- .../InstCombine/tests/LLVM/gsubhxor.lean | 10 +- .../tests/LLVM/gsubhxorhorhneghand.lean | 8 +- ...dhmaskedhmergehwithhconsthmaskhscalar.lean | 22 +- SSA/Projects/InstCombine/tests/LLVM/gxor.lean | 64 +- .../InstCombine/tests/LLVM/gxor2.lean | 78 +- .../InstCombine/tests/LLVM/gxorhofhor.lean | 4 +- .../tests/logs/2003-05-26-CastMiscompile.txt | 5 + .../tests/logs/2003-05-27-ConstExprCrash.txt | 5 + .../logs/2003-06-05-BranchInvertInfLoop.txt | 3 + .../logs/2003-07-21-ExternalConstant.txt | 28 + .../tests/logs/2003-08-12-AllocaNonNull.txt | 12 + .../logs/2003-09-09-VolatileLoadElim.txt | 5 + .../tests/logs/2003-10-29-CallSiteResolve.txt | 13 + .../tests/logs/2003-11-03-VarargsCallBug.txt | 12 + .../logs/2004-01-13-InstCombineInvokePHI.txt | 19 + .../logs/2004-02-23-ShiftShiftOverflow.txt | 14 + .../logs/2004-03-13-InstCombineInfLoop.txt | 3 + ...04-04-04-InstCombineReplaceAllUsesWith.txt | 3 + .../tests/logs/2004-05-07-UnsizedCastLoad.txt | 3 + .../tests/logs/2004-07-27-ConstantExprMul.txt | 5 + .../tests/logs/2004-08-09-RemInfLoop.txt | 3 + .../tests/logs/2004-08-10-BoolSetCC.txt | 3 + .../tests/logs/2004-09-20-BadLoadCombine.txt | 3 + .../tests/logs/2004-09-20-BadLoadCombine2.txt | 17 + .../logs/2004-09-28-BadShiftAndSetCC.txt | 3 + .../tests/logs/2004-11-22-Missed-and-fold.txt | 8 + ...04-11-27-SetCCForCastLargerAndConstant.txt | 198 ++ .../tests/logs/2004-12-08-RemInfiniteLoop.txt | 3 + .../tests/logs/2005-03-04-ShiftOverflow.txt | 3 + .../tests/logs/2005-04-07-UDivSelectCrash.txt | 3 + .../tests/logs/2005-06-15-DivSelectCrash.txt | 3 + .../tests/logs/2005-06-15-ShiftSetCCCrash.txt | 3 + .../tests/logs/2005-06-16-RangeCrash.txt | 3 + .../tests/logs/2005-07-07-DeadPHILoop.txt | 3 + .../logs/2006-02-13-DemandedMiscompile.txt | 3 + .../tests/logs/2006-02-28-Crash.txt | 5 + .../tests/logs/2006-03-30-ExtractElement.txt | 3 + .../logs/2006-04-28-ShiftShiftLongLong.txt | 3 + .../logs/2006-05-04-DemandedBitCrash.txt | 17 + .../tests/logs/2006-09-15-CastToBool.txt | 3 + ...6-10-19-SignedToUnsignedCastAndConst-2.txt | 3 + .../tests/logs/2006-10-20-mask.txt | 7 + .../tests/logs/2006-10-26-VectorReassoc.txt | 52 + .../tests/logs/2006-11-10-ashr-miscompile.txt | 3 + .../logs/2006-12-01-BadFPVectorXform.txt | 5 + .../tests/logs/2006-12-05-fp-to-int-ext.txt | 5 + .../logs/2006-12-08-Phi-ICmp-Op-Fold.txt | 18 + .../tests/logs/2006-12-08-Select-ICmp.txt | 16 + .../tests/logs/2006-12-15-Range-Test.txt | 34 + .../tests/logs/2006-12-23-Select-Cmp-Cmp.txt | 17 + .../logs/2007-01-13-ExtCompareMiscompile.txt | 3 + .../tests/logs/2007-01-18-VectorInfLoop.txt | 3 + .../tests/logs/2007-02-01-LoadSinkAlloca.txt | 49 + .../tests/logs/2007-02-07-PointerCast.txt | 14 + .../tests/logs/2007-02-23-PhiFoldInfLoop.txt | 15 + .../tests/logs/2007-03-13-CompareMerge.txt | 6 + .../logs/2007-03-19-BadTruncChangePR1261.txt | 5 + .../tests/logs/2007-03-21-SignedRangeTest.txt | 6 + .../tests/logs/2007-03-25-BadShiftMask.txt | 13 + .../tests/logs/2007-03-25-DoubleShift.txt | 3 + .../tests/logs/2007-03-26-BadShiftMask.txt | 17 + .../logs/2007-04-08-SingleEltVectorCrash.txt | 3 + .../tests/logs/2007-05-10-icmp-or.txt | 6 + .../tests/logs/2007-05-14-Crash.txt | 2 + .../tests/logs/2007-05-18-CastFoldBug.txt | 10 + .../tests/logs/2007-06-06-AshrSignBit.txt | 15 + .../logs/2007-06-21-DivCompareMiscomp.txt | 5 + .../tests/logs/2007-08-02-InfiniteLoop.txt | 7 + .../tests/logs/2007-09-10-AliasConstFold.txt | 0 .../tests/logs/2007-09-17-AliasConstFold2.txt | 0 .../tests/logs/2007-10-10-EliminateMemCpy.txt | 7 + .../tests/logs/2007-10-12-Crash.txt | 2 + .../tests/logs/2007-10-28-stacksave.txt | 21 + .../tests/logs/2007-10-31-RangeCrash.txt | 0 .../tests/logs/2007-10-31-StringCrash.txt | 16 + .../logs/2007-11-07-OpaqueAlignCrash.txt | 2 + .../tests/logs/2007-11-15-CompareMiscomp.txt | 6 + .../logs/2007-11-25-CompatibleAttributes.txt | 10 + .../logs/2007-12-10-ConstFoldCompare.txt | 7 + .../tests/logs/2007-12-12-GEPScale.txt | 3 + .../tests/logs/2007-12-16-AsmNoUnwind.txt | 0 .../tests/logs/2007-12-18-AddSelCmpSub.txt | 6 + .../tests/logs/2007-12-28-IcmpSub2.txt | 88 + .../logs/2008-01-06-BitCastAttributes.txt | 26 + .../tests/logs/2008-01-06-CastCrash.txt | 8 + .../tests/logs/2008-01-06-VoidCast.txt | 8 + .../tests/logs/2008-01-13-AndCmpCmp.txt | 10 + .../logs/2008-01-14-VarArgTrampoline.txt | 0 .../tests/logs/2008-01-21-MulTrunc.txt | 30 + .../tests/logs/2008-01-27-FloatSelect.txt | 5 + .../tests/logs/2008-02-13-MulURem.txt | 3 + .../tests/logs/2008-02-16-SDivOverflow2.txt | 7 + .../tests/logs/2008-02-23-MulSub.txt | 9 + .../tests/logs/2008-02-28-OrFCmpCrash.txt | 16 + .../tests/logs/2008-03-13-IntToPtr.txt | 11 + .../tests/logs/2008-04-22-ByValBitcast.txt | 8 + .../tests/logs/2008-04-28-VolatileStore.txt | 7 + .../logs/2008-04-29-VolatileLoadDontMerge.txt | 15 + .../logs/2008-04-29-VolatileLoadMerge.txt | 13 + .../tests/logs/2008-05-08-LiveStoreDelete.txt | 24 + .../tests/logs/2008-05-08-StrLenSink.txt | 26 + .../tests/logs/2008-05-09-SinkOfInvoke.txt | 2 + .../tests/logs/2008-05-17-InfLoop.txt | 10 + .../tests/logs/2008-05-18-FoldIntToPtr.txt | 14 + .../tests/logs/2008-05-22-IDivVector.txt | 3 + .../tests/logs/2008-05-23-CompareFold.txt | 7 + .../tests/logs/2008-05-31-AddBool.txt | 5 + .../tests/logs/2008-05-31-Bools.txt | 18 + .../tests/logs/2008-06-05-ashr-crash.txt | 3 + .../tests/logs/2008-06-08-ICmpPHI.txt | 48 + .../logs/2008-06-13-InfiniteLoopStore.txt | 15 + .../logs/2008-06-13-ReadOnlyCallStore.txt | 16 + .../tests/logs/2008-06-19-UncondLoad.txt | 16 + .../tests/logs/2008-06-21-CompareMiscomp.txt | 6 + .../tests/logs/2008-06-24-StackRestore.txt | 31 + .../tests/logs/2008-07-08-ShiftOneAndOne.txt | 3 + .../tests/logs/2008-07-08-SubAnd.txt | 8 + .../logs/2008-07-08-VolatileLoadMerge.txt | 15 + .../tests/logs/2008-07-09-SubAndError.txt | 8 + .../tests/logs/2008-07-10-CastSextBool.txt | 8 + .../tests/logs/2008-07-11-RemAnd.txt | 11 + .../tests/logs/2008-07-13-DivZero.txt | 10 + .../tests/logs/2008-07-16-fsub.txt | 3 + .../InstCombine/tests/logs/2008-08-05-And.txt | 30 + .../tests/logs/2008-09-02-VectorCrash.txt | 21 + .../tests/logs/2008-10-11-DivCompareFold.txt | 3 + .../logs/2008-10-23-ConstFoldWithoutMask.txt | 5 + .../logs/2008-11-01-SRemDemandedBits.txt | 3 + .../tests/logs/2008-11-08-FCmp.txt | 29 + .../tests/logs/2008-11-27-IDivVector.txt | 6 + .../tests/logs/2008-11-27-MultiplyIntVec.txt | 6 + .../tests/logs/2008-12-17-SRemNegConstVec.txt | 3 + .../tests/logs/2009-01-05-i128-crash.txt | 7 + .../tests/logs/2009-01-08-AlignAlloca.txt | 2 + .../logs/2009-01-16-PointerAddrSpace.txt | 5 + ...009-01-19-fmod-constant-float-specials.txt | 147 + .../logs/2009-01-19-fmod-constant-float.txt | 36 + .../tests/logs/2009-01-24-EmptyStruct.txt | 2 + .../tests/logs/2009-01-31-InfIterate.txt | 15 + .../tests/logs/2009-02-04-FPBitcast.txt | 6 + .../tests/logs/2009-02-11-NotInitialized.txt | 8 + .../logs/2009-02-20-InstCombine-SROA.txt | 2 + .../tests/logs/2009-02-21-LoadCST.txt | 5 + .../logs/2009-02-25-CrashZeroSizeArray.txt | 17 + .../logs/2009-03-18-vector-ashr-crash.txt | 2 + .../tests/logs/2009-03-24-InfLoop.txt | 3 + .../tests/logs/2009-04-07-MulPromoteToI96.txt | 7 + .../tests/logs/2009-05-23-FCmpToICmp.txt | 7 + .../tests/logs/2009-06-11-StoreAddrSpace.txt | 7 + .../logs/2009-06-16-SRemDemandedBits.txt | 3 + .../tests/logs/2009-07-02-MaskedIntVector.txt | 3 + .../tests/logs/2009-12-17-CmpSelectNull.txt | 9 + .../tests/logs/2010-01-28-NegativeSRem.txt | 7 + .../tests/logs/2010-03-03-ExtElim.txt | 41 + .../tests/logs/2010-05-30-memcpy-Struct.txt | 11 + .../tests/logs/2010-11-01-lshr-mask.txt | 27 + .../tests/logs/2010-11-21-SizeZeroTypeGEP.txt | 2 + .../tests/logs/2010-11-23-Distributed.txt | 11 + .../tests/logs/2011-02-14-InfLoop.txt | 37 + .../logs/2011-03-08-SRemMinusOneBadOpt.txt | 3 + .../tests/logs/2011-05-02-VectorBoolean.txt | 3 + .../tests/logs/2011-05-13-InBoundsGEP.txt | 15 + .../tests/logs/2011-05-28-swapmulsub.txt | 9 + .../tests/logs/2011-06-13-nsw-alloca.txt | 61 + .../tests/logs/2011-09-03-Trampoline.txt | 0 .../tests/logs/2011-10-07-AlignPromotion.txt | 14 + .../logs/2012-01-11-OpaqueBitcastCrash.txt | 2 + .../tests/logs/2012-02-13-FCmp.txt | 30 + .../tests/logs/2012-02-28-ICmp.txt | 14 + .../tests/logs/2012-03-10-InstCombine.txt | 46 + .../tests/logs/2012-04-24-vselect.txt | 3 + .../tests/logs/2012-04-30-SRem.txt | 3 + .../tests/logs/2012-05-28-select-hang.txt | 21 + .../tests/logs/2012-06-06-LoadOfPHIs.txt | 185 ++ .../tests/logs/2012-07-25-LoadPart.txt | 7 + .../tests/logs/2012-07-30-addrsp-bitcast.txt | 14 + .../tests/logs/2012-08-28-udiv_ashl.txt | 15 + .../tests/logs/2012-09-17-ZeroSizedAlloca.txt | 13 + .../logs/2012-10-25-vector-of-pointers.txt | 23 + .../tests/logs/2012-12-14-simp-vgep.txt | 19 + .../tests/logs/2012-3-15-or-xor-constant.txt | 5 + .../tests/logs/2012-6-7-vselect-bitcast.txt | 5 + ...13-03-05-Combine-BitcastTy-Into-Alloca.txt | 2 + .../logs/2023-07-13-arm-infiniteloop.txt | 11 + SSA/Projects/InstCombine/tests/logs/AArch64 | 0 SSA/Projects/InstCombine/tests/logs/AMDGPU | 0 SSA/Projects/InstCombine/tests/logs/ARM | 0 .../InstCombine/tests/logs/AddOverFlow.txt | 135 + .../InstCombine/tests/logs/CPP_min_max.txt | 22 + .../InstCombine/tests/logs/ExtractCast.txt | 10 + SSA/Projects/InstCombine/tests/logs/Hexagon | 0 .../tests/logs/InferAlignAttribute.txt | 21 + .../InstCombine/tests/logs/IntPtrCast.txt | 5 + .../InstCombine/tests/logs/JavaCompare.txt | 6 + .../tests/logs/LandingPadClauses.txt | 183 ++ SSA/Projects/InstCombine/tests/logs/NVPTX | 0 .../tests/logs/OverlappingInsertvalues.txt | 2 + .../InstCombine/tests/logs/PR30597.txt | 16 + .../InstCombine/tests/logs/PR37526.txt | 15 + SSA/Projects/InstCombine/tests/logs/PowerPC | 0 .../InstCombine/tests/logs/README.txt | 0 SSA/Projects/InstCombine/tests/logs/RISCV | 0 .../tests/logs/StoreToNull-DbgCheck.txt | 7 + SSA/Projects/InstCombine/tests/logs/SystemZ | 0 SSA/Projects/InstCombine/tests/logs/X86 | 0 SSA/Projects/InstCombine/tests/logs/abs-1.txt | 301 ++ .../InstCombine/tests/logs/abs-intrinsic.txt | 244 ++ .../InstCombine/tests/logs/abs_abs.txt | 246 ++ .../InstCombine/tests/logs/add-mask-neg.txt | 52 + .../InstCombine/tests/logs/add-mask.txt | 45 + .../InstCombine/tests/logs/add-min-max.txt | 30 + .../InstCombine/tests/logs/add-shift.txt | 23 + .../tests/logs/add-shl-sdiv-to-srem.txt | 108 + .../InstCombine/tests/logs/add-sitofp.txt | 34 + SSA/Projects/InstCombine/tests/logs/add.txt | 0 SSA/Projects/InstCombine/tests/logs/add2.txt | 304 ++ SSA/Projects/InstCombine/tests/logs/add3.txt | 18 + SSA/Projects/InstCombine/tests/logs/add4.txt | 97 + .../InstCombine/tests/logs/add_or_sub.txt | 96 + .../InstCombine/tests/logs/addnegneg.txt | 9 + .../InstCombine/tests/logs/addrspacecast.txt | 2 + .../tests/logs/addsub-constant-folding.txt | 387 +++ .../tests/logs/adjust-for-minmax.txt | 145 + .../tests/logs/aggregate-reconstruction.txt | 2 + .../tests/logs/alias-recursion.txt | 0 .../InstCombine/tests/logs/align-addr.txt | 0 .../InstCombine/tests/logs/align-attr.txt | 11 + .../InstCombine/tests/logs/align-external.txt | 17 + .../InstCombine/tests/logs/all-bits-shift.txt | 7 + .../tests/logs/alloc-realloc-free.txt | 12 + .../InstCombine/tests/logs/alloca-big.txt | 7 + .../tests/logs/alloca-cast-debuginfo.txt | 16 + .../tests/logs/alloca-in-non-alloca-as.txt | 2 + .../tests/logs/alloca-intptr-not-sizet.txt | 9 + .../InstCombine/tests/logs/alloca.txt | 2 + .../InstCombine/tests/logs/allocsize-32.txt | 0 .../InstCombine/tests/logs/allocsize.txt | 0 .../InstCombine/tests/logs/allow-checks.txt | 0 .../InstCombine/tests/logs/and-add-shl.txt | 15 + .../InstCombine/tests/logs/and-compare.txt | 59 + .../InstCombine/tests/logs/and-fcmp.txt | 1965 +++++++++++++ .../InstCombine/tests/logs/and-narrow.txt | 48 + .../InstCombine/tests/logs/and-or-and.txt | 45 + .../tests/logs/and-or-icmp-const-icmp.txt | 73 + .../tests/logs/and-or-icmp-min-max.txt | 823 ++++++ .../tests/logs/and-or-icmp-nullptr.txt | 366 +++ .../InstCombine/tests/logs/and-or-icmps.txt | 1184 ++++++++ .../tests/logs/and-or-implied-cond-not.txt | 42 + .../InstCombine/tests/logs/and-or-not.txt | 317 +++ .../InstCombine/tests/logs/and-or.txt | 2 + .../InstCombine/tests/logs/and-xor-merge.txt | 34 + .../InstCombine/tests/logs/and-xor-or.txt | 1840 ++++++++++++ SSA/Projects/InstCombine/tests/logs/and.txt | 1132 ++++++++ SSA/Projects/InstCombine/tests/logs/and2.txt | 142 + .../tests/logs/annotation-intrinsic.txt | 9 + .../InstCombine/tests/logs/annotations.txt | 88 + .../InstCombine/tests/logs/apint-add.txt | 91 + .../tests/logs/apint-and-compare.txt | 6 + .../tests/logs/apint-and-or-and.txt | 42 + .../tests/logs/apint-and-xor-merge.txt | 14 + .../InstCombine/tests/logs/apint-and.txt | 68 + .../tests/logs/apint-call-cast-target.txt | 18 + .../tests/logs/apint-cast-and-cast.txt | 6 + .../tests/logs/apint-cast-cast-to-and.txt | 5 + .../InstCombine/tests/logs/apint-cast.txt | 10 + .../InstCombine/tests/logs/apint-div1.txt | 9 + .../InstCombine/tests/logs/apint-div2.txt | 9 + .../InstCombine/tests/logs/apint-mul1.txt | 12 + .../InstCombine/tests/logs/apint-mul2.txt | 14 + .../InstCombine/tests/logs/apint-not.txt | 10 + .../InstCombine/tests/logs/apint-or.txt | 40 + .../InstCombine/tests/logs/apint-rem1.txt | 17 + .../InstCombine/tests/logs/apint-rem2.txt | 17 + .../InstCombine/tests/logs/apint-select.txt | 37 + .../tests/logs/apint-shift-simplify.txt | 21 + .../InstCombine/tests/logs/apint-shift.txt | 242 ++ .../tests/logs/apint-shl-trunc.txt | 9 + .../InstCombine/tests/logs/apint-sub.txt | 110 + .../InstCombine/tests/logs/apint-xor1.txt | 49 + .../InstCombine/tests/logs/apint-xor2.txt | 49 + SSA/Projects/InstCombine/tests/logs/array.txt | 153 + .../InstCombine/tests/logs/ashr-demand.txt | 28 + .../logs/ashr-icmp-minmax-idiom-break.txt | 3 + .../InstCombine/tests/logs/ashr-lshr.txt | 402 +++ .../tests/logs/ashr-or-mul-abs.txt | 27 + .../tests/logs/assoc-cast-assoc.txt | 21 + .../InstCombine/tests/logs/assume-align.txt | 86 + .../tests/logs/assume-icmp-null-select.txt | 26 + .../tests/logs/assume-inseltpoison.txt | 11 + .../tests/logs/assume-loop-align.txt | 31 + .../tests/logs/assume-redundant.txt | 48 + .../tests/logs/assume-separate_storage.txt | 13 + .../InstCombine/tests/logs/assume.txt | 402 +++ .../InstCombine/tests/logs/assume2.txt | 55 + .../tests/logs/assume_inevitable.txt | 0 .../InstCombine/tests/logs/atomic.txt | 220 ++ .../InstCombine/tests/logs/atomicrmw.txt | 290 ++ .../InstCombine/tests/logs/avg-lsb.txt | 15 + .../InstCombine/tests/logs/badmalloc.txt | 30 + .../InstCombine/tests/logs/bcmp-1.txt | 77 + SSA/Projects/InstCombine/tests/logs/bcopy.txt | 13 + .../tests/logs/binop-and-shifts.txt | 416 +++ .../InstCombine/tests/logs/binop-cast.txt | 124 + .../InstCombine/tests/logs/binop-itofp.txt | 386 +++ .../tests/logs/binop-of-displaced-shifts.txt | 204 ++ .../tests/logs/binop-phi-operands.txt | 2 + .../logs/binop-select-cast-of-select-cond.txt | 72 + .../InstCombine/tests/logs/binop-select.txt | 174 ++ .../InstCombine/tests/logs/bit-checks.txt | 482 ++++ .../InstCombine/tests/logs/bit_ceil.txt | 72 + .../InstCombine/tests/logs/bit_floor.txt | 64 + .../tests/logs/bitcast-bfloat-half-mixing.txt | 30 + .../tests/logs/bitcast-bigendian.txt | 52 + .../tests/logs/bitcast-bitcast.txt | 2 + .../tests/logs/bitcast-function.txt | 2 + .../tests/logs/bitcast-inselt-bitcast.txt | 69 + .../tests/logs/bitcast-inseltpoison.txt | 2 + .../tests/logs/bitcast-phi-uselistorder.txt | 11 + .../tests/logs/bitcast-sext-vector.txt | 7 + .../InstCombine/tests/logs/bitcast-store.txt | 0 .../logs/bitcast-vec-canon-inseltpoison.txt | 2 + .../tests/logs/bitcast-vec-canon.txt | 2 + .../InstCombine/tests/logs/bitcast.txt | 2 + .../tests/logs/bitreverse-hang.txt | 15 + .../tests/logs/bitreverse-known-bits.txt | 20 + .../InstCombine/tests/logs/bitreverse.txt | 136 + .../InstCombine/tests/logs/bittest.txt | 18 + .../tests/logs/bitwiselogic-bitmanip.txt | 67 + .../InstCombine/tests/logs/branch.txt | 91 + .../tests/logs/broadcast-inseltpoison.txt | 108 + .../InstCombine/tests/logs/broadcast.txt | 188 ++ .../InstCombine/tests/logs/bswap-fold.txt | 332 +++ .../tests/logs/bswap-inseltpoison.txt | 39 + .../tests/logs/bswap-known-bits.txt | 20 + SSA/Projects/InstCombine/tests/logs/bswap.txt | 254 ++ .../logs/builtin-dynamic-object-size.txt | 0 .../logs/builtin-object-size-custom-dl.txt | 0 .../tests/logs/builtin-object-size-offset.txt | 20 + .../tests/logs/builtin-object-size-ptr.txt | 15 + .../builtin-object-size-strdup-family.txt | 30 + SSA/Projects/InstCombine/tests/logs/byval.txt | 26 + .../InstCombine/tests/logs/cabs-array.txt | 57 + .../InstCombine/tests/logs/cabs-discrete.txt | 72 + .../tests/logs/call-callconv-mismatch.txt | 2 + .../InstCombine/tests/logs/call-callconv.txt | 2 + .../tests/logs/call-cast-attrs.txt | 0 .../tests/logs/call-cast-target-inalloca.txt | 22 + .../logs/call-cast-target-preallocated.txt | 0 .../tests/logs/call-cast-target.txt | 2 + .../InstCombine/tests/logs/call-guard.txt | 0 .../tests/logs/call-intrinsics.txt | 3 + .../InstCombine/tests/logs/call-returned.txt | 45 + .../InstCombine/tests/logs/call-undef.txt | 77 + SSA/Projects/InstCombine/tests/logs/call.txt | 2 + SSA/Projects/InstCombine/tests/logs/call2.txt | 18 + .../tests/logs/call_nonnull_arg.txt | 43 + .../tests/logs/calloc-mismatch.txt | 8 + .../callsite_nonnull_args_through_casts.txt | 84 + .../logs/canonicalize-ashr-shl-to-masking.txt | 383 +++ ...tween-negative-and-positive-thresholds.txt | 295 ++ ...rn-between-zero-and-positive-threshold.txt | 239 ++ ...h-select-of-constant-threshold-pattern.txt | 60 + ...t-low-bit-mask-and-icmp-eq-to-icmp-ule.txt | 61 + ...t-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt | 84 + ...-low-bit-mask-and-icmp-sge-to-icmp-sle.txt | 74 + ...-low-bit-mask-and-icmp-sgt-to-icmp-sgt.txt | 125 + ...-low-bit-mask-and-icmp-sle-to-icmp-sle.txt | 100 + ...-low-bit-mask-and-icmp-slt-to-icmp-sgt.txt | 97 + ...-low-bit-mask-and-icmp-uge-to-icmp-ule.txt | 55 + ...-low-bit-mask-and-icmp-ugt-to-icmp-ugt.txt | 108 + ...-low-bit-mask-and-icmp-ule-to-icmp-ule.txt | 83 + ...-low-bit-mask-and-icmp-ult-to-icmp-ugt.txt | 78 + .../tests/logs/canonicalize-fcmp-inf.txt | 87 + .../tests/logs/canonicalize-gep-constglob.txt | 45 + .../tests/logs/canonicalize-gep-mul.txt | 43 + ...calize-lack-of-signed-truncation-check.txt | 91 + ...e-low-bit-mask-and-icmp-eq-to-icmp-ule.txt | 60 + ...e-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt | 60 + ...ow-bit-mask-v2-and-icmp-eq-to-icmp-ule.txt | 83 + ...ow-bit-mask-v2-and-icmp-ne-to-icmp-ugt.txt | 83 + ...ow-bit-mask-v3-and-icmp-eq-to-icmp-ule.txt | 116 + ...ow-bit-mask-v3-and-icmp-ne-to-icmp-ugt.txt | 116 + ...ow-bit-mask-v4-and-icmp-eq-to-icmp-ule.txt | 96 + ...ow-bit-mask-v4-and-icmp-ne-to-icmp-ugt.txt | 96 + .../logs/canonicalize-lshr-shl-to-masking.txt | 383 +++ .../canonicalize-or-with-overflow-icmp.txt | 111 + ...icalize-selects-icmp-condition-bittest.txt | 65 + .../logs/canonicalize-shl-lshr-to-masking.txt | 231 ++ .../canonicalize-signed-truncation-check.txt | 91 + .../logs/canonicalize-vector-extract.txt | 2 + .../tests/logs/canonicalize-vector-insert.txt | 2 + .../InstCombine/tests/logs/canonicalize.txt | 0 .../tests/logs/canonicalize_branch.txt | 126 + .../InstCombine/tests/logs/cast-byval.txt | 13 + .../tests/logs/cast-call-combine-prof.txt | 33 + .../tests/logs/cast-call-combine.txt | 17 + .../tests/logs/cast-int-fcmp-eq-0.txt | 0 .../tests/logs/cast-int-icmp-eq-0.txt | 214 ++ .../tests/logs/cast-mul-select.txt | 54 + .../InstCombine/tests/logs/cast-select.txt | 70 + .../logs/cast-set-preserve-signed-dbg-val.txt | 7 + .../InstCombine/tests/logs/cast-set.txt | 31 + .../tests/logs/cast-unsigned-icmp-eqcmp-0.txt | 54 + SSA/Projects/InstCombine/tests/logs/cast.txt | 2 + .../InstCombine/tests/logs/cast_phi.txt | 188 ++ .../InstCombine/tests/logs/cast_ptr.txt | 2 + .../tests/logs/catchswitch-phi.txt | 0 SSA/Projects/InstCombine/tests/logs/ceil.txt | 21 + .../tests/logs/clamp-to-minmax.txt | 306 ++ .../InstCombine/tests/logs/cmp-intrinsic.txt | 343 +++ .../InstCombine/tests/logs/cmp-x-vs-neg-x.txt | 55 + .../logs/combine-is.fpclass-and-fcmp.txt | 150 + .../tests/logs/commutative-intrinsics.txt | 0 .../logs/commutative-operation-over-phis.txt | 2 + .../commutative-operation-over-selects.txt | 0 .../InstCombine/tests/logs/compare-3way.txt | 0 .../InstCombine/tests/logs/compare-alloca.txt | 161 ++ .../InstCombine/tests/logs/compare-signs.txt | 80 + .../InstCombine/tests/logs/compare-udiv.txt | 104 + .../tests/logs/compare-unescaped.txt | 224 ++ .../tests/logs/conditional-negation.txt | 111 + ...-length-signext-after-high-bit-extract.txt | 622 ++++ .../tests/logs/consecutive-fences.txt | 53 + .../tests/logs/consecutive-ptrmask.txt | 0 .../tests/logs/constant-expr-datalayout.txt | 14 + .../constant-fold-address-space-pointer.txt | 150 + .../tests/logs/constant-fold-alias.txt | 0 .../tests/logs/constant-fold-compare.txt | 9 + .../tests/logs/constant-fold-gep.txt | 2 + .../tests/logs/constant-fold-iteration.txt | 9 + .../tests/logs/constant-fold-libfunc.txt | 12 + .../tests/logs/constant-fold-math.txt | 21 + .../tests/logs/constant-fold-shifts.txt | 18 + .../InstCombine/tests/logs/constrained.txt | 0 .../InstCombine/tests/logs/convergent.txt | 0 .../tests/logs/copysign-fneg-fabs.txt | 147 + .../InstCombine/tests/logs/copysign.txt | 36 + SSA/Projects/InstCombine/tests/logs/cos-1.txt | 190 ++ SSA/Projects/InstCombine/tests/logs/cos-2.txt | 19 + .../tests/logs/cos-sin-intrinsic.txt | 63 + SSA/Projects/InstCombine/tests/logs/crash.txt | 2 + .../logs/create-class-from-logic-fcmp.txt | 0 .../tests/logs/ctlz-cttz-bitreverse.txt | 18 + .../tests/logs/ctlz-cttz-shifts.txt | 57 + .../tests/logs/ctpop-bswap-bitreverse.txt | 12 + .../InstCombine/tests/logs/ctpop-cttz.txt | 27 + .../InstCombine/tests/logs/ctpop-pow2.txt | 47 + SSA/Projects/InstCombine/tests/logs/ctpop.txt | 171 ++ .../InstCombine/tests/logs/cttz-abs.txt | 95 + .../InstCombine/tests/logs/cttz-negative.txt | 26 + SSA/Projects/InstCombine/tests/logs/cttz.txt | 109 + .../logs/dbg-scalable-store-fixed-frag.txt | 2 + .../tests/logs/dbg-simplify-alloca-size.txt | 12 + .../InstCombine/tests/logs/dce-iterate.txt | 23 + .../InstCombine/tests/logs/deadcode.txt | 13 + .../InstCombine/tests/logs/debug-line.txt | 11 + .../InstCombine/tests/logs/debuginfo-dce.txt | 27 + .../InstCombine/tests/logs/debuginfo-dce2.txt | 12 + .../logs/debuginfo-scalable-typesize.txt | 2 + .../InstCombine/tests/logs/debuginfo-sink.txt | 43 + .../InstCombine/tests/logs/debuginfo-skip.txt | 7 + .../tests/logs/debuginfo-variables.txt | 52 + .../InstCombine/tests/logs/debuginfo.txt | 0 .../InstCombine/tests/logs/debuginfo_add.txt | 2 + .../tests/logs/default-alignment.txt | 3 + .../tests/logs/demand_shrink_nsw.txt | 25 + .../tests/logs/demorgan-sink-not-into-xor.txt | 47 + .../InstCombine/tests/logs/demorgan.txt | 277 ++ .../InstCombine/tests/logs/dependent-ivs.txt | 2 + .../tests/logs/deref-alloc-fns.txt | 166 ++ .../tests/logs/disable-builtin.txt | 8 + .../tests/logs/disable-simplify-libcalls.txt | 287 ++ .../InstCombine/tests/logs/distribute.txt | 53 + .../div-by-0-guard-before-smul_ov-not.txt | 42 + .../logs/div-by-0-guard-before-smul_ov.txt | 40 + .../div-by-0-guard-before-umul_ov-not.txt | 42 + .../logs/div-by-0-guard-before-umul_ov.txt | 40 + .../InstCombine/tests/logs/div-i1.txt | 61 + .../tests/logs/div-shift-crash.txt | 2 + .../InstCombine/tests/logs/div-shift.txt | 358 +++ SSA/Projects/InstCombine/tests/logs/div.txt | 0 .../tests/logs/dont-distribute-phi.txt | 33 + .../tests/logs/double-float-shrink-1.txt | 306 ++ .../tests/logs/double-float-shrink-2.txt | 334 +++ .../tests/logs/early_constfold_changes_IR.txt | 8 + .../logs/early_dce_clobbers_callgraph.txt | 8 + .../tests/logs/element-atomic-memintrins.txt | 0 .../tests/logs/enforce-known-alignment.txt | 2 + .../InstCombine/tests/logs/eq-of-parts.txt | 552 ++++ .../erase-dbg-values-at-dead-alloc-site.txt | 9 + .../InstCombine/tests/logs/err-rep-cold.txt | 51 + SSA/Projects/InstCombine/tests/logs/exact.txt | 141 + .../InstCombine/tests/logs/exp2-1.txt | 0 .../InstCombine/tests/logs/exp2-2.txt | 8 + .../InstCombine/tests/logs/exp2-to-ldexp.txt | 2 + .../tests/logs/extract-select-agg.txt | 63 + .../logs/extractelement-inseltpoison.txt | 157 ++ .../InstCombine/tests/logs/extractelement.txt | 2 + .../tests/logs/extractinsert-tbaa.txt | 24 + .../InstCombine/tests/logs/extractvalue.txt | 2 + .../InstCombine/tests/logs/fabs-as-int.txt | 2 + .../InstCombine/tests/logs/fabs-copysign.txt | 45 + .../InstCombine/tests/logs/fabs-fneg-fold.txt | 63 + .../InstCombine/tests/logs/fabs-libcall.txt | 9 + SSA/Projects/InstCombine/tests/logs/fabs.txt | 535 ++++ .../tests/logs/fadd-fsub-factor.txt | 298 ++ .../tests/logs/fadd-maximum-minimum.txt | 21 + SSA/Projects/InstCombine/tests/logs/fadd.txt | 600 ++++ .../InstCombine/tests/logs/fast-basictest.txt | 296 ++ .../InstCombine/tests/logs/fast-math.txt | 335 +++ .../tests/logs/fcmp-denormals-are-zero.txt | 241 ++ .../tests/logs/fcmp-range-check-idiom.txt | 143 + .../InstCombine/tests/logs/fcmp-select.txt | 120 + .../InstCombine/tests/logs/fcmp-special.txt | 91 + SSA/Projects/InstCombine/tests/logs/fcmp.txt | 799 ++++++ SSA/Projects/InstCombine/tests/logs/fdim.txt | 56 + .../InstCombine/tests/logs/fdiv-cos-sin.txt | 67 + .../InstCombine/tests/logs/fdiv-sin-cos.txt | 50 + .../InstCombine/tests/logs/fdiv-sqrt.txt | 93 + SSA/Projects/InstCombine/tests/logs/fdiv.txt | 0 SSA/Projects/InstCombine/tests/logs/ffs-1.txt | 58 + .../InstCombine/tests/logs/ffs-i16.txt | 21 + .../tests/logs/float-shrink-compare.txt | 236 ++ .../InstCombine/tests/logs/fls-i16.txt | 21 + SSA/Projects/InstCombine/tests/logs/fls.txt | 26 + SSA/Projects/InstCombine/tests/logs/fma.txt | 418 +++ SSA/Projects/InstCombine/tests/logs/fmod.txt | 46 + .../InstCombine/tests/logs/fmul-bool.txt | 11 + .../InstCombine/tests/logs/fmul-exp.txt | 56 + .../InstCombine/tests/logs/fmul-exp2.txt | 49 + .../tests/logs/fmul-inseltpoison.txt | 0 .../tests/logs/fmul-maximum-minimum.txt | 21 + .../InstCombine/tests/logs/fmul-pow.txt | 156 + .../InstCombine/tests/logs/fmul-sqrt.txt | 107 + SSA/Projects/InstCombine/tests/logs/fmul.txt | 0 .../InstCombine/tests/logs/fneg-as-int.txt | 2 + .../tests/logs/fneg-fabs-as-int.txt | 2 + .../InstCombine/tests/logs/fneg-fabs.txt | 153 + SSA/Projects/InstCombine/tests/logs/fneg.txt | 0 .../tests/logs/fold-a-or-b-zero.txt | 54 + .../InstCombine/tests/logs/fold-add-sub.txt | 63 + .../tests/logs/fold-bin-operand.txt | 0 .../InstCombine/tests/logs/fold-calls.txt | 9 + .../tests/logs/fold-ctpop-of-not.txt | 80 + .../tests/logs/fold-ext-eq-c-with-op.txt | 27 + .../tests/logs/fold-fops-into-selects.txt | 33 + ...-of-add-of-not-x-and-y-to-sub-x-from-y.txt | 69 + .../tests/logs/fold-log2-ceil-idiom.txt | 139 + .../InstCombine/tests/logs/fold-minmax-i1.txt | 24 + .../tests/logs/fold-phi-load-metadata.txt | 19 + .../InstCombine/tests/logs/fold-phi.txt | 22 + .../tests/logs/fold-select-fmul-if-zero.txt | 0 .../tests/logs/fold-select-trunc.txt | 30 + .../tests/logs/fold-signbit-test-power2.txt | 56 + .../tests/logs/fold-sqrt-sqrtf.txt | 9 + .../logs/fold-sub-of-not-to-inc-of-add.txt | 31 + .../tests/logs/fold-vector-select.txt | 131 + .../logs/fold-vector-zero-inseltpoison.txt | 17 + .../tests/logs/fold-vector-zero.txt | 17 + .../tests/logs/force-opaque-ptr.txt | 19 + .../tests/logs/fortify-folding.txt | 294 ++ .../InstCombine/tests/logs/fp-floor-ceil.txt | 110 + .../InstCombine/tests/logs/fp-ret-bitcast.txt | 20 + .../InstCombine/tests/logs/fpcast.txt | 169 ++ .../tests/logs/fpclass-check-idioms.txt | 2 + .../tests/logs/fpclass-from-dom-cond.txt | 148 + .../InstCombine/tests/logs/fpextend.txt | 2 + .../InstCombine/tests/logs/fpextend_x86.txt | 41 + .../InstCombine/tests/logs/fprintf-1.txt | 71 + .../tests/logs/fprintf-wrong-sig.txt | 8 + .../InstCombine/tests/logs/fptrunc.txt | 94 + .../InstCombine/tests/logs/fputs-1.txt | 24 + .../InstCombine/tests/logs/fputs-opt-size.txt | 31 + .../InstCombine/tests/logs/free-inversion.txt | 204 ++ .../InstCombine/tests/logs/freeze-fp-ops.txt | 0 .../tests/logs/freeze-integer-intrinsics.txt | 0 .../tests/logs/freeze-landingpad.txt | 0 .../InstCombine/tests/logs/freeze-phi.txt | 78 + .../InstCombine/tests/logs/freeze.txt | 0 SSA/Projects/InstCombine/tests/logs/fsh.txt | 386 +++ SSA/Projects/InstCombine/tests/logs/fsub.txt | 474 ++++ .../InstCombine/tests/logs/funnel.txt | 195 ++ .../InstCombine/tests/logs/fwrite-1.txt | 29 + .../tests/logs/g2010h11h01hlshrhmask.txt | 36 + SSA/Projects/InstCombine/tests/logs/gand.txt | 131 + .../InstCombine/tests/logs/gandhxorhor.txt | 596 ++++ .../InstCombine/tests/logs/gapinthadd.txt | 33 + .../tests/logs/gc.relocate-verify.txt | 2 + .../InstCombine/tests/logs/gc.relocate.txt | 0 .../tests/logs/gdemand_shrink_nsw.txt | 36 + .../InstCombine/tests/logs/gdemorgan.txt | 123 + .../InstCombine/tests/logs/gdivhi1.txt | 61 + .../InstCombine/tests/logs/gep-addrspace.txt | 2 + .../InstCombine/tests/logs/gep-alias.txt | 0 ...can-replace-gep-idx-with-zero-typesize.txt | 2 + .../gep-canonicalize-constant-indices.txt | 57 + .../tests/logs/gep-combine-loop-invariant.txt | 2 + .../InstCombine/tests/logs/gep-custom-dl.txt | 2 + .../tests/logs/gep-inbounds-null.txt | 2 + .../tests/logs/gep-merge-constant-indices.txt | 2 + ...bject-size-less-than-or-equal-typesize.txt | 2 + .../InstCombine/tests/logs/gep-sext.txt | 59 + .../tests/logs/gep-vector-indices.txt | 2 + .../InstCombine/tests/logs/gep-vector.txt | 2 + .../InstCombine/tests/logs/gepgep.txt | 16 + .../tests/logs/gepofconstgepi8.txt | 110 + .../InstCombine/tests/logs/gepphigep.txt | 2 + .../get-lowbitmask-upto-and-including-bit.txt | 95 + .../tests/logs/getelementptr-folding.txt | 0 .../InstCombine/tests/logs/getelementptr.txt | 0 .../InstCombine/tests/logs/gmul_fold.txt | 73 + .../tests/logs/gorhshiftedhmasks.txt | 103 + .../InstCombine/tests/logs/gorhxorhxor.txt | 44 + .../InstCombine/tests/logs/gshifthadd.txt | 61 + .../logs/gshifthamounthreassociation.txt | 33 + .../InstCombine/tests/logs/gshlhsub.txt | 33 + SSA/Projects/InstCombine/tests/logs/gxor.txt | 114 + .../logs/high-bit-signmask-with-trunc.txt | 63 + .../tests/logs/high-bit-signmask.txt | 80 + ...-out-of-bias-calculation-with-constant.txt | 38 + ...hoist-negation-out-of-bias-calculation.txt | 48 + .../logs/hoist-not-from-ashr-operand.txt | 26 + ...oist-xor-by-constant-from-xor-by-value.txt | 60 + .../InstCombine/tests/logs/hoist_instr.txt | 5 + .../InstCombine/tests/logs/icmp-abs.txt | 84 + .../InstCombine/tests/logs/icmp-add.txt | 2 + .../tests/logs/icmp-and-add-sub-xor-p2.txt | 48 + .../tests/logs/icmp-and-lowbit-mask.txt | 254 ++ .../InstCombine/tests/logs/icmp-and-shift.txt | 254 ++ .../tests/logs/icmp-bc-vec-inseltpoison.txt | 43 + .../InstCombine/tests/logs/icmp-bc-vec.txt | 43 + .../InstCombine/tests/logs/icmp-binop.txt | 102 + .../tests/logs/icmp-bitcast-glob.txt | 27 + .../tests/logs/icmp-constant-phi.txt | 81 + .../InstCombine/tests/logs/icmp-custom-dl.txt | 114 + .../tests/logs/icmp-div-constant.txt | 172 ++ .../InstCombine/tests/logs/icmp-dom.txt | 171 ++ .../tests/logs/icmp-equality-rotate.txt | 83 + .../tests/logs/icmp-equality-test.txt | 79 + .../tests/logs/icmp-equality-xor.txt | 59 + .../InstCombine/tests/logs/icmp-ext-ext.txt | 205 ++ .../tests/logs/icmp-fold-into-phi.txt | 22 + .../InstCombine/tests/logs/icmp-fsh.txt | 98 + .../InstCombine/tests/logs/icmp-gep.txt | 262 ++ .../InstCombine/tests/logs/icmp-inttoptr.txt | 39 + .../InstCombine/tests/logs/icmp-logical.txt | 553 ++++ .../InstCombine/tests/logs/icmp-mul-and.txt | 133 + .../InstCombine/tests/logs/icmp-mul-zext.txt | 57 + .../InstCombine/tests/logs/icmp-mul.txt | 457 +++ .../InstCombine/tests/logs/icmp-ne-pow2.txt | 196 ++ .../tests/logs/icmp-not-bool-constant.txt | 60 + .../InstCombine/tests/logs/icmp-of-and-x.txt | 106 + .../InstCombine/tests/logs/icmp-of-or-x.txt | 125 + .../tests/logs/icmp-of-trunc-ext.txt | 345 +++ .../InstCombine/tests/logs/icmp-of-xor-x.txt | 137 + .../logs/icmp-or-of-select-with-zero.txt | 121 + .../InstCombine/tests/logs/icmp-or.txt | 0 .../icmp-power2-and-icmp-shifted-mask.txt | 202 ++ .../InstCombine/tests/logs/icmp-range.txt | 694 +++++ .../InstCombine/tests/logs/icmp-rotate.txt | 98 + .../logs/icmp-select-implies-common-op.txt | 49 + .../InstCombine/tests/logs/icmp-select.txt | 283 ++ .../tests/logs/icmp-shl-1-overflow.txt | 55 + .../InstCombine/tests/logs/icmp-shl-nsw.txt | 93 + .../InstCombine/tests/logs/icmp-shl-nuw.txt | 57 + .../InstCombine/tests/logs/icmp-shl.txt | 54 + .../InstCombine/tests/logs/icmp-shr-lt-gt.txt | 1246 ++++++++ .../InstCombine/tests/logs/icmp-shr.txt | 552 ++++ .../InstCombine/tests/logs/icmp-signmask.txt | 15 + .../InstCombine/tests/logs/icmp-sub.txt | 221 ++ .../tests/logs/icmp-topbitssame.txt | 77 + .../InstCombine/tests/logs/icmp-trunc.txt | 304 ++ .../InstCombine/tests/logs/icmp-uadd-sat.txt | 82 + ...l-to-icmp-eq-of-lshr-val-by-bits-and-0.txt | 125 + ...l-to-icmp-eq-of-lshr-val-by-bits-and-0.txt | 66 + ...l-to-icmp-eq-of-lshr-val-by-bits-and-0.txt | 42 + ...l-to-icmp-ne-of-lshr-val-by-bits-and-0.txt | 42 + ...l-to-icmp-ne-of-lshr-val-by-bits-and-0.txt | 125 + ...l-to-icmp-ne-of-lshr-val-by-bits-and-0.txt | 66 + .../InstCombine/tests/logs/icmp-usub-sat.txt | 134 + .../tests/logs/icmp-vec-inseltpoison.txt | 179 ++ .../InstCombine/tests/logs/icmp-vec.txt | 0 .../InstCombine/tests/logs/icmp-vscale.txt | 90 + .../tests/logs/icmp-with-selects.txt | 78 + .../tests/logs/icmp-xor-signbit.txt | 94 + SSA/Projects/InstCombine/tests/logs/icmp.txt | 2 + .../logs/icmp_sdiv_with_and_without_range.txt | 10 + .../InstCombine/tests/logs/idioms.txt | 9 + .../InstCombine/tests/logs/implies.txt | 118 + .../InstCombine/tests/logs/inbounds-gep.txt | 77 + .../tests/logs/indexed-gep-compares.txt | 172 ++ .../tests/logs/infinite-loop-postdom.txt | 90 + .../tests/logs/inline-intrinsic-assert.txt | 14 + .../tests/logs/inselt-binop-inseltpoison.txt | 532 ++++ .../InstCombine/tests/logs/inselt-binop.txt | 916 ++++++ .../logs/insert-const-shuf-inseltpoison.txt | 135 + .../tests/logs/insert-const-shuf.txt | 137 + .../InstCombine/tests/logs/insert-ext.txt | 71 + .../insert-extract-shuffle-inseltpoison.txt | 469 ++++ .../tests/logs/insert-extract-shuffle.txt | 576 ++++ .../InstCombine/tests/logs/insert-trunc.txt | 254 ++ .../tests/logs/insert-val-extract-elem.txt | 28 + .../tests/logs/insertelement-bitcast.txt | 54 + .../InstCombine/tests/logs/insertelement.txt | 27 + .../tests/logs/insertelt-trunc.txt | 174 ++ .../logs/instcombine-verify-known-bits.txt | 5 + .../InstCombine/tests/logs/int_sideeffect.txt | 0 .../logs/integer-round-up-pow2-alignment.txt | 197 ++ .../tests/logs/intersect-accessgroup.txt | 50 + .../InstCombine/tests/logs/intptr1.txt | 137 + .../InstCombine/tests/logs/intptr2.txt | 23 + .../InstCombine/tests/logs/intptr3.txt | 25 + .../InstCombine/tests/logs/intptr4.txt | 31 + .../InstCombine/tests/logs/intptr5.txt | 31 + .../InstCombine/tests/logs/intptr6.txt | 2 + .../InstCombine/tests/logs/intptr7.txt | 44 + .../InstCombine/tests/logs/intptr8.txt | 0 .../tests/logs/intrinsic-select.txt | 158 ++ .../InstCombine/tests/logs/intrinsics.txt | 0 .../tests/logs/invariant.group.txt | 0 .../InstCombine/tests/logs/invariant.txt | 26 + ...t-variable-mask-in-masked-merge-scalar.txt | 133 + ...t-variable-mask-in-masked-merge-vector.txt | 106 + .../InstCombine/tests/logs/invoke.txt | 0 .../InstCombine/tests/logs/is_fpclass.txt | 1391 +++++++++ .../InstCombine/tests/logs/isascii-1.txt | 14 + .../InstCombine/tests/logs/isascii-i16.txt | 45 + .../InstCombine/tests/logs/isdigit-1.txt | 20 + .../InstCombine/tests/logs/isdigit-i16.txt | 61 + .../InstCombine/tests/logs/ispow2.txt | 668 +++++ .../tests/logs/kcfi-operand-bundles.txt | 15 + .../InstCombine/tests/logs/known-bits.txt | 0 .../logs/known-fpclass-reduce-signbit.txt | 43 + .../tests/logs/known-never-nan.txt | 96 + .../InstCombine/tests/logs/known-non-zero.txt | 104 + .../InstCombine/tests/logs/known-phi-br.txt | 61 + .../tests/logs/known-phi-recurse.txt | 46 + .../tests/logs/known-signbit-shift.txt | 12 + .../InstCombine/tests/logs/known_align.txt | 2 + .../InstCombine/tests/logs/ldexp-ext.txt | 0 SSA/Projects/InstCombine/tests/logs/ldexp.txt | 0 .../InstCombine/tests/logs/lib-call-exit.txt | 26 + .../tests/logs/lifetime-no-null-opt.txt | 32 + .../tests/logs/lifetime-sanitizer.txt | 43 + .../InstCombine/tests/logs/lifetime.txt | 32 + .../tests/logs/load-bitcast-select.txt | 58 + .../tests/logs/load-bitcast-vec.txt | 36 + .../InstCombine/tests/logs/load-bitcast32.txt | 36 + .../InstCombine/tests/logs/load-bitcast64.txt | 36 + .../InstCombine/tests/logs/load-cmp.txt | 2 + .../tests/logs/load-combine-metadata-2.txt | 7 + .../tests/logs/load-combine-metadata-3.txt | 7 + .../tests/logs/load-combine-metadata-4.txt | 7 + .../logs/load-combine-metadata-dominance.txt | 59 + .../tests/logs/load-combine-metadata.txt | 9 + .../tests/logs/load-gep-overalign.txt | 22 + .../tests/logs/load-no-aliasing.txt | 7 + .../InstCombine/tests/logs/load-select.txt | 5 + .../tests/logs/load-store-forward.txt | 2 + .../logs/load-store-masked-constant-array.txt | 0 SSA/Projects/InstCombine/tests/logs/load.txt | 2 + SSA/Projects/InstCombine/tests/logs/load3.txt | 21 + .../tests/logs/load_combine_aa.txt | 11 + .../tests/logs/loadstore-alignment.txt | 91 + .../tests/logs/loadstore-metadata.txt | 60 + .../tests/logs/log-pow-nofastmath.txt | 16 + .../InstCombine/tests/logs/log-pow.txt | 111 + .../tests/logs/log-to-intrinsic.txt | 131 + SSA/Projects/InstCombine/tests/logs/logb.txt | 46 + .../logs/logical-select-inseltpoison.txt | 303 ++ .../InstCombine/tests/logs/logical-select.txt | 2 + .../InstCombine/tests/logs/low-bit-splat.txt | 78 + .../tests/logs/lower-dbg-declare.txt | 2 + .../tests/logs/lshr-and-negC-icmpeq-zero.txt | 65 + .../logs/lshr-and-signbit-icmpeq-zero.txt | 56 + .../tests/logs/lshr-ashr-of-uscmp.txt | 0 .../InstCombine/tests/logs/lshr-phi.txt | 21 + .../logs/lshr-trunc-sext-to-ashr-sext.txt | 131 + SSA/Projects/InstCombine/tests/logs/lshr.txt | 558 ++++ .../tests/logs/malloc-free-addrspace.txt | 57 + .../logs/malloc-free-delete-dbginvar.txt | 16 + .../tests/logs/malloc-free-mismatched.txt | 18 + .../InstCombine/tests/logs/malloc-free.txt | 176 ++ .../tests/logs/malloc_free_delete_nvptx.txt | 21 + .../tests/logs/masked-merge-add.txt | 191 ++ .../tests/logs/masked-merge-and-of-ors.txt | 155 + .../tests/logs/masked-merge-or.txt | 173 ++ .../tests/logs/masked-merge-xor.txt | 191 ++ .../logs/masked_intrinsics-inseltpoison.txt | 2 + .../tests/logs/masked_intrinsics.txt | 2 + .../logs/masked_intrinsics_keep_metadata.txt | 15 + .../tests/logs/math-odd-even-parity.txt | 27 + .../logs/matrix-multiplication-negation.txt | 136 + .../InstCombine/tests/logs/max-of-nots.txt | 184 ++ .../InstCombine/tests/logs/max_known_bits.txt | 57 + .../InstCombine/tests/logs/maximum.txt | 189 ++ .../InstCombine/tests/logs/maxnum.txt | 206 ++ .../tests/logs/mem-deref-bytes-addrspaces.txt | 9 + .../tests/logs/mem-deref-bytes.txt | 68 + .../InstCombine/tests/logs/mem-gep-zidx.txt | 0 .../InstCombine/tests/logs/mem-intrinsics.txt | 54 + .../tests/logs/mem-par-metadata-memcpy.txt | 23 + .../InstCombine/tests/logs/memccpy.txt | 159 ++ .../InstCombine/tests/logs/memchr-10.txt | 40 + .../InstCombine/tests/logs/memchr-11.txt | 52 + .../InstCombine/tests/logs/memchr-2.txt | 54 + .../InstCombine/tests/logs/memchr-3.txt | 33 + .../InstCombine/tests/logs/memchr-4.txt | 23 + .../InstCombine/tests/logs/memchr-5.txt | 61 + .../InstCombine/tests/logs/memchr-6.txt | 91 + .../InstCombine/tests/logs/memchr-7.txt | 93 + .../InstCombine/tests/logs/memchr-8.txt | 0 .../InstCombine/tests/logs/memchr-9.txt | 2 + .../InstCombine/tests/logs/memchr.txt | 159 ++ .../InstCombine/tests/logs/memcmp-1.txt | 53 + .../InstCombine/tests/logs/memcmp-2.txt | 6 + .../InstCombine/tests/logs/memcmp-3.txt | 69 + .../InstCombine/tests/logs/memcmp-4.txt | 21 + .../InstCombine/tests/logs/memcmp-5.txt | 134 + .../InstCombine/tests/logs/memcmp-6.txt | 53 + .../InstCombine/tests/logs/memcmp-7.txt | 2 + .../InstCombine/tests/logs/memcmp-8.txt | 30 + .../tests/logs/memcmp-constant-fold.txt | 31 + .../InstCombine/tests/logs/memcpy-1.txt | 23 + .../InstCombine/tests/logs/memcpy-2.txt | 6 + .../tests/logs/memcpy-addrspace.txt | 122 + .../tests/logs/memcpy-from-global.txt | 2 + .../InstCombine/tests/logs/memcpy-to-load.txt | 50 + .../InstCombine/tests/logs/memcpy.txt | 16 + .../InstCombine/tests/logs/memcpy_alloca.txt | 36 + .../InstCombine/tests/logs/memcpy_chk-1.txt | 55 + .../InstCombine/tests/logs/memcpy_chk-2.txt | 12 + .../InstCombine/tests/logs/memmove-1.txt | 15 + .../InstCombine/tests/logs/memmove-2.txt | 6 + .../InstCombine/tests/logs/memmove.txt | 23 + .../InstCombine/tests/logs/memmove_chk-1.txt | 48 + .../InstCombine/tests/logs/memmove_chk-2.txt | 12 + .../InstCombine/tests/logs/mempcpy.txt | 40 + .../InstCombine/tests/logs/memrchr-2.txt | 28 + .../InstCombine/tests/logs/memrchr-3.txt | 126 + .../InstCombine/tests/logs/memrchr-4.txt | 63 + .../InstCombine/tests/logs/memrchr-5.txt | 82 + .../InstCombine/tests/logs/memrchr-7.txt | 48 + .../InstCombine/tests/logs/memrchr-8.txt | 32 + .../InstCombine/tests/logs/memrchr.txt | 18 + .../InstCombine/tests/logs/memset-1.txt | 94 + .../InstCombine/tests/logs/memset-2.txt | 6 + .../InstCombine/tests/logs/memset.txt | 32 + .../InstCombine/tests/logs/memset2.txt | 5 + .../InstCombine/tests/logs/memset_chk-1.txt | 0 .../InstCombine/tests/logs/memset_chk-2.txt | 10 + .../InstCombine/tests/logs/merge-icmp.txt | 126 + ...merging-multiple-stores-into-successor.txt | 2 + .../InstCombine/tests/logs/min-positive.txt | 40 + .../InstCombine/tests/logs/minimum.txt | 215 ++ .../tests/logs/minmax-demandbits.txt | 88 + .../InstCombine/tests/logs/minmax-fold.txt | 550 ++++ .../InstCombine/tests/logs/minmax-fp.txt | 212 ++ .../tests/logs/minmax-intrinsics.txt | 1072 +++++++ .../tests/logs/minmax-of-minmax.txt | 60 + .../tests/logs/minmax-of-xor-x.txt | 47 + .../InstCombine/tests/logs/minnum.txt | 218 ++ .../InstCombine/tests/logs/misc-2002.txt | 22 + .../InstCombine/tests/logs/modulo.txt | 49 + .../tests/logs/mul-inseltpoison.txt | 0 .../tests/logs/mul-masked-bits.txt | 2 + .../InstCombine/tests/logs/mul-min-max.txt | 30 + .../InstCombine/tests/logs/mul-pow2.txt | 50 + SSA/Projects/InstCombine/tests/logs/mul.txt | 0 .../InstCombine/tests/logs/mul_fold.txt | 294 ++ .../InstCombine/tests/logs/mul_full_32.txt | 2 + .../InstCombine/tests/logs/mul_full_64.txt | 2 + .../logs/multi-size-address-space-pointer.txt | 2 + .../tests/logs/multi-use-load-casts.txt | 88 + .../InstCombine/tests/logs/multi-use-or.txt | 3 + .../multiple-uses-load-bitcast-select.txt | 38 + .../InstCombine/tests/logs/musttail-thunk.txt | 15 + SSA/Projects/InstCombine/tests/logs/nan.txt | 44 + .../InstCombine/tests/logs/nanl-fp128.txt | 18 + .../InstCombine/tests/logs/nanl-fp80.txt | 18 + .../InstCombine/tests/logs/nanl-ppc-fp128.txt | 2 + .../InstCombine/tests/logs/narrow-math.txt | 194 ++ .../InstCombine/tests/logs/narrow-switch.txt | 2 + .../InstCombine/tests/logs/narrow.txt | 79 + .../InstCombine/tests/logs/neg-alloca.txt | 10 + .../tests/logs/negated-bitmask.txt | 113 + .../InstCombine/tests/logs/nested-select.txt | 278 ++ .../tests/logs/new-delete-itanium-32.txt | 45 + .../tests/logs/new-delete-itanium.txt | 132 + .../tests/logs/new-delete-msvc.txt | 13 + .../tests/logs/new-inst-dbgloc-overwrite.txt | 19 + .../InstCombine/tests/logs/no-negzero.txt | 21 + .../tests/logs/no-unwind-inline-asm.txt | 0 .../tests/logs/no_cgscc_assert.txt | 6 + .../tests/logs/no_sink_instruction.txt | 3 + .../tests/logs/noalias-scope-decl.txt | 92 + .../tests/logs/non-integral-pointers.txt | 57 + .../tests/logs/nonnull-attribute.txt | 17 + .../InstCombine/tests/logs/nonnull-select.txt | 68 + .../InstCombine/tests/logs/not-add.txt | 77 + SSA/Projects/InstCombine/tests/logs/not.txt | 410 +++ .../InstCombine/tests/logs/nothrow.txt | 6 + .../tests/logs/nsw-inseltpoison.txt | 0 SSA/Projects/InstCombine/tests/logs/nsw.txt | 0 .../tests/logs/obfuscated_splat.txt | 22 + .../tests/logs/object-size-opaque.txt | 0 .../InstCombine/tests/logs/objsize-64.txt | 35 + .../tests/logs/objsize-address-space.txt | 0 .../InstCombine/tests/logs/objsize.txt | 0 .../InstCombine/tests/logs/odr-linkage.txt | 17 + ...f-two-or-zero-when-comparing-with-zero.txt | 79 + .../InstCombine/tests/logs/onehot_merge.txt | 303 ++ .../InstCombine/tests/logs/opaque-ptr.txt | 2 + .../InstCombine/tests/logs/opaque.txt | 10 + .../tests/logs/operand-complexity.txt | 85 + .../logs/opts-tuples-extract-intrinsic.txt | 2 + .../InstCombine/tests/logs/or-concat.txt | 60 + .../InstCombine/tests/logs/or-fcmp.txt | 1797 ++++++++++++ .../tests/logs/or-shifted-masks.txt | 158 ++ .../InstCombine/tests/logs/or-xor-xor.txt | 67 + .../InstCombine/tests/logs/or-xor.txt | 766 +++++ SSA/Projects/InstCombine/tests/logs/or.txt | 2 + .../InstCombine/tests/logs/oss_fuzz_32759.txt | 5 + .../InstCombine/tests/logs/osx-names.txt | 21 + .../tests/logs/out-of-bounds-indexes.txt | 17 + .../out-of-tree-allocator-optimizes-away.txt | 15 + .../InstCombine/tests/logs/overflow-mul.txt | 152 + .../InstCombine/tests/logs/overflow.txt | 70 + .../tests/logs/overflow_to_sat.txt | 346 +++ ...put-masking-after-truncation-variant-a.txt | 239 ++ ...put-masking-after-truncation-variant-b.txt | 236 ++ ...put-masking-after-truncation-variant-c.txt | 213 ++ ...put-masking-after-truncation-variant-d.txt | 230 ++ ...put-masking-after-truncation-variant-e.txt | 177 ++ ...ant-left-shift-input-masking-variant-a.txt | 147 + ...ant-left-shift-input-masking-variant-b.txt | 129 + ...ant-left-shift-input-masking-variant-c.txt | 91 + ...ant-left-shift-input-masking-variant-d.txt | 101 + ...ant-left-shift-input-masking-variant-e.txt | 93 + .../phi-aware-aggregate-reconstruction.txt | 2 + .../InstCombine/tests/logs/phi-cse.txt | 132 + .../logs/phi-equal-incoming-pointers.txt | 288 ++ .../tests/logs/phi-extractvalue.txt | 2 + .../InstCombine/tests/logs/phi-int-users.txt | 16 + .../tests/logs/phi-int2ptr-fold.txt | 56 + .../logs/phi-known-bits-operand-order.txt | 41 + .../tests/logs/phi-load-metadata-2.txt | 19 + .../tests/logs/phi-load-metadata-3.txt | 19 + .../tests/logs/phi-load-metadata-4.txt | 32 + .../logs/phi-load-metadata-dominance.txt | 19 + .../tests/logs/phi-load-metadata.txt | 19 + .../InstCombine/tests/logs/phi-merge-gep.txt | 109 + .../tests/logs/phi-of-insertvalues.txt | 2 + .../tests/logs/phi-pointercasts.txt | 208 ++ .../tests/logs/phi-preserve-ir-flags.txt | 36 + .../tests/logs/phi-select-constant.txt | 94 + .../InstCombine/tests/logs/phi-shifts.txt | 7 + .../InstCombine/tests/logs/phi-timeout.txt | 23 + ...hi-with-multiple-unsimplifiable-values.txt | 0 SSA/Projects/InstCombine/tests/logs/phi.txt | 1021 +++++++ SSA/Projects/InstCombine/tests/logs/pow-0.txt | 24 + SSA/Projects/InstCombine/tests/logs/pow-1.txt | 277 ++ SSA/Projects/InstCombine/tests/logs/pow-2.txt | 6 + SSA/Projects/InstCombine/tests/logs/pow-3.txt | 30 + SSA/Projects/InstCombine/tests/logs/pow-4.txt | 85 + .../InstCombine/tests/logs/pow-cbrt.txt | 42 + .../tests/logs/pow-exp-nofastmath.txt | 8 + .../InstCombine/tests/logs/pow-exp.txt | 252 ++ .../InstCombine/tests/logs/pow-sqrt.txt | 162 ++ .../InstCombine/tests/logs/pow-to-ldexp.txt | 0 .../InstCombine/tests/logs/pow-to-sqrt.txt | 11 + .../InstCombine/tests/logs/pow_fp_int.txt | 0 .../InstCombine/tests/logs/pow_fp_int16.txt | 0 SSA/Projects/InstCombine/tests/logs/powi.txt | 227 ++ .../InstCombine/tests/logs/pr100298.txt | 13 + .../InstCombine/tests/logs/pr12251.txt | 5 + .../InstCombine/tests/logs/pr12338.txt | 9 + .../InstCombine/tests/logs/pr14365.txt | 29 + .../InstCombine/tests/logs/pr17827.txt | 24 + .../InstCombine/tests/logs/pr20678.txt | 3 + .../InstCombine/tests/logs/pr21199.txt | 18 + .../InstCombine/tests/logs/pr21210.txt | 46 + .../InstCombine/tests/logs/pr21651.txt | 5 + .../InstCombine/tests/logs/pr21891.txt | 11 + .../InstCombine/tests/logs/pr23751.txt | 9 + .../InstCombine/tests/logs/pr23809.txt | 12 + .../InstCombine/tests/logs/pr24354.txt | 33 + .../InstCombine/tests/logs/pr24605.txt | 3 + .../InstCombine/tests/logs/pr25342.txt | 2 + .../InstCombine/tests/logs/pr25745.txt | 19 + .../tests/logs/pr2645-0-inseltpoison.txt | 2 + .../InstCombine/tests/logs/pr2645-0.txt | 2 + .../InstCombine/tests/logs/pr26992.txt | 0 .../InstCombine/tests/logs/pr26993.txt | 12 + .../InstCombine/tests/logs/pr27236.txt | 5 + .../InstCombine/tests/logs/pr27332.txt | 11 + .../InstCombine/tests/logs/pr27343.txt | 10 + .../InstCombine/tests/logs/pr27703.txt | 11 + .../InstCombine/tests/logs/pr27996.txt | 35 + .../InstCombine/tests/logs/pr28143.txt | 8 + .../InstCombine/tests/logs/pr28725.txt | 3 + .../InstCombine/tests/logs/pr2996.txt | 12 + .../InstCombine/tests/logs/pr30929.txt | 8 + .../tests/logs/pr31990_wrong_memcpy.txt | 17 + .../InstCombine/tests/logs/pr32686.txt | 17 + .../InstCombine/tests/logs/pr33453.txt | 14 + .../tests/logs/pr33689_same_bitwidth.txt | 19 + .../InstCombine/tests/logs/pr34349.txt | 5 + .../InstCombine/tests/logs/pr34627.txt | 3 + .../InstCombine/tests/logs/pr35515.txt | 15 + .../InstCombine/tests/logs/pr36362.txt | 5 + .../InstCombine/tests/logs/pr38677.txt | 7 + .../InstCombine/tests/logs/pr38897.txt | 9 + .../InstCombine/tests/logs/pr38915.txt | 5 + .../tests/logs/pr38984-inseltpoison.txt | 24 + .../InstCombine/tests/logs/pr38984.txt | 36 + .../InstCombine/tests/logs/pr39177.txt | 31 + .../InstCombine/tests/logs/pr39908.txt | 2 + .../InstCombine/tests/logs/pr41164.txt | 11 + .../InstCombine/tests/logs/pr43081.txt | 11 + ...dStrictnessPredicateAndConstant-assert.txt | 9 + .../InstCombine/tests/logs/pr43893.txt | 19 + .../InstCombine/tests/logs/pr44242.txt | 97 + .../InstCombine/tests/logs/pr44245.txt | 86 + .../InstCombine/tests/logs/pr44541.txt | 8 + .../InstCombine/tests/logs/pr44552.txt | 5 + .../InstCombine/tests/logs/pr44835.txt | 11 + .../InstCombine/tests/logs/pr46680.txt | 57 + .../InstCombine/tests/logs/pr49688.txt | 16 + .../InstCombine/tests/logs/pr51824.txt | 7 + .../InstCombine/tests/logs/pr53357.txt | 55 + .../InstCombine/tests/logs/pr55228.txt | 0 .../InstCombine/tests/logs/pr56424.txt | 5 + .../InstCombine/tests/logs/pr58901.txt | 10 + .../InstCombine/tests/logs/pr59613.txt | 9 + .../InstCombine/tests/logs/pr63791.txt | 17 + .../InstCombine/tests/logs/pr69059.txt | 6 + .../InstCombine/tests/logs/pr71330.txt | 23 + .../InstCombine/tests/logs/pr72433.txt | 9 + .../InstCombine/tests/logs/pr75129.txt | 6 + .../InstCombine/tests/logs/pr75369.txt | 9 + .../InstCombine/tests/logs/pr77064.txt | 13 + .../InstCombine/tests/logs/pr80597.txt | 7 + .../InstCombine/tests/logs/pr80941.txt | 13 + .../InstCombine/tests/logs/pr82877.txt | 11 + .../InstCombine/tests/logs/pr83931.txt | 0 .../InstCombine/tests/logs/pr83947.txt | 0 .../InstCombine/tests/logs/pr98139.txt | 11 + .../InstCombine/tests/logs/pr98435.txt | 11 + .../InstCombine/tests/logs/prefetch-load.txt | 15 + .../tests/logs/preserve-sminmax.txt | 6 + .../tests/logs/preserved-analyses.txt | 8 + .../tests/logs/prevent-cmp-merge.txt | 29 + .../InstCombine/tests/logs/printf-1.txt | 70 + .../InstCombine/tests/logs/printf-2.txt | 52 + .../InstCombine/tests/logs/printf-3.txt | 0 .../InstCombine/tests/logs/printf-i16.txt | 52 + .../InstCombine/tests/logs/ptr-int-cast.txt | 2 + .../tests/logs/ptr-int-ptr-icmp.txt | 0 .../tests/logs/ptr-replace-alloca.txt | 252 ++ .../tests/logs/ptrauth-intrinsics.txt | 0 .../InstCombine/tests/logs/ptrmask.txt | 0 .../tests/logs/ptrtoint-nullgep.txt | 2 + .../tests/logs/pull-binop-through-shift.txt | 172 ++ .../pull-conditional-binop-through-shift.txt | 72 + .../InstCombine/tests/logs/puts-1.txt | 16 + .../InstCombine/tests/logs/puts-i16.txt | 13 + .../InstCombine/tests/logs/range-check.txt | 118 + .../tests/logs/readnone-maythrow.txt | 25 + .../InstCombine/tests/logs/realloc-free.txt | 11 + .../InstCombine/tests/logs/realloc.txt | 12 + .../tests/logs/reassociate-nuw.txt | 123 + .../InstCombine/tests/logs/recurrence.txt | 63 + .../tests/logs/reduction-add-sext-zext-i1.txt | 63 + .../tests/logs/reduction-and-sext-zext-i1.txt | 99 + .../tests/logs/reduction-mul-sext-zext-i1.txt | 63 + .../tests/logs/reduction-or-sext-zext-i1.txt | 99 + .../tests/logs/reduction-shufflevector.txt | 128 + .../logs/reduction-smax-sext-zext-i1.txt | 63 + .../logs/reduction-smin-sext-zext-i1.txt | 63 + .../logs/reduction-umax-sext-zext-i1.txt | 63 + .../logs/reduction-umin-sext-zext-i1.txt | 63 + .../tests/logs/reduction-xor-sext-zext-i1.txt | 69 + ...put-masking-after-truncation-variant-a.txt | 157 ++ ...put-masking-after-truncation-variant-b.txt | 156 + ...put-masking-after-truncation-variant-c.txt | 159 ++ ...put-masking-after-truncation-variant-d.txt | 169 ++ ...put-masking-after-truncation-variant-e.txt | 119 + ...put-masking-after-truncation-variant-f.txt | 130 + ...ndant-left-shift-input-masking-pr49778.txt | 3 + ...ant-left-shift-input-masking-variant-a.txt | 179 ++ ...ant-left-shift-input-masking-variant-b.txt | 162 ++ ...ant-left-shift-input-masking-variant-c.txt | 110 + ...ant-left-shift-input-masking-variant-d.txt | 139 + ...ant-left-shift-input-masking-variant-e.txt | 83 + ...ant-left-shift-input-masking-variant-f.txt | 88 + .../redundant-right-shift-input-masking.txt | 88 + .../InstCombine/tests/logs/rem-mul-shl.txt | 0 SSA/Projects/InstCombine/tests/logs/rem.txt | 453 +++ .../logs/remove-loop-phi-multiply-by-zero.txt | 144 + .../InstCombine/tests/logs/remquo.txt | 39 + .../InstCombine/tests/logs/remquol-fp128.txt | 6 + .../InstCombine/tests/logs/remquol-fp80.txt | 6 + .../tests/logs/remquol-ppc-fp128.txt | 0 ...-negative-is-non-zero-and-no-underflow.txt | 228 ++ ...e-or-zero-is-non-zero-and-no-underflow.txt | 124 + ...lt-of-usub-is-non-zero-and-no-overflow.txt | 2 + .../reuse-constant-from-select-in-icmp.txt | 166 ++ .../InstCombine/tests/logs/rotate.txt | 249 ++ .../tests/logs/sadd-with-overflow.txt | 2 + .../InstCombine/tests/logs/sadd_sat.txt | 271 ++ SSA/Projects/InstCombine/tests/logs/saddo.txt | 31 + .../tests/logs/salvage-dbg-declare.txt | 12 + .../tests/logs/saturating-add-sub.txt | 698 +++++ .../logs/scalable-bitcast-inseltpoison.txt | 2 + .../tests/logs/scalable-bitcast.txt | 2 + .../tests/logs/scalable-cast-of-alloc.txt | 0 .../tests/logs/scalable-const-fp-splat.txt | 2 + .../tests/logs/scalable-select.txt | 0 .../InstCombine/tests/logs/scalable-trunc.txt | 0 .../tests/logs/scalable-vector-array.txt | 2 + .../tests/logs/scalable-vector-struct.txt | 2 + .../tests/logs/scalarization-inseltpoison.txt | 175 ++ .../InstCombine/tests/logs/scalarization.txt | 186 ++ SSA/Projects/InstCombine/tests/logs/scmp.txt | 0 .../InstCombine/tests/logs/sdiv-1.txt | 15 + .../InstCombine/tests/logs/sdiv-2.txt | 19 + .../tests/logs/sdiv-canonicalize.txt | 52 + .../sdiv-exact-by-negative-power-of-two.txt | 45 + .../tests/logs/sdiv-exact-by-power-of-two.txt | 68 + .../InstCombine/tests/logs/sdiv-guard.txt | 0 .../InstCombine/tests/logs/sdiv-icmp.txt | 32 + ...-non-negative-by-negative-power-of-two.txt | 15 + .../InstCombine/tests/logs/select-2.txt | 35 + .../InstCombine/tests/logs/select-and-or.txt | 533 ++++ .../tests/logs/select-binop-cmp.txt | 658 +++++ .../select-binop-foldable-floating-point.txt | 2 + .../tests/logs/select-bitext-bitwise-ops.txt | 18 + .../InstCombine/tests/logs/select-bitext.txt | 275 ++ .../InstCombine/tests/logs/select-cmp-br.txt | 2 + .../tests/logs/select-cmp-cttz-ctlz.txt | 241 ++ .../tests/logs/select-cmp-eq-op-fold.txt | 74 + .../InstCombine/tests/logs/select-cmp.txt | 0 .../InstCombine/tests/logs/select-cmpxchg.txt | 11 + .../InstCombine/tests/logs/select-crash.txt | 30 + .../tests/logs/select-ctlz-to-cttz.txt | 92 + .../InstCombine/tests/logs/select-divrem.txt | 121 + .../select-extractelement-inseltpoison.txt | 120 + .../tests/logs/select-extractelement.txt | 145 + .../tests/logs/select-factorize.txt | 367 +++ .../InstCombine/tests/logs/select-gep.txt | 2 + .../tests/logs/select-icmp-and-zero-shl.txt | 59 + .../tests/logs/select-icmp-and.txt | 276 ++ .../tests/logs/select-imm-canon.txt | 40 + .../tests/logs/select-load-call.txt | 8 + .../InstCombine/tests/logs/select-load.txt | 49 + .../tests/logs/select-masked_gather.txt | 0 .../tests/logs/select-masked_load.txt | 37 + .../InstCombine/tests/logs/select-min-max.txt | 125 + .../tests/logs/select-obo-peo-ops.txt | 320 +++ .../tests/logs/select-of-bittest.txt | 276 ++ .../logs/select-of-symmetric-selects.txt | 54 + .../InstCombine/tests/logs/select-pr39595.txt | 3 + .../logs/select-safe-bool-transforms.txt | 180 ++ .../select-safe-impliedcond-transforms.txt | 75 + .../tests/logs/select-safe-transforms.txt | 300 ++ .../InstCombine/tests/logs/select-select.txt | 0 .../tests/logs/select-with-bitwise-ops.txt | 545 ++++ .../InstCombine/tests/logs/select.txt | 0 .../tests/logs/select_arithmetic.txt | 51 + .../InstCombine/tests/logs/select_meta.txt | 116 + .../logs/set-lowbits-mask-canonicalize.txt | 171 ++ SSA/Projects/InstCombine/tests/logs/set.txt | 212 ++ .../tests/logs/setcc-strength-reduce.txt | 15 + .../sext-a-lt-b-plus-zext-a-gt-b-to-uscmp.txt | 0 .../tests/logs/sext-of-trunc-nsw.txt | 85 + SSA/Projects/InstCombine/tests/logs/sext.txt | 157 ++ .../tests/logs/shift-add-inseltpoison.txt | 127 + .../InstCombine/tests/logs/shift-add.txt | 413 +++ ...iation-in-bittest-with-truncation-lshr.txt | 110 + ...ciation-in-bittest-with-truncation-shl.txt | 186 ++ .../shift-amount-reassociation-in-bittest.txt | 285 ++ ...unt-reassociation-with-truncation-ashr.txt | 84 + ...unt-reassociation-with-truncation-lshr.txt | 84 + ...ount-reassociation-with-truncation-shl.txt | 110 + .../tests/logs/shift-amount-reassociation.txt | 155 + .../tests/logs/shift-by-signext.txt | 62 + .../tests/logs/shift-cttz-ctlz.txt | 23 + .../logs/shift-direction-in-bit-test.txt | 79 + .../InstCombine/tests/logs/shift-flags.txt | 45 + .../InstCombine/tests/logs/shift-logic.txt | 277 ++ .../InstCombine/tests/logs/shift-shift.txt | 282 ++ .../InstCombine/tests/logs/shift-sra.txt | 67 + SSA/Projects/InstCombine/tests/logs/shift.txt | 0 .../tests/logs/shl-and-negC-icmpeq-zero.txt | 56 + .../logs/shl-and-signbit-icmpeq-zero.txt | 56 + .../InstCombine/tests/logs/shl-bo.txt | 286 ++ .../InstCombine/tests/logs/shl-demand.txt | 112 + .../InstCombine/tests/logs/shl-factor.txt | 127 + .../InstCombine/tests/logs/shl-sub.txt | 129 + .../tests/logs/shl-unsigned-cmp-const.txt | 105 + .../tests/logs/should-change-type.txt | 28 + .../InstCombine/tests/logs/shuffle-binop.txt | 0 .../tests/logs/shuffle-cast-dist.txt | 81 + .../tests/logs/shuffle-cast-inseltpoison.txt | 60 + .../InstCombine/tests/logs/shuffle-cast.txt | 60 + .../shuffle-select-narrow-inseltpoison.txt | 87 + .../tests/logs/shuffle-select-narrow.txt | 87 + .../logs/shuffle_select-inseltpoison.txt | 788 ++++++ .../InstCombine/tests/logs/shuffle_select.txt | 869 ++++++ .../logs/shufflevec-bitcast-inseltpoison.txt | 100 + .../tests/logs/shufflevec-bitcast.txt | 133 + .../logs/shufflevec-constant-inseltpoison.txt | 3 + .../tests/logs/shufflevec-constant.txt | 2 + .../shufflevector-div-rem-inseltpoison.txt | 75 + .../tests/logs/shufflevector-div-rem.txt | 115 + .../tests/logs/shufflevector_freezepoison.txt | 73 + ...test-via-right-shifting-all-other-bits.txt | 171 ++ .../tests/logs/sign-test-and-or.txt | 152 + .../logs/signbit-lshr-and-icmpeq-zero.txt | 102 + .../logs/signbit-shl-and-icmpeq-zero.txt | 102 + .../tests/logs/signed-comparison.txt | 6 + ...ul-lack-of-overflow-check-via-mul-sdiv.txt | 67 + ...signed-mul-overflow-check-via-mul-sdiv.txt | 67 + .../tests/logs/signed-truncation-check.txt | 369 +++ .../InstCombine/tests/logs/signext.txt | 80 + .../signmask-of-sext-vs-of-shl-of-zext.txt | 76 + .../tests/logs/simple_phi_condition.txt | 156 + .../logs/simplify-demanded-bits-pointer.txt | 37 + .../tests/logs/simplify-demanded-fpclass.txt | 0 .../tests/logs/simplify-libcalls-erased.txt | 8 + .../tests/logs/simplify-libcalls-i16.txt | 168 ++ .../tests/logs/simplify-libcalls-inreg.txt | 53 + .../tests/logs/simplify-libcalls-new.txt | 2 + .../tests/logs/simplify-libcalls.txt | 159 ++ .../InstCombine/tests/logs/sincospi.txt | 75 + .../InstCombine/tests/logs/sink-alloca.txt | 31 + ...on-introduces-unnecessary-poison-value.txt | 29 + .../tests/logs/sink-into-catchswitch.txt | 0 .../InstCombine/tests/logs/sink-into-ncd.txt | 45 + .../tests/logs/sink-into-resume-block.txt | 41 + .../tests/logs/sink-not-into-and.txt | 79 + .../sink-not-into-another-hand-of-and.txt | 48 + ...k-not-into-another-hand-of-logical-and.txt | 78 + ...nk-not-into-another-hand-of-logical-or.txt | 78 + .../logs/sink-not-into-another-hand-of-or.txt | 48 + .../tests/logs/sink-not-into-logical-and.txt | 108 + .../tests/logs/sink-not-into-logical-or.txt | 101 + .../tests/logs/sink-not-into-or.txt | 79 + .../tests/logs/sink_instruction.txt | 0 .../logs/sink_sideeffecting_instruction.txt | 183 ++ .../tests/logs/sink_to_unreachable.txt | 0 .../InstCombine/tests/logs/sitofp.txt | 156 + .../skip-opt-void-to-non-void-conversion.txt | 13 + .../InstCombine/tests/logs/smax-icmp.txt | 534 ++++ .../InstCombine/tests/logs/smin-icmp.txt | 890 ++++++ SSA/Projects/InstCombine/tests/logs/smulo.txt | 65 + .../InstCombine/tests/logs/snprintf-2.txt | 103 + .../InstCombine/tests/logs/snprintf-3.txt | 105 + .../InstCombine/tests/logs/snprintf-4.txt | 121 + .../InstCombine/tests/logs/snprintf.txt | 97 + .../InstCombine/tests/logs/sprintf-1.txt | 85 + .../InstCombine/tests/logs/sprintf-2.txt | 2 + .../InstCombine/tests/logs/sprintf-3.txt | 15 + .../InstCombine/tests/logs/sprintf-void.txt | 10 + .../InstCombine/tests/logs/sqrt-nofast.txt | 13 + SSA/Projects/InstCombine/tests/logs/sqrt.txt | 2 + .../tests/logs/srem-canonicalize.txt | 19 + .../tests/logs/srem-simplify-bug.txt | 3 + .../tests/logs/srem-via-sdiv-mul-sub.txt | 31 + SSA/Projects/InstCombine/tests/logs/srem1.txt | 12 + .../tests/logs/ssub-with-overflow.txt | 2 + SSA/Projects/InstCombine/tests/logs/ssubo.txt | 74 + .../tests/logs/stack-overalign.txt | 14 + .../tests/logs/stacksave-debuginfo.txt | 11 + .../tests/logs/stacksaverestore.txt | 91 + .../tests/logs/statepoint-cleanup.txt | 0 .../tests/logs/statepoint-iter.txt | 0 .../InstCombine/tests/logs/statepoint.txt | 0 .../tests/logs/stdio-custom-dl.txt | 22 + .../tests/logs/stdiocall-bad-sig.txt | 45 + .../tests/logs/store-load-unaliased-gep.txt | 11 + SSA/Projects/InstCombine/tests/logs/store.txt | 160 ++ .../InstCombine/tests/logs/storemerge-dbg.txt | 12 + .../InstCombine/tests/logs/stpcpy-1.txt | 51 + .../InstCombine/tests/logs/stpcpy-2.txt | 12 + .../InstCombine/tests/logs/stpcpy_chk-1.txt | 0 .../InstCombine/tests/logs/stpcpy_chk-2.txt | 12 + .../InstCombine/tests/logs/stpncpy-1.txt | 229 ++ .../InstCombine/tests/logs/str-int-2.txt | 99 + .../InstCombine/tests/logs/str-int-3.txt | 2 + .../InstCombine/tests/logs/str-int-4.txt | 351 +++ .../InstCombine/tests/logs/str-int-5.txt | 306 ++ .../InstCombine/tests/logs/str-int.txt | 101 + .../tests/logs/strcall-bad-sig.txt | 127 + .../InstCombine/tests/logs/strcall-no-nul.txt | 243 ++ .../InstCombine/tests/logs/strcat-1.txt | 24 + .../InstCombine/tests/logs/strcat-2.txt | 22 + .../InstCombine/tests/logs/strcat-3.txt | 12 + .../InstCombine/tests/logs/strchr-1.txt | 88 + .../InstCombine/tests/logs/strchr-2.txt | 14 + .../InstCombine/tests/logs/strchr-3.txt | 109 + .../InstCombine/tests/logs/strchr-4.txt | 36 + .../InstCombine/tests/logs/strcmp-1.txt | 57 + .../InstCombine/tests/logs/strcmp-2.txt | 10 + .../InstCombine/tests/logs/strcmp-3.txt | 61 + .../InstCombine/tests/logs/strcmp-4.txt | 14 + .../InstCombine/tests/logs/strcmp-memcmp.txt | 327 +++ .../InstCombine/tests/logs/strcpy-1.txt | 41 + .../InstCombine/tests/logs/strcpy-2.txt | 12 + .../tests/logs/strcpy-nonzero-as.txt | 45 + .../InstCombine/tests/logs/strcpy_chk-1.txt | 0 .../InstCombine/tests/logs/strcpy_chk-2.txt | 12 + .../InstCombine/tests/logs/strcpy_chk-64.txt | 24 + .../InstCombine/tests/logs/strcspn-1.txt | 24 + .../InstCombine/tests/logs/strcspn-2.txt | 8 + ...ow-check-to-comparison-of-sub-operands.txt | 60 + .../InstCombine/tests/logs/strlcpy-1.txt | 183 ++ .../InstCombine/tests/logs/strlen-1.txt | 138 + .../InstCombine/tests/logs/strlen-2.txt | 8 + .../InstCombine/tests/logs/strlen-3.txt | 3 + .../InstCombine/tests/logs/strlen-4.txt | 118 + .../InstCombine/tests/logs/strlen-5.txt | 141 + .../InstCombine/tests/logs/strlen-6.txt | 133 + .../InstCombine/tests/logs/strlen-7.txt | 2 + .../InstCombine/tests/logs/strlen-8.txt | 38 + .../InstCombine/tests/logs/strlen-9.txt | 48 + .../InstCombine/tests/logs/strlen_chk.txt | 27 + .../InstCombine/tests/logs/strncat-1.txt | 24 + .../InstCombine/tests/logs/strncat-2.txt | 55 + .../InstCombine/tests/logs/strncat-3.txt | 12 + .../InstCombine/tests/logs/strncmp-1.txt | 64 + .../InstCombine/tests/logs/strncmp-2.txt | 10 + .../InstCombine/tests/logs/strncmp-3.txt | 31 + .../InstCombine/tests/logs/strncmp-4.txt | 72 + .../InstCombine/tests/logs/strncmp-5.txt | 199 ++ .../InstCombine/tests/logs/strncmp-6.txt | 56 + .../tests/logs/strncmp-wrong-datalayout.txt | 6 + .../InstCombine/tests/logs/strncpy-1.txt | 104 + .../InstCombine/tests/logs/strncpy-2.txt | 12 + .../InstCombine/tests/logs/strncpy-3.txt | 32 + .../InstCombine/tests/logs/strncpy-4.txt | 75 + .../InstCombine/tests/logs/strncpy_chk-1.txt | 41 + .../InstCombine/tests/logs/strncpy_chk-2.txt | 12 + .../InstCombine/tests/logs/strndup.txt | 36 + .../InstCombine/tests/logs/strnlen-1.txt | 74 + .../InstCombine/tests/logs/strnlen-2.txt | 121 + .../InstCombine/tests/logs/strnlen-3.txt | 98 + .../InstCombine/tests/logs/strnlen-4.txt | 45 + .../InstCombine/tests/logs/strnlen-5.txt | 94 + .../InstCombine/tests/logs/strnlen-6.txt | 24 + .../InstCombine/tests/logs/strpbrk-1.txt | 23 + .../InstCombine/tests/logs/strpbrk-2.txt | 10 + .../InstCombine/tests/logs/strrchr-1.txt | 65 + .../InstCombine/tests/logs/strrchr-2.txt | 14 + .../InstCombine/tests/logs/strrchr-3.txt | 40 + .../InstCombine/tests/logs/strspn-1.txt | 23 + .../InstCombine/tests/logs/strstr-1.txt | 41 + .../InstCombine/tests/logs/strstr-2.txt | 8 + .../InstCombine/tests/logs/strto-1.txt | 75 + .../tests/logs/struct-assign-tbaa-2.txt | 0 .../tests/logs/struct-assign-tbaa-new.txt | 0 .../tests/logs/struct-assign-tbaa.txt | 33 + .../tests/logs/sub-and-or-neg-xor.txt | 41 + .../logs/sub-ashr-and-to-icmp-select.txt | 79 + .../tests/logs/sub-ashr-or-to-icmp-select.txt | 131 + .../InstCombine/tests/logs/sub-from-sub.txt | 130 + .../InstCombine/tests/logs/sub-gep.txt | 264 ++ .../tests/logs/sub-lshr-or-to-icmp-select.txt | 30 + .../InstCombine/tests/logs/sub-minmax.txt | 338 +++ .../InstCombine/tests/logs/sub-not.txt | 55 + .../logs/sub-of-negatible-inseltpoison.txt | 479 ++++ .../tests/logs/sub-of-negatible.txt | 520 ++++ .../InstCombine/tests/logs/sub-or-and-xor.txt | 39 + .../InstCombine/tests/logs/sub-xor-cmp.txt | 49 + .../tests/logs/sub-xor-or-neg-and.txt | 41 + .../InstCombine/tests/logs/sub-xor.txt | 74 + SSA/Projects/InstCombine/tests/logs/sub.txt | 0 .../logs/subtract-from-one-hand-of-select.txt | 20 + .../logs/subtract-of-one-hand-of-select.txt | 20 + .../logs/swifterror-argument-bitcast-fold.txt | 8 + .../tests/logs/switch-constant-expr.txt | 14 + .../InstCombine/tests/logs/switch-select.txt | 77 + .../InstCombine/tests/logs/switch-shl.txt | 31 + .../InstCombine/tests/logs/switch-sub.txt | 9 + .../tests/logs/switch-truncate-crash.txt | 5 + .../tests/logs/switch-zext-sext.txt | 16 + .../tests/logs/tbaa-store-to-load.txt | 5 + .../tests/logs/threadlocal_address.txt | 27 + .../tests/logs/tmp-alloca-bypass.txt | 44 + .../InstCombine/tests/logs/toascii-1.txt | 24 + SSA/Projects/InstCombine/tests/logs/token.txt | 0 SSA/Projects/InstCombine/tests/logs/trig.txt | 69 + .../tests/logs/trivial-dse-calls.txt | 119 + .../tests/logs/trunc-binop-ext.txt | 107 + .../InstCombine/tests/logs/trunc-demand.txt | 43 + .../trunc-extractelement-inseltpoison.txt | 2 + .../tests/logs/trunc-extractelement.txt | 2 + .../tests/logs/trunc-fp-to-int.txt | 98 + .../tests/logs/trunc-inseltpoison.txt | 392 +++ .../InstCombine/tests/logs/trunc-load.txt | 45 + .../tests/logs/trunc-shift-trunc.txt | 78 + .../InstCombine/tests/logs/trunc-shl-zext.txt | 10 + SSA/Projects/InstCombine/tests/logs/trunc.txt | 433 +++ .../tests/logs/truncating-saturate.txt | 297 ++ .../tests/logs/type_pun-inseltpoison.txt | 2 + .../InstCombine/tests/logs/type_pun.txt | 2 + .../tests/logs/uadd-with-overflow.txt | 2 + SSA/Projects/InstCombine/tests/logs/uaddo.txt | 60 + .../InstCombine/tests/logs/uaddo2.txt | 31 + SSA/Projects/InstCombine/tests/logs/ucmp.txt | 0 .../logs/udiv-pow2-vscale-inseltpoison.txt | 0 .../tests/logs/udiv-pow2-vscale.txt | 0 .../InstCombine/tests/logs/udiv-simplify.txt | 0 .../logs/udiv_select_to_select_shift.txt | 14 + .../tests/logs/udivrem-change-width.txt | 133 + .../InstCombine/tests/logs/umax-icmp.txt | 521 ++++ .../InstCombine/tests/logs/umin-icmp.txt | 521 ++++ .../InstCombine/tests/logs/umin_cttz_ctlz.txt | 136 + .../tests/logs/umul-sign-check.txt | 2 + .../InstCombine/tests/logs/umulo-square.txt | 28 + SSA/Projects/InstCombine/tests/logs/umulo.txt | 65 + .../tests/logs/unavailable-debug.txt | 27 + ...ld-masked-merge-with-const-mask-scalar.txt | 124 + ...ld-masked-merge-with-const-mask-vector.txt | 92 + .../logs/unordered-compare-and-ordered.txt | 217 ++ .../tests/logs/unordered-fcmp-select.txt | 63 + .../InstCombine/tests/logs/unpack-fca.txt | 2 + .../tests/logs/unreachable-code.txt | 241 ++ .../logs/unreachable-dbg-info-modified.txt | 7 + .../unrecognized_three-way-comparison.txt | 244 ++ ...ned-add-lack-of-overflow-check-via-add.txt | 95 + ...ned-add-lack-of-overflow-check-via-xor.txt | 74 + .../unsigned-add-lack-of-overflow-check.txt | 97 + .../unsigned-add-overflow-check-via-add.txt | 91 + .../unsigned-add-overflow-check-via-xor.txt | 74 + .../logs/unsigned-add-overflow-check.txt | 60 + ...ul-lack-of-overflow-check-via-mul-udiv.txt | 77 + ...-of-overflow-check-via-udiv-of-allones.txt | 50 + ...signed-mul-overflow-check-via-mul-udiv.txt | 77 + ...mul-overflow-check-via-udiv-of-allones.txt | 50 + .../unsigned-sub-lack-of-overflow-check.txt | 44 + .../logs/unsigned-sub-overflow-check.txt | 44 + .../tests/logs/unsigned_saturated_sub.txt | 190 ++ .../InstCombine/tests/logs/unused-nonnull.txt | 21 + .../tests/logs/unwind-inline-asm.txt | 0 .../InstCombine/tests/logs/update-bpi.txt | 7 + .../tests/logs/urem-simplify-bug.txt | 22 + .../tests/logs/urem-via-cmp-select.txt | 71 + .../tests/logs/urem-via-udiv-mul-sub.txt | 43 + .../usub-overflow-known-by-implied-cond.txt | 174 ++ SSA/Projects/InstCombine/tests/logs/usubo.txt | 68 + .../InstCombine/tests/logs/vararg.txt | 21 + ...ignext-of-variable-high-bit-extraction.txt | 302 ++ .../logs/vec-binop-select-inseltpoison.txt | 0 .../tests/logs/vec-binop-select.txt | 0 .../logs/vec_demanded_elts-inseltpoison.txt | 2 + .../tests/logs/vec_demanded_elts.txt | 2 + .../tests/logs/vec_extract_2elts.txt | 11 + .../logs/vec_extract_var_elt-inseltpoison.txt | 22 + .../tests/logs/vec_extract_var_elt.txt | 42 + .../logs/vec_gep_scalar_arg-inseltpoison.txt | 2 + .../tests/logs/vec_gep_scalar_arg.txt | 2 + .../logs/vec_phi_extract-inseltpoison.txt | 74 + .../tests/logs/vec_phi_extract.txt | 74 + .../InstCombine/tests/logs/vec_sext.txt | 30 + .../tests/logs/vec_shuffle-inseltpoison.txt | 0 .../InstCombine/tests/logs/vec_shuffle.txt | 0 .../tests/logs/vec_udiv_to_shift.txt | 6 + .../tests/logs/vector-casts-inseltpoison.txt | 191 ++ .../InstCombine/tests/logs/vector-casts.txt | 2 + .../logs/vector-concat-binop-inseltpoison.txt | 99 + .../tests/logs/vector-concat-binop.txt | 99 + .../tests/logs/vector-logical-reductions.txt | 0 .../InstCombine/tests/logs/vector-mul.txt | 120 + .../logs/vector-reduce-min-max-known.txt | 80 + .../tests/logs/vector-reductions.txt | 0 .../InstCombine/tests/logs/vector-reverse.txt | 0 .../InstCombine/tests/logs/vector-trunc.txt | 9 + .../InstCombine/tests/logs/vector-type.txt | 13 + .../InstCombine/tests/logs/vector-udiv.txt | 31 + .../InstCombine/tests/logs/vector-urem.txt | 36 + .../InstCombine/tests/logs/vector-xor.txt | 154 + .../tests/logs/vector_gep1-inseltpoison.txt | 0 .../InstCombine/tests/logs/vector_gep1.txt | 0 .../InstCombine/tests/logs/vector_gep2.txt | 2 + .../vector_insertelt_shuffle-inseltpoison.txt | 90 + .../tests/logs/vector_insertelt_shuffle.txt | 88 + .../tests/logs/volatile_load_cast.txt | 25 + .../InstCombine/tests/logs/volatile_store.txt | 20 + .../InstCombine/tests/logs/vscale.txt | 9 + .../InstCombine/tests/logs/vscale_alloca.txt | 2 + .../InstCombine/tests/logs/vscale_cmp.txt | 0 .../vscale_extractelement-inseltpoison.txt | 2 + .../tests/logs/vscale_extractelement.txt | 2 + .../InstCombine/tests/logs/vscale_gep.txt | 0 .../vscale_insertelement-inseltpoison.txt | 2 + .../tests/logs/vscale_insertelement.txt | 2 + .../InstCombine/tests/logs/vscale_load.txt | 0 .../tests/logs/vscale_sext_and_zext.txt | 31 + .../InstCombine/tests/logs/vscale_trunc.txt | 13 + .../InstCombine/tests/logs/vscale_zero.txt | 10 + .../InstCombine/tests/logs/wcslen-1.txt | 123 + .../InstCombine/tests/logs/wcslen-2.txt | 8 + .../InstCombine/tests/logs/wcslen-3.txt | 84 + .../InstCombine/tests/logs/wcslen-4.txt | 8 + .../InstCombine/tests/logs/wcslen-5.txt | 84 + .../InstCombine/tests/logs/wcslen-6.txt | 2 + .../InstCombine/tests/logs/weak-symbols.txt | 17 + .../tests/logs/widenable-conditions.txt | 0 .../InstCombine/tests/logs/win-fdim.txt | 18 + .../InstCombine/tests/logs/win-math.txt | 215 ++ .../InstCombine/tests/logs/with_overflow.txt | 2 + .../InstCombine/tests/logs/xor-and-or.txt | 90 + .../InstCombine/tests/logs/xor-ashr.txt | 85 + .../InstCombine/tests/logs/xor-icmps.txt | 134 + .../logs/xor-of-icmps-with-extra-uses.txt | 78 + .../InstCombine/tests/logs/xor-of-or.txt | 112 + .../InstCombine/tests/logs/xor-undef.txt | 3 + SSA/Projects/InstCombine/tests/logs/xor.txt | 555 ++++ SSA/Projects/InstCombine/tests/logs/xor2.txt | 365 +++ .../tests/logs/zero-point-zero-add.txt | 9 + .../tests/logs/zeroext-and-reduce.txt | 3 + .../tests/logs/zext-bool-add-sub.txt | 170 ++ .../logs/zext-ctlz-trunc-to-ctlz-add.txt | 2 + .../InstCombine/tests/logs/zext-fold.txt | 5 + .../InstCombine/tests/logs/zext-or-icmp.txt | 0 .../InstCombine/tests/logs/zext-phi.txt | 7 + SSA/Projects/InstCombine/tests/logs/zext.txt | 333 +++ .../g2004h02h23hShiftShiftOverflow.lean | 77 + .../g2004h02h23hShiftShiftOverflow_proof.lean | 10 + .../proofs/g2004h11h22hMissedhandhfold.lean | 47 + .../g2004h11h22hMissedhandhfold_proof.lean | 8 + .../proofs/g2008h02h16hSDivOverflow2.lean | 4 +- .../tests/proofs/g2008h02h23hMulSub.lean | 4 +- .../tests/proofs/g2008h05h31hAddBool.lean | 4 +- .../tests/proofs/g2008h05h31hBools.lean | 100 + .../tests/proofs/g2008h05h31hBools_proof.lean | 12 + .../tests/proofs/g2008h07h08hSubAnd.lean | 4 +- .../tests/proofs/g2008h07h09hSubAndError.lean | 4 +- .../tests/proofs/g2008h07h11hRemAnd.lean | 4 +- .../tests/proofs/g2010h11h23hDistributed.lean | 4 +- .../tests/proofs/gAddOverFlow.lean | 415 +++ .../tests/proofs/gAddOverFlow_proof.lean | 96 + .../InstCombine/tests/proofs/gadd2.lean | 68 +- .../InstCombine/tests/proofs/gadd4.lean | 10 +- .../InstCombine/tests/proofs/gadd_or_sub.lean | 18 +- .../InstCombine/tests/proofs/gaddhmask.lean | 8 +- .../tests/proofs/gaddhmaskhneg.lean | 126 + .../tests/proofs/gaddhmaskhneg_proof.lean | 20 + .../InstCombine/tests/proofs/gaddhshift.lean | 4 +- .../tests/proofs/gaddhshlhsdivhtohsrem.lean | 12 +- .../InstCombine/tests/proofs/gaddnegneg.lean | 4 +- .../proofs/gaddsubhconstanthfolding.lean | 645 +++++ .../gaddsubhconstanthfolding_proof.lean | 67 + .../InstCombine/tests/proofs/gand2.lean | 24 +- .../InstCombine/tests/proofs/gandhorhand.lean | 12 +- .../InstCombine/tests/proofs/gandhorhnot.lean | 44 +- .../tests/proofs/gandhxorhmerge.lean | 8 +- .../tests/proofs/gannotations.lean | 45 + .../tests/proofs/gannotations_proof.lean | 6 + .../InstCombine/tests/proofs/gapinthand.lean | 262 ++ .../tests/proofs/gapinthand_proof.lean | 24 + .../tests/proofs/gapinthandhorhand.lean | 12 +- .../tests/proofs/gapinthandhxorhmerge.lean | 6 +- .../InstCombine/tests/proofs/gapinthmul1.lean | 4 +- .../InstCombine/tests/proofs/gapinthmul2.lean | 4 +- .../InstCombine/tests/proofs/gapinthnot.lean | 4 +- .../InstCombine/tests/proofs/gapinthor.lean | 154 + .../tests/proofs/gapinthor_proof.lean | 23 + .../InstCombine/tests/proofs/gapinthrem1.lean | 78 + .../tests/proofs/gapinthrem1_proof.lean | 10 + .../InstCombine/tests/proofs/gapinthrem2.lean | 78 + .../tests/proofs/gapinthrem2_proof.lean | 13 + .../tests/proofs/gapinthshift.lean | 534 ++++ .../tests/proofs/gapinthshift_proof.lean | 29 + .../tests/proofs/gapinthshifthsimplify.lean | 8 +- .../InstCombine/tests/proofs/gapinthsub.lean | 451 +++ .../tests/proofs/gapinthsub_proof.lean | 22 + .../InstCombine/tests/proofs/gapinthxor1.lean | 237 ++ .../tests/proofs/gapinthxor1_proof.lean | 18 + .../InstCombine/tests/proofs/gapinthxor2.lean | 237 ++ .../tests/proofs/gapinthxor2_proof.lean | 29 + .../tests/proofs/gashrhdemand.lean | 49 + .../tests/proofs/gashrhdemand_proof.lean | 9 + .../InstCombine/tests/proofs/gashrhlshr.lean | 32 +- .../InstCombine/tests/proofs/gavghlsb.lean | 4 +- .../tests/proofs/gbinophandhshifts.lean | 1058 +++++++ .../tests/proofs/gbinophandhshifts_proof.lean | 121 + .../proofs/gbinophofhdisplacedhshifts.lean | 28 +- .../gcanonicalizehashrhshlhtohmasking.lean | 66 +- .../gcanonicalizehlshrhshlhtohmasking.lean | 1050 +++++++ ...anonicalizehlshrhshlhtohmasking_proof.lean | 138 + .../gcanonicalizehshlhlshrhtohmasking.lean | 341 +++ ...anonicalizehshlhlshrhtohmasking_proof.lean | 37 + .../InstCombine/tests/proofs/gdistribute.lean | 14 +- .../InstCombine/tests/proofs/gdivhshift.lean | 20 +- .../proofs/gearly_constfold_changes_IR.lean | 47 + .../gearly_constfold_changes_IR_proof.lean | 6 + .../InstCombine/tests/proofs/gexact.lean | 12 +- ...ofhaddhofhnothxhandhyhtohsubhxhfromhy.lean | 84 + ...hofhnothxhandhyhtohsubhxhfromhy_proof.lean | 10 + .../gfoldhsubhofhnothtohinchofhadd.lean | 47 + .../gfoldhsubhofhnothtohinchofhadd_proof.lean | 8 + .../tests/proofs/gfreehinversion.lean | 50 + .../tests/proofs/gfreehinversion_proof.lean | 8 + ...gethlowbitmaskhuptohandhincludinghbit.lean | 10 +- .../tests/proofs/ghighhbithsignmask.lean | 12 +- ...oisthnegationhouthofhbiashcalculation.lean | 6 +- ...outhofhbiashcalculationhwithhconstant.lean | 6 +- .../proofs/ghoisthnothfromhashrhoperand.lean | 6 +- ...isthxorhbyhconstanthfromhxorhbyhvalue.lean | 47 + ...rhbyhconstanthfromhxorhbyhvalue_proof.lean | 8 + .../InstCombine/tests/proofs/gicmphmul.lean | 49 + .../tests/proofs/gicmphmul_proof.lean | 8 + .../tests/proofs/gicmphmulhand.lean | 85 + .../tests/proofs/gicmphmulhand_proof.lean | 17 + ...hvariablehmaskhinhmaskedhmergehscalar.lean | 370 +++ ...blehmaskhinhmaskedhmergehscalar_proof.lean | 30 + .../tests/proofs/glowhbithsplat.lean | 6 +- .../InstCombine/tests/proofs/glshr.lean | 46 +- .../tests/proofs/gmaskedhmergehadd.lean | 20 +- .../proofs/gmaskedhmergehandhofhors.lean | 159 ++ .../gmaskedhmergehandhofhors_proof.lean | 18 + .../tests/proofs/gmaskedhmergehor.lean | 233 ++ .../tests/proofs/gmaskedhmergehor_proof.lean | 23 + .../tests/proofs/gmaskedhmergehxor.lean | 344 +++ .../tests/proofs/gmaskedhmergehxor_proof.lean | 32 + .../InstCombine/tests/proofs/gmisch2002.lean | 4 +- .../InstCombine/tests/proofs/gmulhpow2.lean | 6 +- .../tests/proofs/gnegatedhbitmask.lean | 128 + .../tests/proofs/gnegatedhbitmask_proof.lean | 19 + .../InstCombine/tests/proofs/gnot.lean | 280 ++ .../InstCombine/tests/proofs/gnot_proof.lean | 31 + .../InstCombine/tests/proofs/gnothadd.lean | 12 +- .../InstCombine/tests/proofs/gorhxor.lean | 2499 +++++++++++++++++ .../tests/proofs/gorhxor_proof.lean | 197 ++ .../InstCombine/tests/proofs/gpr14365.lean | 90 + .../tests/proofs/gpr14365_proof.lean | 30 + .../InstCombine/tests/proofs/gpr53357.lean | 190 ++ .../tests/proofs/gpr53357_proof.lean | 21 + .../tests/proofs/gpreservedhanalyses.lean | 4 +- .../proofs/gpullhbinophthroughhshift.lean | 714 +++++ .../gpullhbinophthroughhshift_proof.lean | 42 + .../tests/proofs/greassociatehnuw.lean | 34 +- .../gredundanthrighthshifthinputhmasking.lean | 8 +- .../InstCombine/tests/proofs/grem.lean | 503 ++++ .../InstCombine/tests/proofs/grem_proof.lean | 84 + .../InstCombine/tests/proofs/gsdivh1.lean | 47 + .../tests/proofs/gsdivh1_proof.lean | 6 + .../tests/proofs/gsdivhcanonicalize.lean | 6 +- .../gsdivhexacthbyhnegativehpowerhofhtwo.lean | 8 +- .../proofs/gsdivhexacthbyhpowerhofhtwo.lean | 12 +- .../gsethlowbitshmaskhcanonicalize.lean | 40 +- .../tests/proofs/gshifthaddhinseltpoison.lean | 6 +- .../tests/proofs/gshifthflags.lean | 8 +- .../tests/proofs/gshifthlogic.lean | 388 +++ .../tests/proofs/gshifthlogic_proof.lean | 39 + .../tests/proofs/gshifthshift.lean | 16 +- .../InstCombine/tests/proofs/gshifthsra.lean | 6 +- .../InstCombine/tests/proofs/gshlhbo.lean | 582 ++++ .../tests/proofs/gshlhbo_proof.lean | 60 + .../InstCombine/tests/proofs/gshlhdemand.lean | 18 +- .../InstCombine/tests/proofs/gshlhfactor.lean | 28 +- .../InstCombine/tests/proofs/gsignext.lean | 10 +- .../tests/proofs/gsremhcanonicalize.lean | 4 +- .../tests/proofs/gsubhandhorhneghxor.lean | 8 +- .../tests/proofs/gsubhfromhsub.lean | 427 +++ .../tests/proofs/gsubhfromhsub_proof.lean | 63 + .../InstCombine/tests/proofs/gsubhnot.lean | 146 + .../tests/proofs/gsubhnot_proof.lean | 14 + .../tests/proofs/gsubhofhnegatible.lean | 582 ++++ .../tests/proofs/gsubhofhnegatible_proof.lean | 42 + .../gsubhofhnegatiblehinseltpoison.lean | 549 ++++ .../gsubhofhnegatiblehinseltpoison_proof.lean | 40 + .../tests/proofs/gsubhorhandhxor.lean | 107 + .../tests/proofs/gsubhorhandhxor_proof.lean | 12 + .../InstCombine/tests/proofs/gsubhxor.lean | 10 +- .../tests/proofs/gsubhxorhorhneghand.lean | 8 +- ...dhmaskedhmergehwithhconsthmaskhscalar.lean | 22 +- .../InstCombine/tests/proofs/gxor2.lean | 78 +- .../InstCombine/tests/proofs/gxorhofhor.lean | 49 + .../tests/proofs/gxorhofhor_proof.lean | 8 + 1799 files changed, 140456 insertions(+), 1653 deletions(-) create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-05-26-CastMiscompile.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-05-27-ConstExprCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-06-05-BranchInvertInfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-07-21-ExternalConstant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-08-12-AllocaNonNull.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-09-09-VolatileLoadElim.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-10-29-CallSiteResolve.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2003-11-03-VarargsCallBug.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-01-13-InstCombineInvokePHI.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-02-23-ShiftShiftOverflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-03-13-InstCombineInfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-04-04-InstCombineReplaceAllUsesWith.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-05-07-UnsizedCastLoad.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-07-27-ConstantExprMul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-08-09-RemInfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-08-10-BoolSetCC.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-09-28-BadShiftAndSetCC.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-11-22-Missed-and-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-11-27-SetCCForCastLargerAndConstant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2004-12-08-RemInfiniteLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-03-04-ShiftOverflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-06-15-DivSelectCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-06-15-ShiftSetCCCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-06-16-RangeCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2005-07-07-DeadPHILoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-02-13-DemandedMiscompile.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-02-28-Crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-03-30-ExtractElement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-04-28-ShiftShiftLongLong.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-05-04-DemandedBitCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-09-15-CastToBool.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-10-19-SignedToUnsignedCastAndConst-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-10-20-mask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-10-26-VectorReassoc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-11-10-ashr-miscompile.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-01-BadFPVectorXform.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-05-fp-to-int-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-08-Phi-ICmp-Op-Fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-15-Range-Test.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-01-13-ExtCompareMiscompile.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-02-01-LoadSinkAlloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-02-07-PointerCast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-02-23-PhiFoldInfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-13-CompareMerge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-19-BadTruncChangePR1261.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-21-SignedRangeTest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-25-BadShiftMask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-25-DoubleShift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-03-26-BadShiftMask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-04-08-SingleEltVectorCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-05-10-icmp-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-05-14-Crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-05-18-CastFoldBug.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-06-06-AshrSignBit.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-08-02-InfiniteLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-09-10-AliasConstFold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-09-17-AliasConstFold2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-10-10-EliminateMemCpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-10-12-Crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-10-28-stacksave.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-10-31-RangeCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-10-31-StringCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-11-07-OpaqueAlignCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-11-15-CompareMiscomp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-11-25-CompatibleAttributes.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-12-10-ConstFoldCompare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-12-12-GEPScale.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-12-16-AsmNoUnwind.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-12-18-AddSelCmpSub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-06-BitCastAttributes.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-06-CastCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-06-VoidCast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-13-AndCmpCmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-14-VarArgTrampoline.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-02-13-MulURem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-02-16-SDivOverflow2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-02-23-MulSub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-03-13-IntToPtr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-04-22-ByValBitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-04-28-VolatileStore.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadDontMerge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadMerge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-08-LiveStoreDelete.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-08-StrLenSink.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-09-SinkOfInvoke.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-17-InfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-18-FoldIntToPtr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-23-CompareFold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-31-AddBool.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-05-ashr-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-08-ICmpPHI.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-13-InfiniteLoopStore.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-13-ReadOnlyCallStore.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-21-CompareMiscomp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-06-24-StackRestore.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-08-ShiftOneAndOne.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-08-SubAnd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-08-VolatileLoadMerge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-09-SubAndError.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-10-CastSextBool.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-07-16-fsub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-08-05-And.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-09-02-VectorCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-10-11-DivCompareFold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-10-23-ConstFoldWithoutMask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-11-01-SRemDemandedBits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-11-08-FCmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-08-AlignAlloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-16-PointerAddrSpace.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float-specials.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-24-EmptyStruct.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-01-31-InfIterate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-02-04-FPBitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-02-11-NotInitialized.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-02-20-InstCombine-SROA.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-02-21-LoadCST.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-02-25-CrashZeroSizeArray.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-03-18-vector-ashr-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-03-24-InfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-04-07-MulPromoteToI96.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-05-23-FCmpToICmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-06-11-StoreAddrSpace.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-06-16-SRemDemandedBits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-07-02-MaskedIntVector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-01-28-NegativeSRem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-05-30-memcpy-Struct.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-11-01-lshr-mask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-11-21-SizeZeroTypeGEP.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2010-11-23-Distributed.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-03-08-SRemMinusOneBadOpt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-05-13-InBoundsGEP.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-05-28-swapmulsub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-06-13-nsw-alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-09-03-Trampoline.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2011-10-07-AlignPromotion.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-01-11-OpaqueBitcastCrash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-02-13-FCmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-02-28-ICmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-03-10-InstCombine.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-04-30-SRem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-05-28-select-hang.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-06-06-LoadOfPHIs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-07-25-LoadPart.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-07-30-addrsp-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-09-17-ZeroSizedAlloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-10-25-vector-of-pointers.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-12-14-simp-vgep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-3-15-or-xor-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2012-6-7-vselect-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2013-03-05-Combine-BitcastTy-Into-Alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/2023-07-13-arm-infiniteloop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/AArch64 create mode 100644 SSA/Projects/InstCombine/tests/logs/AMDGPU create mode 100644 SSA/Projects/InstCombine/tests/logs/ARM create mode 100644 SSA/Projects/InstCombine/tests/logs/AddOverFlow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/CPP_min_max.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ExtractCast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/Hexagon create mode 100644 SSA/Projects/InstCombine/tests/logs/InferAlignAttribute.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/IntPtrCast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/JavaCompare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/LandingPadClauses.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/NVPTX create mode 100644 SSA/Projects/InstCombine/tests/logs/OverlappingInsertvalues.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/PR30597.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/PR37526.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/PowerPC create mode 100644 SSA/Projects/InstCombine/tests/logs/README.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/RISCV create mode 100644 SSA/Projects/InstCombine/tests/logs/StoreToNull-DbgCheck.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/SystemZ create mode 100644 SSA/Projects/InstCombine/tests/logs/X86 create mode 100644 SSA/Projects/InstCombine/tests/logs/abs-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/abs_abs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-mask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-min-max.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add-sitofp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/add_or_sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/addnegneg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/addrspacecast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/aggregate-reconstruction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alias-recursion.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/align-addr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/align-attr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/align-external.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/all-bits-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloc-realloc-free.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloca-big.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloca-cast-debuginfo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloca-in-non-alloca-as.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloca-intptr-not-sizet.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/allocsize-32.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/allocsize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/allow-checks.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-add-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-compare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-fcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-narrow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-icmp-const-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-xor-merge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and-xor-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/and2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/annotation-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/annotations.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-and-compare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-and-or-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-and-xor-merge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-call-cast-target.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-cast-and-cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-cast-cast-to-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-div1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-div2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-mul1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-mul2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-rem1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-rem2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-shift-simplify.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-shl-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-xor1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/apint-xor2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/array.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ashr-demand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ashr-icmp-minmax-idiom-break.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ashr-or-mul-abs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assoc-cast-assoc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-align.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-loop-align.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-redundant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume-separate_storage.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/assume_inevitable.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/atomic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/atomicrmw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/avg-lsb.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/badmalloc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bcmp-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bcopy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-itofp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-phi-operands.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/binop-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bit-checks.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bit_ceil.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bit_floor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-bfloat-half-mixing.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-bigendian.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-function.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-inselt-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-phi-uselistorder.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-sext-vector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-store.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitreverse-hang.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitreverse-known-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitreverse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bittest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bitwiselogic-bitmanip.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/branch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/broadcast-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/broadcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bswap-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bswap-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bswap-known-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/bswap.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/builtin-dynamic-object-size.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/builtin-object-size-custom-dl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/builtin-object-size-offset.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/builtin-object-size-ptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/builtin-object-size-strdup-family.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/byval.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cabs-array.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cabs-discrete.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-callconv-mismatch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-callconv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-cast-attrs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-cast-target-inalloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-cast-target-preallocated.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-cast-target.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-guard.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-returned.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call-undef.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/call_nonnull_arg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/calloc-mismatch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/callsite_nonnull_args_through_casts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-with-select-of-constant-threshold-pattern.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-uge-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-fcmp-inf.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-gep-constglob.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-gep-mul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-lack-of-signed-truncation-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-eq-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-eq-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-or-with-overflow-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-signed-truncation-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-vector-extract.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize-vector-insert.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/canonicalize_branch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-byval.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-call-combine-prof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-call-combine.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-int-fcmp-eq-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-int-icmp-eq-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-set-preserve-signed-dbg-val.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-set.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast-unsigned-icmp-eqcmp-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast_phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cast_ptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/catchswitch-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ceil.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cmp-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cmp-x-vs-neg-x.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/combine-is.fpclass-and-fcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/commutative-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/commutative-operation-over-phis.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/commutative-operation-over-selects.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/compare-3way.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/compare-alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/compare-signs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/compare-udiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/compare-unescaped.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/conditional-negation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/consecutive-fences.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/consecutive-ptrmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-expr-datalayout.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-address-space-pointer.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-alias.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-compare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-iteration.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-libfunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constant-fold-shifts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/constrained.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/convergent.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/copysign-fneg-fabs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/copysign.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cos-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cos-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cos-sin-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/create-class-from-logic-fcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctlz-cttz-bitreverse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctpop-bswap-bitreverse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctpop-cttz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ctpop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cttz-abs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cttz-negative.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/cttz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/dbg-scalable-store-fixed-frag.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/dbg-simplify-alloca-size.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/dce-iterate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/deadcode.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debug-line.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-dce.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-dce2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-scalable-typesize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-sink.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-skip.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/debuginfo_add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/default-alignment.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/demand_shrink_nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/demorgan-sink-not-into-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/demorgan.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/dependent-ivs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/disable-builtin.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/distribute.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-shift-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/div.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/dont-distribute-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/double-float-shrink-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/double-float-shrink-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/early_constfold_changes_IR.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/early_dce_clobbers_callgraph.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/element-atomic-memintrins.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/enforce-known-alignment.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/eq-of-parts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/erase-dbg-values-at-dead-alloc-site.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/err-rep-cold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/exact.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/exp2-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/exp2-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/exp2-to-ldexp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/extractelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/extractinsert-tbaa.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/extractvalue.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fabs-as-int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fabs-copysign.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fabs-libcall.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fabs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fadd-fsub-factor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fadd-maximum-minimum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fadd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fast-basictest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fast-math.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fcmp-denormals-are-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fcmp-range-check-idiom.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fcmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fcmp-special.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fdim.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fdiv-cos-sin.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fdiv-sin-cos.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fdiv-sqrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fdiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ffs-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ffs-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/float-shrink-compare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fls-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fls.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fma.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmod.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-bool.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-exp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-exp2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-maximum-minimum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-pow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul-sqrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fmul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fneg-as-int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fneg-fabs-as-int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fneg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-a-or-b-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-add-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-bin-operand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-calls.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-log2-ceil-idiom.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-phi-load-metadata.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-select-fmul-if-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-signbit-test-power2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-sqrt-sqrtf.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-vector-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-vector-zero-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fold-vector-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/force-opaque-ptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fortify-folding.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fp-ret-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fpcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fpclass-check-idioms.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fpclass-from-dom-cond.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fpextend.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fpextend_x86.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fprintf-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fprintf-wrong-sig.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fptrunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fputs-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fputs-opt-size.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/free-inversion.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/freeze-fp-ops.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/freeze-integer-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/freeze-landingpad.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/freeze-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/freeze.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fsh.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fsub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/funnel.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/fwrite-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gapinthadd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gc.relocate-verify.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gc.relocate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdemorgan.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdivhi1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-addrspace.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-alias.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-can-replace-gep-idx-with-zero-typesize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-canonicalize-constant-indices.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-combine-loop-invariant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-custom-dl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-inbounds-null.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-merge-constant-indices.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-object-size-less-than-or-equal-typesize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-sext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-vector-indices.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gep-vector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gepgep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gepofconstgepi8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gepphigep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/getelementptr-folding.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/getelementptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gmul_fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthadd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshlhsub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gxor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/high-bit-signmask-with-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/hoist_instr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-abs.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-and-add-sub-xor-p2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-and-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-binop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-constant-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-custom-dl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-dom.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-equality-rotate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-equality-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-fold-into-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-fsh.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-inttoptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-logical.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-mul-zext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-mul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ne-pow2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-of-trunc-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-of-xor-x.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-power2-and-icmp-shifted-mask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-range.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-rotate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shl-1-overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shl-nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shl-nuw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shr-lt-gt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-shr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-signmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-topbitssame.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-uadd-sat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-uge-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-usub-sat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-vec.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-vscale.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/icmp_sdiv_with_and_without_range.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/idioms.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/implies.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/inbounds-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/indexed-gep-compares.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/infinite-loop-postdom.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/inline-intrinsic-assert.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/inselt-binop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-const-shuf-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-const-shuf.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insert-val-extract-elem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insertelement-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insertelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/insertelt-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/instcombine-verify-known-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/int_sideeffect.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intersect-accessgroup.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr7.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intptr8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/invariant.group.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/invariant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-scalar.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/invoke.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/is_fpclass.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/isascii-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/isascii-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/isdigit-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/isdigit-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ispow2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/kcfi-operand-bundles.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-never-nan.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-non-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-phi-br.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-phi-recurse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known-signbit-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/known_align.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ldexp-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ldexp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lib-call-exit.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lifetime-no-null-opt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lifetime-sanitizer.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lifetime.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-bitcast-vec.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-bitcast32.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-bitcast64.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-combine-metadata-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-combine-metadata-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-combine-metadata-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-combine-metadata-dominance.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-combine-metadata.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-gep-overalign.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-no-aliasing.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-store-forward.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load-store-masked-constant-array.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/load_combine_aa.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/loadstore-alignment.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/loadstore-metadata.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/log-pow-nofastmath.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/log-pow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/log-to-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/logb.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/logical-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lower-dbg-declare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr-and-negC-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr-and-signbit-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr-ashr-of-uscmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr-trunc-sext-to-ashr-sext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/lshr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/malloc-free-addrspace.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/malloc-free-delete-dbginvar.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/malloc-free-mismatched.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/malloc-free.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/malloc_free_delete_nvptx.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked_intrinsics-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked_intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/masked_intrinsics_keep_metadata.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/math-odd-even-parity.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/matrix-multiplication-negation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/max-of-nots.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/max_known_bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/maximum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/maxnum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mem-deref-bytes-addrspaces.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mem-deref-bytes.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mem-gep-zidx.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mem-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mem-par-metadata-memcpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memccpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-10.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-11.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-7.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr-9.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memchr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-7.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcmp-constant-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy-addrspace.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy-from-global.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy-to-load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy_alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memcpy_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memmove-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memmove-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memmove.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memmove_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memmove_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mempcpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-7.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr-8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memrchr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/memset_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/merge-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/merging-multiple-stores-into-successor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/min-positive.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minimum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-fp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-of-minmax.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/minnum.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/misc-2002.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/modulo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul-masked-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul-min-max.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul-pow2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul_fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul_full_32.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/mul_full_64.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/multi-size-address-space-pointer.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/multi-use-load-casts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/multi-use-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/musttail-thunk.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nan.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nanl-fp128.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nanl-fp80.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nanl-ppc-fp128.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/narrow-math.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/narrow-switch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/narrow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/neg-alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nested-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/new-delete-itanium-32.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/new-delete-itanium.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/new-delete-msvc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/new-inst-dbgloc-overwrite.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/no-negzero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/no-unwind-inline-asm.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/no_cgscc_assert.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/no_sink_instruction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/noalias-scope-decl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/non-integral-pointers.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nonnull-attribute.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nonnull-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/not-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nothrow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nsw-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/obfuscated_splat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/object-size-opaque.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/objsize-64.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/objsize-address-space.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/objsize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/odr-linkage.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/onehot_merge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/opaque-ptr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/opaque.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/operand-complexity.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/opts-tuples-extract-intrinsic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or-concat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or-fcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or-shifted-masks.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/oss_fuzz_32759.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/osx-names.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/out-of-bounds-indexes.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/out-of-tree-allocator-optimizes-away.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/overflow-mul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-a.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-b.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-c.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-d.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-e.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-a.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-b.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-c.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-d.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-e.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-aware-aggregate-reconstruction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-cse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-extractvalue.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-int-users.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-int2ptr-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-known-bits-operand-order.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-load-metadata-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-load-metadata-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-load-metadata-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-load-metadata-dominance.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-load-metadata.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-merge-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-of-insertvalues.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-pointercasts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-preserve-ir-flags.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-shifts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-timeout.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi-with-multiple-unsimplifiable-values.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-cbrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-exp-nofastmath.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-exp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-to-ldexp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow-to-sqrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow_fp_int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pow_fp_int16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/powi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr100298.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr12251.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr12338.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr14365.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr17827.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr20678.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr21199.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr21210.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr21651.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr21891.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr23751.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr23809.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr24354.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr24605.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr25342.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr25745.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr2645-0-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr2645-0.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr26992.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr26993.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr27236.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr27332.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr27343.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr27703.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr27996.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr28143.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr28725.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr2996.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr30929.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr31990_wrong_memcpy.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr32686.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr33453.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr33689_same_bitwidth.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr34349.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr34627.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr35515.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr36362.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr38677.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr38897.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr38915.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr38984.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr39177.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr39908.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr41164.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr43081.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr43376-getFlippedStrictnessPredicateAndConstant-assert.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr43893.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr44242.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr44245.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr44541.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr44552.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr44835.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr46680.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr49688.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr51824.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr53357.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr55228.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr56424.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr58901.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr59613.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr63791.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr69059.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr71330.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr72433.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr75129.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr75369.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr77064.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr80597.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr80941.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr82877.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr83931.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr83947.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr98139.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pr98435.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/prefetch-load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/preserve-sminmax.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/preserved-analyses.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/printf-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/printf-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/printf-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/printf-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptr-int-cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptr-int-ptr-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptrauth-intrinsics.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptrmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ptrtoint-nullgep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pull-binop-through-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/puts-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/puts-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/range-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/readnone-maythrow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/realloc-free.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/realloc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reassociate-nuw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/recurrence.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-add-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-and-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-mul-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-or-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-shufflevector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-smax-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-smin-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-umax-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-umin-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reduction-xor-sext-zext-i1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-a.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-b.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-c.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-d.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-e.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-f.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-pr49778.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-a.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-b.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-c.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-d.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-e.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-f.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/rem-mul-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/rem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/remove-loop-phi-multiply-by-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/remquo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/remquol-fp128.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/remquol-fp80.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/remquol-ppc-fp128.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-is-non-zero-and-no-underflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-or-zero-is-non-zero-and-no-underflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/result-of-usub-is-non-zero-and-no-overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/rotate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sadd-with-overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sadd_sat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/saddo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/salvage-dbg-declare.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-bitcast-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-cast-of-alloc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-const-fp-splat.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-vector-array.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalable-vector-struct.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalarization-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scalarization.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/scmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-guard.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sdiv-of-non-negative-by-negative-power-of-two.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-and-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-binop-foldable-floating-point.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-bitext-bitwise-ops.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-bitext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-cmp-br.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-cmpxchg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-divrem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-extractelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-factorize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-load-call.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-masked_gather.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-masked_load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-min-max.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-pr39595.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/select_meta.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/set.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/setcc-strength-reduce.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sext-a-lt-b-plus-zext-a-gt-b-to-uscmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sext-of-trunc-nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-add-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-ashr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-lshr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-by-signext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-cttz-ctlz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-direction-in-bit-test.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-flags.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-logic.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift-sra.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-and-negC-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-and-signbit-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-bo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-demand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-factor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shl-unsigned-cmp-const.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/should-change-type.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-binop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-cast-dist.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-cast-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shuffle_select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevec-constant.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/shufflevector_freezepoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sign-bit-test-via-right-shifting-all-other-bits.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signbit-lshr-and-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signbit-shl-and-icmpeq-zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signed-comparison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signed-mul-lack-of-overflow-check-via-mul-sdiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signed-mul-overflow-check-via-mul-sdiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/signmask-of-sext-vs-of-shl-of-zext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simple_phi_condition.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-demanded-bits-pointer.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-demanded-fpclass.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-libcalls-erased.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-libcalls-inreg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-libcalls-new.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sincospi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-instruction-introduces-unnecessary-poison-value.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-into-catchswitch.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-into-ncd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-into-resume-block.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink_instruction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink_sideeffecting_instruction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sink_to_unreachable.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sitofp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/skip-opt-void-to-non-void-conversion.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/smax-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/smin-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/smulo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/snprintf-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/snprintf-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/snprintf-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/snprintf.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sprintf-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sprintf-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sprintf-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sprintf-void.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sqrt-nofast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sqrt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/srem-simplify-bug.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/srem-via-sdiv-mul-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/srem1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ssub-with-overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ssubo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stack-overalign.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stacksave-debuginfo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stacksaverestore.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/statepoint-cleanup.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/statepoint-iter.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/statepoint.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stdio-custom-dl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stdiocall-bad-sig.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/store-load-unaliased-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/store.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/storemerge-dbg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stpcpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stpcpy-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stpcpy_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stpcpy_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/stpncpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/str-int-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/str-int-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/str-int-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/str-int-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/str-int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcall-bad-sig.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcall-no-nul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcat-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcat-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcat-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strchr-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strchr-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strchr-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strchr-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcmp-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcmp-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcmp-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcmp-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcmp-memcmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy-nonzero-as.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcpy_chk-64.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcspn-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strcspn-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strict-sub-underflow-check-to-comparison-of-sub-operands.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlcpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-7.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-8.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen-9.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strlen_chk.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncat-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncat-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncat-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncmp-wrong-datalayout.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy_chk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strncpy_chk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strndup.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strnlen-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strpbrk-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strpbrk-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strrchr-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strrchr-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strrchr-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strspn-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strstr-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strstr-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/strto-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-new.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-from-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-lshr-or-to-icmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-minmax.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-not.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/swifterror-argument-bitcast-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-constant-expr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-shl.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-truncate-crash.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/switch-zext-sext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/tbaa-store-to-load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/threadlocal_address.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/toascii-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/token.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trig.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trivial-dse-calls.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-binop-ext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-demand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-extractelement-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-extractelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-fp-to-int.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-shift-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc-shl-zext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/type_pun-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/type_pun.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/uadd-with-overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/uaddo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/uaddo2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/ucmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/udiv-simplify.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umax-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umin-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umin_cttz_ctlz.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umul-sign-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umulo-square.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/umulo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unavailable-debug.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-scalar.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unordered-compare-and-ordered.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unpack-fca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unreachable-code.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unreachable-dbg-info-modified.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unrecognized_three-way-comparison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-sub-lack-of-overflow-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned-sub-overflow-check.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unused-nonnull.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/unwind-inline-asm.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/update-bpi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/urem-simplify-bug.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/usubo.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vararg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/variable-signext-of-variable-high-bit-extraction.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec-binop-select-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec-binop-select.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_demanded_elts-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_demanded_elts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_extract_2elts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_phi_extract-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_phi_extract.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_sext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_shuffle-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_shuffle.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-casts.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-logical-reductions.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-mul.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-reductions.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-reverse.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-type.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-udiv.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-urem.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector-xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector_gep1-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector_gep1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector_gep2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/volatile_load_cast.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/volatile_store.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_alloca.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_cmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_extractelement-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_extractelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_gep.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_insertelement-inseltpoison.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_insertelement.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_load.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_sext_and_zext.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_trunc.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/vscale_zero.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-3.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-4.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-5.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/wcslen-6.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/weak-symbols.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/widenable-conditions.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/win-fdim.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/win-math.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/with_overflow.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-and-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-ashr.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-icmps.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-of-or.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor-undef.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/xor2.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zero-point-zero-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zeroext-and-reduce.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext-ctlz-trunc-to-ctlz-add.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext-fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext-or-icmp.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext-phi.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/zext.txt create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gAddOverFlow.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gAddOverFlow_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gannotations.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthsub.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthsub_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthxor1.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthxor1_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthxor2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthxor2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gashrhdemand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gashrhdemand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmulhand.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gicmphmulhand_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnot.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gorhxor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gorhxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpr14365.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpr14365_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpr53357.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpr53357_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/grem.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/grem_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivh1.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsdivh1_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthlogic.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshifthlogic_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhbo.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gshlhbo_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhnot.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhnot_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gxorhofhor.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gxorhofhor_proof.lean diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean index e9fe170e3..60cd574f9 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2004h02h23hShiftShiftOverflow.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2004h02h23hShiftShiftOverflow_statements - + def test_before := [llvm| { ^0(%arg1 : i32): @@ -37,7 +37,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test all_goals (try extract_goal ; sorry) @@ -68,7 +68,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean index 67097da3e..23a7e3e08 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2004h11h22hMissedhandhfold.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2004h11h22hMissedhandhfold_statements - + def test21_before := [llvm| { ^0(%arg0 : i8): @@ -38,7 +38,7 @@ theorem test21_proof : test21_before ⊑ test21_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test21 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean index e45ca22a0..35bb9e15a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h16hSDivOverflow2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h02h16hSDivOverflow2_statements - + def i_before := [llvm| { ^0(%arg0 : i8): @@ -37,7 +37,7 @@ theorem i_proof : i_before ⊑ i_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN i all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean index a1fe12664..7a6a97a90 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h02h23hMulSub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h02h23hMulSub_statements - + def test_before := [llvm| { ^0(%arg0 : i26): @@ -37,7 +37,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean index 8299245fe..11d8d5ce8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hAddBool.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h05h31hAddBool_statements - + def test_before := [llvm| { ^0(%arg0 : i1, %arg1 : i1): @@ -34,7 +34,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean index 157cf995e..51d63f616 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h05h31hBools.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h05h31hBools_statements - + def foo1_before := [llvm| { ^0(%arg6 : i1, %arg7 : i1): @@ -34,7 +34,7 @@ theorem foo1_proof : foo1_before ⊑ foo1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo1 all_goals (try extract_goal ; sorry) @@ -63,7 +63,7 @@ theorem foo2_proof : foo2_before ⊑ foo2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo2 all_goals (try extract_goal ; sorry) @@ -91,7 +91,7 @@ theorem foo4_proof : foo4_before ⊑ foo4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo4 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean index 20045847f..aeaedb62c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h08hSubAnd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h08hSubAnd_statements - + def a_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN a all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean index 7822bb718..f0f34d073 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h09hSubAndError.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h09hSubAndError_statements - + def foo_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean index c206948de..752498d11 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2008h07h11hRemAnd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h11hRemAnd_statements - + def a_before := [llvm| { ^0(%arg1 : i32): @@ -38,7 +38,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN a all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean index fd336194a..0260e41dd 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h01hlshrhmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2010h11h01hlshrhmask_statements - + def foo_before := [llvm| { ^0(%arg0 : i8, %arg1 : i8): @@ -69,7 +69,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean index 7808cb86c..a9c7eec5f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/g2010h11h23hDistributed.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2010h11h23hDistributed_statements - + def foo_before := [llvm| { ^0(%arg2 : i32, %arg3 : i32): @@ -37,7 +37,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean b/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean index 3846be929..82370c560 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gAddOverFlow.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gAddOverFlow_statements - + def oppositesign_before := [llvm| { ^0(%arg32 : i16, %arg33 : i16): @@ -42,7 +42,7 @@ theorem oppositesign_proof : oppositesign_before ⊑ oppositesign_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN oppositesign all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem zero_sign_bit_proof : zero_sign_bit_before ⊑ zero_sign_bit_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN zero_sign_bit all_goals (try extract_goal ; sorry) @@ -112,7 +112,7 @@ theorem zero_sign_bit2_proof : zero_sign_bit2_before ⊑ zero_sign_bit2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN zero_sign_bit2 all_goals (try extract_goal ; sorry) @@ -149,7 +149,7 @@ theorem ripple_nsw1_proof : ripple_nsw1_before ⊑ ripple_nsw1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw1 all_goals (try extract_goal ; sorry) @@ -186,7 +186,7 @@ theorem ripple_nsw2_proof : ripple_nsw2_before ⊑ ripple_nsw2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw2 all_goals (try extract_goal ; sorry) @@ -223,7 +223,7 @@ theorem ripple_nsw3_proof : ripple_nsw3_before ⊑ ripple_nsw3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw3 all_goals (try extract_goal ; sorry) @@ -260,7 +260,7 @@ theorem ripple_nsw4_proof : ripple_nsw4_before ⊑ ripple_nsw4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw4 all_goals (try extract_goal ; sorry) @@ -297,7 +297,7 @@ theorem ripple_nsw5_proof : ripple_nsw5_before ⊑ ripple_nsw5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw5 all_goals (try extract_goal ; sorry) @@ -334,7 +334,7 @@ theorem ripple_nsw6_proof : ripple_nsw6_before ⊑ ripple_nsw6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_nsw6 all_goals (try extract_goal ; sorry) @@ -371,7 +371,7 @@ theorem ripple_no_nsw2_proof : ripple_no_nsw2_before ⊑ ripple_no_nsw2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ripple_no_nsw2 all_goals (try extract_goal ; sorry) @@ -406,7 +406,7 @@ theorem PR38021_proof : PR38021_before ⊑ PR38021_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR38021 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean index b2b737c76..546d638d1 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd2_statements - + def test2_before := [llvm| { ^0(%arg59 : i32): @@ -39,7 +39,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -76,7 +76,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -106,7 +106,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -140,7 +140,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -181,7 +181,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -218,7 +218,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -255,7 +255,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -292,7 +292,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -329,7 +329,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 all_goals (try extract_goal ; sorry) @@ -365,7 +365,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 all_goals (try extract_goal ; sorry) @@ -401,7 +401,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 all_goals (try extract_goal ; sorry) @@ -436,7 +436,7 @@ theorem test17_proof : test17_before ⊑ test17_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test17 all_goals (try extract_goal ; sorry) @@ -472,7 +472,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test18 all_goals (try extract_goal ; sorry) @@ -503,7 +503,7 @@ theorem add_nsw_mul_nsw_proof : add_nsw_mul_nsw_before ⊑ add_nsw_mul_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_mul_nsw all_goals (try extract_goal ; sorry) @@ -535,7 +535,7 @@ theorem mul_add_to_mul_1_proof : mul_add_to_mul_1_before ⊑ mul_add_to_mul_1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_1 all_goals (try extract_goal ; sorry) @@ -567,7 +567,7 @@ theorem mul_add_to_mul_2_proof : mul_add_to_mul_2_before ⊑ mul_add_to_mul_2_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_2 all_goals (try extract_goal ; sorry) @@ -601,7 +601,7 @@ theorem mul_add_to_mul_3_proof : mul_add_to_mul_3_before ⊑ mul_add_to_mul_3_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_3 all_goals (try extract_goal ; sorry) @@ -635,7 +635,7 @@ theorem mul_add_to_mul_4_proof : mul_add_to_mul_4_before ⊑ mul_add_to_mul_4_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_4 all_goals (try extract_goal ; sorry) @@ -669,7 +669,7 @@ theorem mul_add_to_mul_5_proof : mul_add_to_mul_5_before ⊑ mul_add_to_mul_5_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_5 all_goals (try extract_goal ; sorry) @@ -703,7 +703,7 @@ theorem mul_add_to_mul_6_proof : mul_add_to_mul_6_before ⊑ mul_add_to_mul_6_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_6 all_goals (try extract_goal ; sorry) @@ -735,7 +735,7 @@ theorem mul_add_to_mul_7_proof : mul_add_to_mul_7_before ⊑ mul_add_to_mul_7_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_7 all_goals (try extract_goal ; sorry) @@ -769,7 +769,7 @@ theorem mul_add_to_mul_8_proof : mul_add_to_mul_8_before ⊑ mul_add_to_mul_8_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_8 all_goals (try extract_goal ; sorry) @@ -802,7 +802,7 @@ theorem mul_add_to_mul_9_proof : mul_add_to_mul_9_before ⊑ mul_add_to_mul_9_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_9 all_goals (try extract_goal ; sorry) @@ -833,7 +833,7 @@ theorem add_or_and_proof : add_or_and_before ⊑ add_or_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_and all_goals (try extract_goal ; sorry) @@ -864,7 +864,7 @@ theorem add_or_and_commutative_proof : add_or_and_commutative_before ⊑ add_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_and_commutative all_goals (try extract_goal ; sorry) @@ -895,7 +895,7 @@ theorem add_and_or_proof : add_and_or_before ⊑ add_and_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_and_or all_goals (try extract_goal ; sorry) @@ -926,7 +926,7 @@ theorem add_and_or_commutative_proof : add_and_or_commutative_before ⊑ add_and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_and_or_commutative all_goals (try extract_goal ; sorry) @@ -957,7 +957,7 @@ theorem add_nsw_or_and_proof : add_nsw_or_and_before ⊑ add_nsw_or_and_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_or_and all_goals (try extract_goal ; sorry) @@ -988,7 +988,7 @@ theorem add_nuw_or_and_proof : add_nuw_or_and_before ⊑ add_nuw_or_and_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_or_and all_goals (try extract_goal ; sorry) @@ -1019,7 +1019,7 @@ theorem add_nuw_nsw_or_and_proof : add_nuw_nsw_or_and_before ⊑ add_nuw_nsw_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_nsw_or_and all_goals (try extract_goal ; sorry) @@ -1051,7 +1051,7 @@ theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_of_mul all_goals (try extract_goal ; sorry) @@ -1088,7 +1088,7 @@ theorem add_undemanded_low_bits_proof : add_undemanded_low_bits_before ⊑ add_u simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_undemanded_low_bits all_goals (try extract_goal ; sorry) @@ -1125,7 +1125,7 @@ theorem sub_undemanded_low_bits_proof : sub_undemanded_low_bits_before ⊑ sub_u simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_undemanded_low_bits all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean index 2ec4237c7..6a164eb3d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd4.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd4_statements - + def match_andAsRem_lshrAsDiv_shlAsMul_before := [llvm| { ^0(%arg16 : i64): @@ -42,7 +42,7 @@ theorem match_andAsRem_lshrAsDiv_shlAsMul_proof : match_andAsRem_lshrAsDiv_shlAs simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN match_andAsRem_lshrAsDiv_shlAsMul all_goals (try extract_goal ; sorry) @@ -84,7 +84,7 @@ theorem match_signed_proof : match_signed_before ⊑ match_signed_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN match_signed all_goals (try extract_goal ; sorry) @@ -125,7 +125,7 @@ theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_match_inconsistent_signs all_goals (try extract_goal ; sorry) @@ -163,7 +163,7 @@ theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN fold_add_sdiv_srem all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean b/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean index f7ca4a38b..e58b81349 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gadd_or_sub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd_or_sub_statements - + def add_or_sub_comb_i32_commuted1_nuw_before := [llvm| { ^0(%arg16 : i32): @@ -36,7 +36,7 @@ theorem add_or_sub_comb_i32_commuted1_nuw_proof : add_or_sub_comb_i32_commuted1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i32_commuted1_nuw all_goals (try extract_goal ; sorry) @@ -72,7 +72,7 @@ theorem add_or_sub_comb_i8_commuted2_nsw_proof : add_or_sub_comb_i8_commuted2_ns simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_commuted2_nsw all_goals (try extract_goal ; sorry) @@ -105,7 +105,7 @@ theorem add_or_sub_comb_i128_commuted3_nuw_nsw_proof : add_or_sub_comb_i128_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i128_commuted3_nuw_nsw all_goals (try extract_goal ; sorry) @@ -141,7 +141,7 @@ theorem add_or_sub_comb_i64_commuted4_proof : add_or_sub_comb_i64_commuted4_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i64_commuted4 all_goals (try extract_goal ; sorry) @@ -176,7 +176,7 @@ theorem add_or_sub_comb_i8_negative_y_sub_proof : add_or_sub_comb_i8_negative_y_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_sub all_goals (try extract_goal ; sorry) @@ -211,7 +211,7 @@ theorem add_or_sub_comb_i8_negative_y_or_proof : add_or_sub_comb_i8_negative_y_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_or all_goals (try extract_goal ; sorry) @@ -246,7 +246,7 @@ theorem add_or_sub_comb_i8_negative_y_add_proof : add_or_sub_comb_i8_negative_y_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_add all_goals (try extract_goal ; sorry) @@ -281,7 +281,7 @@ theorem add_or_sub_comb_i8_negative_xor_instead_or_proof : add_or_sub_comb_i8_ne simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_xor_instead_or all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean index 5fa2f6e58..8da9156c4 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhmask_statements - + def add_mask_ashr28_i32_before := [llvm| { ^0(%arg2 : i32): @@ -41,7 +41,7 @@ theorem add_mask_ashr28_i32_proof : add_mask_ashr28_i32_before ⊑ add_mask_ashr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr28_i32 all_goals (try extract_goal ; sorry) @@ -78,7 +78,7 @@ theorem add_mask_ashr28_non_pow2_i32_proof : add_mask_ashr28_non_pow2_i32_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr28_non_pow2_i32 all_goals (try extract_goal ; sorry) @@ -115,7 +115,7 @@ theorem add_mask_ashr27_i32_proof : add_mask_ashr27_i32_before ⊑ add_mask_ashr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr27_i32 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean index 3e202350c..4d8cc06de 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhmaskhneg.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhmaskhneg_statements - + def dec_mask_neg_i32_before := [llvm| { ^0(%arg7 : i32): @@ -41,7 +41,7 @@ theorem dec_mask_neg_i32_proof : dec_mask_neg_i32_before ⊑ dec_mask_neg_i32_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN dec_mask_neg_i32 all_goals (try extract_goal ; sorry) @@ -81,7 +81,7 @@ theorem dec_mask_commute_neg_i32_proof : dec_mask_commute_neg_i32_before ⊑ dec simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN dec_mask_commute_neg_i32 all_goals (try extract_goal ; sorry) @@ -117,7 +117,7 @@ theorem dec_commute_mask_neg_i32_proof : dec_commute_mask_neg_i32_before ⊑ dec simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN dec_commute_mask_neg_i32 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean index 4186a0193..095b42b5f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhshift_statements - + def flip_add_of_shift_neg_before := [llvm| { ^0(%arg12 : i8, %arg13 : i8, %arg14 : i8): @@ -38,7 +38,7 @@ theorem flip_add_of_shift_neg_proof : flip_add_of_shift_neg_before ⊑ flip_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN flip_add_of_shift_neg all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean index 63ccea26e..aed469704 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddhshlhsdivhtohsrem.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhshlhsdivhtohsrem_statements - + def addhshlhsdivhscalar0_before := [llvm| { ^0(%arg19 : i8): @@ -39,7 +39,7 @@ theorem addhshlhsdivhscalar0_proof : addhshlhsdivhscalar0_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar0 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem addhshlhsdivhscalar1_proof : addhshlhsdivhscalar1_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar1 all_goals (try extract_goal ; sorry) @@ -107,7 +107,7 @@ theorem addhshlhsdivhscalar2_proof : addhshlhsdivhscalar2_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar2 all_goals (try extract_goal ; sorry) @@ -144,7 +144,7 @@ theorem addhshlhsdivhnegative0_proof : addhshlhsdivhnegative0_before ⊑ addhshl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhnegative0 all_goals (try extract_goal ; sorry) @@ -178,7 +178,7 @@ theorem addhshlhsdivhnegative1_proof : addhshlhsdivhnegative1_before ⊑ addhshl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhnegative1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean index d5ff43ffa..017cf417e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddnegneg.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddnegneg_statements - + def l_before := [llvm| { ^0(%arg0 : i32, %arg1 : i32, %arg2 : i32, %arg3 : i32): @@ -39,7 +39,7 @@ theorem l_proof : l_before ⊑ l_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN l all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean b/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean index 458cf6800..6bf98c36d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gaddsubhconstanthfolding.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddsubhconstanthfolding_statements - + def add_const_add_const_before := [llvm| { ^0(%arg71 : i32): @@ -38,7 +38,7 @@ theorem add_const_add_const_proof : add_const_add_const_before ⊑ add_const_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_const_add_const all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem add_const_sub_const_proof : add_const_sub_const_before ⊑ add_const_sub simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_const_sub_const all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem add_const_const_sub_proof : add_const_const_sub_before ⊑ add_const_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_const_const_sub all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem add_nsw_const_const_sub_nsw_proof : add_nsw_const_const_sub_nsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_const_const_sub_nsw all_goals (try extract_goal ; sorry) @@ -170,7 +170,7 @@ theorem add_nsw_const_const_sub_proof : add_nsw_const_const_sub_before ⊑ add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_const_const_sub all_goals (try extract_goal ; sorry) @@ -203,7 +203,7 @@ theorem add_const_const_sub_nsw_proof : add_const_const_sub_nsw_before ⊑ add_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_const_const_sub_nsw all_goals (try extract_goal ; sorry) @@ -236,7 +236,7 @@ theorem add_nsw_const_const_sub_nsw_ov_proof : add_nsw_const_const_sub_nsw_ov_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_const_const_sub_nsw_ov all_goals (try extract_goal ; sorry) @@ -269,7 +269,7 @@ theorem add_nuw_const_const_sub_nuw_proof : add_nuw_const_const_sub_nuw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_const_const_sub_nuw all_goals (try extract_goal ; sorry) @@ -302,7 +302,7 @@ theorem add_nuw_const_const_sub_proof : add_nuw_const_const_sub_before ⊑ add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_const_const_sub all_goals (try extract_goal ; sorry) @@ -335,7 +335,7 @@ theorem add_const_const_sub_nuw_proof : add_const_const_sub_nuw_before ⊑ add_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_const_const_sub_nuw all_goals (try extract_goal ; sorry) @@ -368,7 +368,7 @@ theorem sub_const_add_const_proof : sub_const_add_const_before ⊑ sub_const_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_const_add_const all_goals (try extract_goal ; sorry) @@ -401,7 +401,7 @@ theorem sub_const_sub_const_proof : sub_const_sub_const_before ⊑ sub_const_sub simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_const_sub_const all_goals (try extract_goal ; sorry) @@ -434,7 +434,7 @@ theorem sub_const_const_sub_proof : sub_const_const_sub_before ⊑ sub_const_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_const_const_sub all_goals (try extract_goal ; sorry) @@ -467,7 +467,7 @@ theorem const_sub_add_const_proof : const_sub_add_const_before ⊑ const_sub_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN const_sub_add_const all_goals (try extract_goal ; sorry) @@ -500,7 +500,7 @@ theorem const_sub_sub_const_proof : const_sub_sub_const_before ⊑ const_sub_sub simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN const_sub_sub_const all_goals (try extract_goal ; sorry) @@ -533,7 +533,7 @@ theorem const_sub_const_sub_proof : const_sub_const_sub_before ⊑ const_sub_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN const_sub_const_sub all_goals (try extract_goal ; sorry) @@ -568,7 +568,7 @@ theorem addsub_combine_constants_proof : addsub_combine_constants_before ⊑ add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addsub_combine_constants all_goals (try extract_goal ; sorry) @@ -601,7 +601,7 @@ theorem sub_from_constant_proof : sub_from_constant_before ⊑ sub_from_constant simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_from_constant all_goals (try extract_goal ; sorry) @@ -636,7 +636,7 @@ theorem sub_from_constant_commute_proof : sub_from_constant_commute_before ⊑ s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_from_constant_commute all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand.lean b/SSA/Projects/InstCombine/tests/LLVM/gand.lean index f4559254c..24cdf4f7a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gand_statements - + def test_with_even_before := [llvm| { ^0(%arg313 : i32): @@ -37,7 +37,7 @@ theorem test_with_even_proof : test_with_even_before ⊑ test_with_even_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_with_even all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem test_with_neg_even_proof : test_with_neg_even_before ⊑ test_with_neg_e simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_with_neg_even all_goals (try extract_goal ; sorry) @@ -99,7 +99,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -128,7 +128,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -158,7 +158,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -187,7 +187,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -215,7 +215,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -243,7 +243,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -274,7 +274,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -306,7 +306,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -340,7 +340,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -372,7 +372,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 all_goals (try extract_goal ; sorry) @@ -404,7 +404,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 all_goals (try extract_goal ; sorry) @@ -437,7 +437,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19 all_goals (try extract_goal ; sorry) @@ -470,7 +470,7 @@ theorem test20_proof : test20_before ⊑ test20_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test20 all_goals (try extract_goal ; sorry) @@ -505,7 +505,7 @@ theorem test27_proof : test27_before ⊑ test27_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test27 all_goals (try extract_goal ; sorry) @@ -538,7 +538,7 @@ theorem ashr_lowmask_proof : ashr_lowmask_before ⊑ ashr_lowmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_lowmask all_goals (try extract_goal ; sorry) @@ -572,7 +572,7 @@ theorem test32_proof : test32_before ⊑ test32_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test32 all_goals (try extract_goal ; sorry) @@ -607,7 +607,7 @@ theorem test33_proof : test33_before ⊑ test33_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test33 all_goals (try extract_goal ; sorry) @@ -642,7 +642,7 @@ theorem test33b_proof : test33b_before ⊑ test33b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test33b all_goals (try extract_goal ; sorry) @@ -671,7 +671,7 @@ theorem test34_proof : test34_before ⊑ test34_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test34 all_goals (try extract_goal ; sorry) @@ -706,7 +706,7 @@ theorem test42_proof : test42_before ⊑ test42_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test42 all_goals (try extract_goal ; sorry) @@ -741,7 +741,7 @@ theorem test43_proof : test43_before ⊑ test43_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test43 all_goals (try extract_goal ; sorry) @@ -773,7 +773,7 @@ theorem test44_proof : test44_before ⊑ test44_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test44 all_goals (try extract_goal ; sorry) @@ -805,7 +805,7 @@ theorem test45_proof : test45_before ⊑ test45_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test45 all_goals (try extract_goal ; sorry) @@ -837,7 +837,7 @@ theorem test46_proof : test46_before ⊑ test46_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test46 all_goals (try extract_goal ; sorry) @@ -869,7 +869,7 @@ theorem test47_proof : test47_before ⊑ test47_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test47 all_goals (try extract_goal ; sorry) @@ -902,7 +902,7 @@ theorem lowmask_add_2_proof : lowmask_add_2_before ⊑ lowmask_add_2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lowmask_add_2 all_goals (try extract_goal ; sorry) @@ -935,7 +935,7 @@ theorem flip_masked_bit_proof : flip_masked_bit_before ⊑ flip_masked_bit_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN flip_masked_bit all_goals (try extract_goal ; sorry) @@ -972,7 +972,7 @@ theorem not_ashr_not_bitwidth_mask_proof : not_ashr_not_bitwidth_mask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_ashr_not_bitwidth_mask all_goals (try extract_goal ; sorry) @@ -1009,7 +1009,7 @@ theorem not_lshr_bitwidth_mask_proof : not_lshr_bitwidth_mask_before ⊑ not_lsh simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_lshr_bitwidth_mask all_goals (try extract_goal ; sorry) @@ -1043,7 +1043,7 @@ theorem shl_lshr_pow2_const_negative_overflow1_proof : shl_lshr_pow2_const_negat simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_pow2_const_negative_overflow1 all_goals (try extract_goal ; sorry) @@ -1077,7 +1077,7 @@ theorem shl_lshr_pow2_const_negative_overflow2_proof : shl_lshr_pow2_const_negat simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_pow2_const_negative_overflow2 all_goals (try extract_goal ; sorry) @@ -1114,7 +1114,7 @@ theorem lshr_lshr_pow2_const_negative_nopow2_1_proof : lshr_lshr_pow2_const_nega simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_lshr_pow2_const_negative_nopow2_1 all_goals (try extract_goal ; sorry) @@ -1151,7 +1151,7 @@ theorem lshr_lshr_pow2_const_negative_nopow2_2_proof : lshr_lshr_pow2_const_nega simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_lshr_pow2_const_negative_nopow2_2 all_goals (try extract_goal ; sorry) @@ -1185,7 +1185,7 @@ theorem lshr_lshr_pow2_const_negative_overflow_proof : lshr_lshr_pow2_const_nega simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_lshr_pow2_const_negative_overflow all_goals (try extract_goal ; sorry) @@ -1219,7 +1219,7 @@ theorem lshr_shl_pow2_const_overflow_proof : lshr_shl_pow2_const_overflow_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_pow2_const_overflow all_goals (try extract_goal ; sorry) @@ -1254,7 +1254,7 @@ theorem add_constant_equal_with_the_top_bit_of_demandedbits_pass_proof : add_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_constant_equal_with_the_top_bit_of_demandedbits_pass all_goals (try extract_goal ; sorry) @@ -1291,7 +1291,7 @@ theorem add_constant_equal_with_the_top_bit_of_demandedbits_insertpt_proof : add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_constant_equal_with_the_top_bit_of_demandedbits_insertpt all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean index 69b58880c..7e5b7ef3b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gand2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gand2.lean @@ -12,7 +12,7 @@ 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): @@ -35,7 +35,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -65,7 +65,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -98,7 +98,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -134,7 +134,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -169,7 +169,7 @@ theorem and1_shl1_is_cmp_eq_0_multiuse_proof : and1_shl1_is_cmp_eq_0_multiuse_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_shl1_is_cmp_eq_0_multiuse all_goals (try extract_goal ; sorry) @@ -201,7 +201,7 @@ theorem and1_lshr1_is_cmp_eq_0_proof : and1_lshr1_is_cmp_eq_0_before ⊑ and1_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_lshr1_is_cmp_eq_0 all_goals (try extract_goal ; sorry) @@ -235,7 +235,7 @@ theorem and1_lshr1_is_cmp_eq_0_multiuse_proof : and1_lshr1_is_cmp_eq_0_multiuse_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_lshr1_is_cmp_eq_0_multiuse all_goals (try extract_goal ; sorry) @@ -273,7 +273,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -311,7 +311,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -349,7 +349,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -389,7 +389,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean index 982c2728c..97e70827d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhorhand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhorhand_statements - + def test1_before := [llvm| { ^0(%arg10 : i32, %arg11 : i32): @@ -40,7 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -107,7 +107,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -138,7 +138,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test1 all_goals (try extract_goal ; sorry) @@ -170,7 +170,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean index c85e956e3..8488299fa 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhorhnot.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhorhnot_statements - + def and_to_xor1_before := [llvm| { ^0(%arg119 : i32, %arg120 : i32): @@ -38,7 +38,7 @@ theorem and_to_xor1_proof : and_to_xor1_before ⊑ and_to_xor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor1 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem and_to_xor2_proof : and_to_xor2_before ⊑ and_to_xor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor2 all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem and_to_xor3_proof : and_to_xor3_before ⊑ and_to_xor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor3 all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem and_to_xor4_proof : and_to_xor4_before ⊑ and_to_xor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor4 all_goals (try extract_goal ; sorry) @@ -172,7 +172,7 @@ theorem or_to_nxor1_proof : or_to_nxor1_before ⊑ or_to_nxor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor1 all_goals (try extract_goal ; sorry) @@ -207,7 +207,7 @@ theorem or_to_nxor2_proof : or_to_nxor2_before ⊑ or_to_nxor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor2 all_goals (try extract_goal ; sorry) @@ -242,7 +242,7 @@ theorem or_to_nxor3_proof : or_to_nxor3_before ⊑ or_to_nxor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor3 all_goals (try extract_goal ; sorry) @@ -277,7 +277,7 @@ theorem or_to_nxor4_proof : or_to_nxor4_before ⊑ or_to_nxor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor4 all_goals (try extract_goal ; sorry) @@ -308,7 +308,7 @@ theorem xor_to_xor1_proof : xor_to_xor1_before ⊑ xor_to_xor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor1 all_goals (try extract_goal ; sorry) @@ -339,7 +339,7 @@ theorem xor_to_xor2_proof : xor_to_xor2_before ⊑ xor_to_xor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor2 all_goals (try extract_goal ; sorry) @@ -370,7 +370,7 @@ theorem xor_to_xor3_proof : xor_to_xor3_before ⊑ xor_to_xor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor3 all_goals (try extract_goal ; sorry) @@ -401,7 +401,7 @@ theorem xor_to_xor4_proof : xor_to_xor4_before ⊑ xor_to_xor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor4 all_goals (try extract_goal ; sorry) @@ -440,7 +440,7 @@ theorem PR32830_proof : PR32830_before ⊑ PR32830_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR32830 all_goals (try extract_goal ; sorry) @@ -473,7 +473,7 @@ theorem simplify_or_common_op_commute0_proof : simplify_or_common_op_commute0_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -506,7 +506,7 @@ theorem simplify_or_common_op_commute1_proof : simplify_or_common_op_commute1_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute1 all_goals (try extract_goal ; sorry) @@ -541,7 +541,7 @@ theorem simplify_or_common_op_commute2_proof : simplify_or_common_op_commute2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute2 all_goals (try extract_goal ; sorry) @@ -574,7 +574,7 @@ theorem simplify_and_common_op_commute1_proof : simplify_and_common_op_commute1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_and_common_op_commute1 all_goals (try extract_goal ; sorry) @@ -609,7 +609,7 @@ theorem simplify_and_common_op_commute2_proof : simplify_and_common_op_commute2_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_and_common_op_commute2 all_goals (try extract_goal ; sorry) @@ -641,7 +641,7 @@ theorem reduce_xor_common_op_commute0_proof : reduce_xor_common_op_commute0_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reduce_xor_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -673,7 +673,7 @@ theorem reduce_xor_common_op_commute1_proof : reduce_xor_common_op_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reduce_xor_common_op_commute1 all_goals (try extract_goal ; sorry) @@ -708,7 +708,7 @@ theorem annihilate_xor_common_op_commute2_proof : annihilate_xor_common_op_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN annihilate_xor_common_op_commute2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean index e785650a6..fe3bd6b7b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhmerge.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhxorhmerge_statements - + def test1_before := [llvm| { ^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): @@ -37,7 +37,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -68,7 +68,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR75692_1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean index b52067d4d..b873b2dc0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gandhxorhor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhxorhor_statements - + def and_xor_not_common_op_before := [llvm| { ^0(%arg686 : i32, %arg687 : i32): @@ -37,7 +37,7 @@ theorem and_xor_not_common_op_proof : and_xor_not_common_op_before ⊑ and_xor_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_xor_not_common_op all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem and_not_xor_common_op_proof : and_not_xor_common_op_before ⊑ and_not_x simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_xor_common_op all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem or_proof : or_before ⊑ or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or all_goals (try extract_goal ; sorry) @@ -131,7 +131,7 @@ theorem or2_proof : or2_before ⊑ or2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or2 all_goals (try extract_goal ; sorry) @@ -165,7 +165,7 @@ theorem and_shl_proof : and_shl_before ⊑ and_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_shl all_goals (try extract_goal ; sorry) @@ -199,7 +199,7 @@ theorem or_shl_proof : or_shl_before ⊑ or_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_shl all_goals (try extract_goal ; sorry) @@ -233,7 +233,7 @@ theorem or_lshr_proof : or_lshr_before ⊑ or_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_lshr all_goals (try extract_goal ; sorry) @@ -267,7 +267,7 @@ theorem xor_lshr_proof : xor_lshr_before ⊑ xor_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_lshr all_goals (try extract_goal ; sorry) @@ -305,7 +305,7 @@ theorem xor_lshr_multiuse_proof : xor_lshr_multiuse_before ⊑ xor_lshr_multiuse simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_lshr_multiuse all_goals (try extract_goal ; sorry) @@ -345,7 +345,7 @@ theorem not_and_and_not_proof : not_and_and_not_before ⊑ not_and_and_not_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_not all_goals (try extract_goal ; sorry) @@ -381,7 +381,7 @@ theorem not_and_and_not_commute1_proof : not_and_and_not_commute1_before ⊑ not simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_not_commute1 all_goals (try extract_goal ; sorry) @@ -421,7 +421,7 @@ theorem not_or_or_not_proof : not_or_or_not_before ⊑ not_or_or_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_not all_goals (try extract_goal ; sorry) @@ -457,7 +457,7 @@ theorem not_or_or_not_commute1_proof : not_or_or_not_commute1_before ⊑ not_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_not_commute1 all_goals (try extract_goal ; sorry) @@ -496,7 +496,7 @@ theorem or_not_and_proof : or_not_and_before ⊑ or_not_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and all_goals (try extract_goal ; sorry) @@ -539,7 +539,7 @@ theorem or_not_and_commute1_proof : or_not_and_commute1_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute1 all_goals (try extract_goal ; sorry) @@ -582,7 +582,7 @@ theorem or_not_and_commute2_proof : or_not_and_commute2_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute2 all_goals (try extract_goal ; sorry) @@ -621,7 +621,7 @@ theorem or_not_and_commute3_proof : or_not_and_commute3_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute3 all_goals (try extract_goal ; sorry) @@ -664,7 +664,7 @@ theorem or_not_and_commute4_proof : or_not_and_commute4_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute4 all_goals (try extract_goal ; sorry) @@ -709,7 +709,7 @@ theorem or_not_and_commute5_proof : or_not_and_commute5_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute5 all_goals (try extract_goal ; sorry) @@ -748,7 +748,7 @@ theorem or_not_and_commute6_proof : or_not_and_commute6_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute6 all_goals (try extract_goal ; sorry) @@ -787,7 +787,7 @@ theorem or_not_and_commute7_proof : or_not_and_commute7_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute7 all_goals (try extract_goal ; sorry) @@ -832,7 +832,7 @@ theorem or_not_and_commute8_proof : or_not_and_commute8_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute8 all_goals (try extract_goal ; sorry) @@ -879,7 +879,7 @@ theorem or_not_and_commute9_proof : or_not_and_commute9_before ⊑ or_not_and_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_commute9 all_goals (try extract_goal ; sorry) @@ -922,7 +922,7 @@ theorem or_not_and_wrong_c_proof : or_not_and_wrong_c_before ⊑ or_not_and_wron simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_wrong_c all_goals (try extract_goal ; sorry) @@ -965,7 +965,7 @@ theorem or_not_and_wrong_b_proof : or_not_and_wrong_b_before ⊑ or_not_and_wron simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_wrong_b all_goals (try extract_goal ; sorry) @@ -1004,7 +1004,7 @@ theorem and_not_or_proof : and_not_or_before ⊑ and_not_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or all_goals (try extract_goal ; sorry) @@ -1047,7 +1047,7 @@ theorem and_not_or_commute1_proof : and_not_or_commute1_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute1 all_goals (try extract_goal ; sorry) @@ -1090,7 +1090,7 @@ theorem and_not_or_commute2_proof : and_not_or_commute2_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute2 all_goals (try extract_goal ; sorry) @@ -1129,7 +1129,7 @@ theorem and_not_or_commute3_proof : and_not_or_commute3_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute3 all_goals (try extract_goal ; sorry) @@ -1172,7 +1172,7 @@ theorem and_not_or_commute4_proof : and_not_or_commute4_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute4 all_goals (try extract_goal ; sorry) @@ -1215,10 +1215,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 - try simp - simp_alive_case_bash - intros - try simp + -- 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 @@ -1256,7 +1256,7 @@ theorem and_not_or_commute6_proof : and_not_or_commute6_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute6 all_goals (try extract_goal ; sorry) @@ -1295,7 +1295,7 @@ theorem and_not_or_commute7_proof : and_not_or_commute7_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute7 all_goals (try extract_goal ; sorry) @@ -1340,7 +1340,7 @@ theorem and_not_or_commute8_proof : and_not_or_commute8_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute8 all_goals (try extract_goal ; sorry) @@ -1387,7 +1387,7 @@ theorem and_not_or_commute9_proof : and_not_or_commute9_before ⊑ and_not_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_commute9 all_goals (try extract_goal ; sorry) @@ -1430,7 +1430,7 @@ theorem and_not_or_wrong_c_proof : and_not_or_wrong_c_before ⊑ and_not_or_wron simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_wrong_c all_goals (try extract_goal ; sorry) @@ -1473,7 +1473,7 @@ theorem and_not_or_wrong_b_proof : and_not_or_wrong_b_before ⊑ and_not_or_wron simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_wrong_b all_goals (try extract_goal ; sorry) @@ -1511,7 +1511,7 @@ theorem or_and_not_not_proof : or_and_not_not_before ⊑ or_and_not_not_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not all_goals (try extract_goal ; sorry) @@ -1553,7 +1553,7 @@ theorem or_and_not_not_commute1_proof : or_and_not_not_commute1_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute1 all_goals (try extract_goal ; sorry) @@ -1591,7 +1591,7 @@ theorem or_and_not_not_commute2_proof : or_and_not_not_commute2_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute2 all_goals (try extract_goal ; sorry) @@ -1629,7 +1629,7 @@ theorem or_and_not_not_commute3_proof : or_and_not_not_commute3_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute3 all_goals (try extract_goal ; sorry) @@ -1667,7 +1667,7 @@ theorem or_and_not_not_commute4_proof : or_and_not_not_commute4_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute4 all_goals (try extract_goal ; sorry) @@ -1705,7 +1705,7 @@ theorem or_and_not_not_commute5_proof : or_and_not_not_commute5_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute5 all_goals (try extract_goal ; sorry) @@ -1747,7 +1747,7 @@ theorem or_and_not_not_commute6_proof : or_and_not_not_commute6_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute6 all_goals (try extract_goal ; sorry) @@ -1785,7 +1785,7 @@ theorem or_and_not_not_commute7_proof : or_and_not_not_commute7_before ⊑ or_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_commute7 all_goals (try extract_goal ; sorry) @@ -1826,7 +1826,7 @@ theorem or_and_not_not_wrong_a_proof : or_and_not_not_wrong_a_before ⊑ or_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_wrong_a all_goals (try extract_goal ; sorry) @@ -1867,7 +1867,7 @@ theorem or_and_not_not_wrong_b_proof : or_and_not_not_wrong_b_before ⊑ or_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_not_not_wrong_b all_goals (try extract_goal ; sorry) @@ -1905,7 +1905,7 @@ theorem and_or_not_not_proof : and_or_not_not_before ⊑ and_or_not_not_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not all_goals (try extract_goal ; sorry) @@ -1947,7 +1947,7 @@ theorem and_or_not_not_commute1_proof : and_or_not_not_commute1_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute1 all_goals (try extract_goal ; sorry) @@ -1985,7 +1985,7 @@ theorem and_or_not_not_commute2_proof : and_or_not_not_commute2_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute2 all_goals (try extract_goal ; sorry) @@ -2023,7 +2023,7 @@ theorem and_or_not_not_commute3_proof : and_or_not_not_commute3_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute3 all_goals (try extract_goal ; sorry) @@ -2061,7 +2061,7 @@ theorem and_or_not_not_commute4_proof : and_or_not_not_commute4_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute4 all_goals (try extract_goal ; sorry) @@ -2099,7 +2099,7 @@ theorem and_or_not_not_commute5_proof : and_or_not_not_commute5_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute5 all_goals (try extract_goal ; sorry) @@ -2141,7 +2141,7 @@ theorem and_or_not_not_commute6_proof : and_or_not_not_commute6_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute6 all_goals (try extract_goal ; sorry) @@ -2179,7 +2179,7 @@ theorem and_or_not_not_commute7_proof : and_or_not_not_commute7_before ⊑ and_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_commute7 all_goals (try extract_goal ; sorry) @@ -2219,7 +2219,7 @@ theorem and_or_not_not_wrong_a_proof : and_or_not_not_wrong_a_before ⊑ and_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_wrong_a all_goals (try extract_goal ; sorry) @@ -2260,7 +2260,7 @@ theorem and_or_not_not_wrong_b_proof : and_or_not_not_wrong_b_before ⊑ and_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_or_not_not_wrong_b all_goals (try extract_goal ; sorry) @@ -2301,7 +2301,7 @@ theorem and_not_or_or_not_or_xor_proof : and_not_or_or_not_or_xor_before ⊑ and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor all_goals (try extract_goal ; sorry) @@ -2342,7 +2342,7 @@ theorem and_not_or_or_not_or_xor_commute1_proof : and_not_or_or_not_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor_commute1 all_goals (try extract_goal ; sorry) @@ -2387,7 +2387,7 @@ theorem and_not_or_or_not_or_xor_commute2_proof : and_not_or_or_not_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor_commute2 all_goals (try extract_goal ; sorry) @@ -2428,7 +2428,7 @@ theorem and_not_or_or_not_or_xor_commute3_proof : and_not_or_or_not_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor_commute3 all_goals (try extract_goal ; sorry) @@ -2473,7 +2473,7 @@ theorem and_not_or_or_not_or_xor_commute4_proof : and_not_or_or_not_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor_commute4 all_goals (try extract_goal ; sorry) @@ -2514,7 +2514,7 @@ theorem and_not_or_or_not_or_xor_commute5_proof : and_not_or_or_not_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_not_or_or_not_or_xor_commute5 all_goals (try extract_goal ; sorry) @@ -2556,7 +2556,7 @@ theorem or_not_and_and_not_and_xor_proof : or_not_and_and_not_and_xor_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor all_goals (try extract_goal ; sorry) @@ -2598,7 +2598,7 @@ theorem or_not_and_and_not_and_xor_commute1_proof : or_not_and_and_not_and_xor_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor_commute1 all_goals (try extract_goal ; sorry) @@ -2644,7 +2644,7 @@ theorem or_not_and_and_not_and_xor_commute2_proof : or_not_and_and_not_and_xor_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor_commute2 all_goals (try extract_goal ; sorry) @@ -2686,7 +2686,7 @@ theorem or_not_and_and_not_and_xor_commute3_proof : or_not_and_and_not_and_xor_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor_commute3 all_goals (try extract_goal ; sorry) @@ -2732,7 +2732,7 @@ theorem or_not_and_and_not_and_xor_commute4_proof : or_not_and_and_not_and_xor_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor_commute4 all_goals (try extract_goal ; sorry) @@ -2774,7 +2774,7 @@ theorem or_not_and_and_not_and_xor_commute5_proof : or_not_and_and_not_and_xor_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_and_and_not_and_xor_commute5 all_goals (try extract_goal ; sorry) @@ -2813,7 +2813,7 @@ theorem not_and_and_or_not_or_or_proof : not_and_and_or_not_or_or_before ⊑ not simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or all_goals (try extract_goal ; sorry) @@ -2852,7 +2852,7 @@ theorem not_and_and_or_not_or_or_commute1_or_proof : not_and_and_or_not_or_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute1_or all_goals (try extract_goal ; sorry) @@ -2891,7 +2891,7 @@ theorem not_and_and_or_not_or_or_commute2_or_proof : not_and_and_or_not_or_or_co simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute2_or all_goals (try extract_goal ; sorry) @@ -2930,7 +2930,7 @@ theorem not_and_and_or_not_or_or_commute1_and_proof : not_and_and_or_not_or_or_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute1_and all_goals (try extract_goal ; sorry) @@ -2969,7 +2969,7 @@ theorem not_and_and_or_not_or_or_commute2_and_proof : not_and_and_or_not_or_or_c simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute2_and all_goals (try extract_goal ; sorry) @@ -3008,7 +3008,7 @@ theorem not_and_and_or_not_or_or_commute1_proof : not_and_and_or_not_or_or_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute1 all_goals (try extract_goal ; sorry) @@ -3051,7 +3051,7 @@ theorem not_and_and_or_not_or_or_commute2_proof : not_and_and_or_not_or_or_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute2 all_goals (try extract_goal ; sorry) @@ -3094,7 +3094,7 @@ theorem not_and_and_or_not_or_or_commute3_proof : not_and_and_or_not_or_or_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute3 all_goals (try extract_goal ; sorry) @@ -3137,7 +3137,7 @@ theorem not_and_and_or_not_or_or_commute4_proof : not_and_and_or_not_or_or_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_not_or_or_commute4 all_goals (try extract_goal ; sorry) @@ -3176,7 +3176,7 @@ theorem not_or_or_and_not_and_and_proof : not_or_or_and_not_and_and_before ⊑ n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and all_goals (try extract_goal ; sorry) @@ -3215,7 +3215,7 @@ theorem not_or_or_and_not_and_and_commute1_and_proof : not_or_or_and_not_and_and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute1_and all_goals (try extract_goal ; sorry) @@ -3254,7 +3254,7 @@ theorem not_or_or_and_not_and_and_commute2_and_proof : not_or_or_and_not_and_and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute2_and all_goals (try extract_goal ; sorry) @@ -3293,7 +3293,7 @@ theorem not_or_or_and_not_and_and_commute1_or_proof : not_or_or_and_not_and_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute1_or all_goals (try extract_goal ; sorry) @@ -3332,7 +3332,7 @@ theorem not_or_or_and_not_and_and_commute2_or_proof : not_or_or_and_not_and_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute2_or all_goals (try extract_goal ; sorry) @@ -3371,7 +3371,7 @@ theorem not_or_or_and_not_and_and_commute1_proof : not_or_or_and_not_and_and_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute1 all_goals (try extract_goal ; sorry) @@ -3414,7 +3414,7 @@ theorem not_or_or_and_not_and_and_commute2_proof : not_or_or_and_not_and_and_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute2 all_goals (try extract_goal ; sorry) @@ -3457,7 +3457,7 @@ theorem not_or_or_and_not_and_and_commute3_proof : not_or_or_and_not_and_and_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute3 all_goals (try extract_goal ; sorry) @@ -3500,7 +3500,7 @@ theorem not_or_or_and_not_and_and_commute4_proof : not_or_or_and_not_and_and_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_not_and_and_commute4 all_goals (try extract_goal ; sorry) @@ -3539,7 +3539,7 @@ theorem not_and_and_or_no_or_proof : not_and_and_or_no_or_before ⊑ not_and_and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or all_goals (try extract_goal ; sorry) @@ -3578,7 +3578,7 @@ theorem not_and_and_or_no_or_commute1_and_proof : not_and_and_or_no_or_commute1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or_commute1_and all_goals (try extract_goal ; sorry) @@ -3617,7 +3617,7 @@ theorem not_and_and_or_no_or_commute2_and_proof : not_and_and_or_no_or_commute2_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or_commute2_and all_goals (try extract_goal ; sorry) @@ -3656,7 +3656,7 @@ theorem not_and_and_or_no_or_commute1_proof : not_and_and_or_no_or_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or_commute1 all_goals (try extract_goal ; sorry) @@ -3699,7 +3699,7 @@ theorem not_and_and_or_no_or_commute2_proof : not_and_and_or_no_or_commute2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or_commute2 all_goals (try extract_goal ; sorry) @@ -3742,7 +3742,7 @@ theorem not_and_and_or_no_or_commute3_proof : not_and_and_or_no_or_commute3_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_and_and_or_no_or_commute3 all_goals (try extract_goal ; sorry) @@ -3781,7 +3781,7 @@ theorem not_or_or_and_no_and_proof : not_or_or_and_no_and_before ⊑ not_or_or_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and all_goals (try extract_goal ; sorry) @@ -3820,7 +3820,7 @@ theorem not_or_or_and_no_and_commute1_or_proof : not_or_or_and_no_and_commute1_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and_commute1_or all_goals (try extract_goal ; sorry) @@ -3859,7 +3859,7 @@ theorem not_or_or_and_no_and_commute2_or_proof : not_or_or_and_no_and_commute2_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and_commute2_or all_goals (try extract_goal ; sorry) @@ -3898,7 +3898,7 @@ theorem not_or_or_and_no_and_commute1_proof : not_or_or_and_no_and_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and_commute1 all_goals (try extract_goal ; sorry) @@ -3941,7 +3941,7 @@ theorem not_or_or_and_no_and_commute2_proof : not_or_or_and_no_and_commute2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and_commute2 all_goals (try extract_goal ; sorry) @@ -3984,7 +3984,7 @@ theorem not_or_or_and_no_and_commute3_proof : not_or_or_and_no_and_commute3_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_or_and_no_and_commute3 all_goals (try extract_goal ; sorry) @@ -4019,7 +4019,7 @@ theorem and_orn_xor_proof : and_orn_xor_before ⊑ and_orn_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_orn_xor all_goals (try extract_goal ; sorry) @@ -4058,7 +4058,7 @@ theorem and_orn_xor_commute8_proof : and_orn_xor_commute8_before ⊑ and_orn_xor simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_orn_xor_commute8 all_goals (try extract_goal ; sorry) @@ -4093,7 +4093,7 @@ theorem canonicalize_logic_first_or0_proof : canonicalize_logic_first_or0_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_or0 all_goals (try extract_goal ; sorry) @@ -4128,7 +4128,7 @@ theorem canonicalize_logic_first_or0_nsw_proof : canonicalize_logic_first_or0_ns simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_or0_nsw all_goals (try extract_goal ; sorry) @@ -4163,7 +4163,7 @@ theorem canonicalize_logic_first_or0_nswnuw_proof : canonicalize_logic_first_or0 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_or0_nswnuw all_goals (try extract_goal ; sorry) @@ -4198,7 +4198,7 @@ theorem canonicalize_logic_first_and0_proof : canonicalize_logic_first_and0_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_and0 all_goals (try extract_goal ; sorry) @@ -4233,7 +4233,7 @@ theorem canonicalize_logic_first_and0_nsw_proof : canonicalize_logic_first_and0_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_and0_nsw all_goals (try extract_goal ; sorry) @@ -4268,7 +4268,7 @@ theorem canonicalize_logic_first_and0_nswnuw_proof : canonicalize_logic_first_an simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_and0_nswnuw all_goals (try extract_goal ; sorry) @@ -4303,7 +4303,7 @@ theorem canonicalize_logic_first_xor_0_proof : canonicalize_logic_first_xor_0_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_xor_0 all_goals (try extract_goal ; sorry) @@ -4338,7 +4338,7 @@ theorem canonicalize_logic_first_xor_0_nsw_proof : canonicalize_logic_first_xor_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN canonicalize_logic_first_xor_0_nsw all_goals (try extract_goal ; sorry) @@ -4373,10 +4373,8 @@ theorem canonicalize_logic_first_xor_0_nswnuw_proof : canonicalize_logic_first_x simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---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/gannotations.lean b/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean index 51b2186d3..c648842f4 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gannotations.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gannotations_statements - + def do_not_add_annotation_to_existing_instr_before := [llvm| { ^0(%arg15 : i32, %arg16 : i32): @@ -36,7 +36,7 @@ theorem do_not_add_annotation_to_existing_instr_proof : do_not_add_annotation_to simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN do_not_add_annotation_to_existing_instr all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean index 2877a3c0b..2b1793627 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthadd_statements - + def test1_before := [llvm| { ^0(%arg12 : i1): @@ -35,7 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -65,7 +65,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -95,7 +95,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -128,7 +128,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -160,7 +160,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -192,7 +192,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -224,7 +224,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -260,7 +260,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -295,7 +295,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean index d5eefa922..018f0b5dc 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthand_statements - + def test0_before := [llvm| { ^0(%arg13 : i39): @@ -35,7 +35,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test0 all_goals (try extract_goal ; sorry) @@ -64,7 +64,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -96,7 +96,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -129,7 +129,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -159,7 +159,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -188,7 +188,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -220,7 +220,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -253,7 +253,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean index 917f991e1..9a092c13b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhorhand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthandhorhand_statements - + def test1_before := [llvm| { ^0(%arg8 : i17, %arg9 : i17): @@ -40,7 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -107,7 +107,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -138,7 +138,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test1 all_goals (try extract_goal ; sorry) @@ -170,7 +170,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean index 7156aff6c..af8666e76 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthandhxorhmerge.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthandhxorhmerge_statements - + def test1_before := [llvm| { ^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): @@ -37,7 +37,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -68,7 +68,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean index 7a77a9751..08ccc30c0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthmul1_statements - + def test1_before := [llvm| { ^0(%arg2 : i17): @@ -36,7 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean index 5ff32ce2e..d409d5060 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthmul2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthmul2_statements - + def test1_before := [llvm| { ^0(%arg2 : i177): @@ -38,7 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean index a7bb9388f..1aec2c988 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthnot.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthnot_statements - + def test1_before := [llvm| { ^0(%arg2 : i33): @@ -35,7 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean index c2e4f35ec..74d337e1c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthor_statements - + def test1_before := [llvm| { ^0(%arg5 : i23): @@ -36,7 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -106,7 +106,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -145,7 +145,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean index cf29e5155..957b96e78 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthrem1_statements - + def test1_before := [llvm| { ^0(%arg3 : i33): @@ -36,7 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean index dbf2cb6c0..50bf168c8 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthrem2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthrem2_statements - + def test1_before := [llvm| { ^0(%arg3 : i333): @@ -36,7 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean index 31e0dd148..6329be875 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthshift_statements - + def test6_before := [llvm| { ^0(%arg48 : i55): @@ -38,7 +38,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem test6a_proof : test6a_before ⊑ test6a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6a all_goals (try extract_goal ; sorry) @@ -103,7 +103,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -135,7 +135,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -167,7 +167,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -204,7 +204,7 @@ theorem multiuse_lshr_lshr_proof : multiuse_lshr_lshr_before ⊑ multiuse_lshr_l simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN multiuse_lshr_lshr all_goals (try extract_goal ; sorry) @@ -241,7 +241,7 @@ theorem multiuse_shl_shl_proof : multiuse_shl_shl_before ⊑ multiuse_shl_shl_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN multiuse_shl_shl all_goals (try extract_goal ; sorry) @@ -278,7 +278,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -310,7 +310,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -347,7 +347,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -383,7 +383,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 all_goals (try extract_goal ; sorry) @@ -417,7 +417,7 @@ theorem test14a_proof : test14a_before ⊑ test14a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14a all_goals (try extract_goal ; sorry) @@ -453,7 +453,7 @@ theorem shl_lshr_eq_amt_multi_use_proof : shl_lshr_eq_amt_multi_use_before ⊑ s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_eq_amt_multi_use all_goals (try extract_goal ; sorry) @@ -489,7 +489,7 @@ theorem lshr_shl_eq_amt_multi_use_proof : lshr_shl_eq_amt_multi_use_before ⊑ l simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_eq_amt_multi_use all_goals (try extract_goal ; sorry) @@ -525,7 +525,7 @@ theorem test25_proof : test25_before ⊑ test25_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test25 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean index 20b1d461f..bd6f364db 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthshifthsimplify.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthshifthsimplify_statements - + def test0_before := [llvm| { ^0(%arg6 : i41, %arg7 : i41, %arg8 : i41): @@ -37,7 +37,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test0 all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean index 43c81fa7d..d37dda28c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthsub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthsub_statements - + def test1_before := [llvm| { ^0(%arg26 : i23): @@ -34,7 +34,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -63,7 +63,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -93,7 +93,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -124,7 +124,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -155,7 +155,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -187,7 +187,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -218,7 +218,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -250,7 +250,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -282,7 +282,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -315,7 +315,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -348,7 +348,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -381,7 +381,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 all_goals (try extract_goal ; sorry) @@ -413,7 +413,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test18 all_goals (try extract_goal ; sorry) @@ -442,7 +442,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean index b823a627e..3bd80a94d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthxor1_statements - + def test1_before := [llvm| { ^0(%arg6 : i47, %arg7 : i47): @@ -42,7 +42,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -131,7 +131,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -163,7 +163,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -193,7 +193,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -228,7 +228,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean index 359f376e0..fe7f19646 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gapinthxor2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthxor2_statements - + def test1_before := [llvm| { ^0(%arg6 : i447, %arg7 : i447): @@ -42,7 +42,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -131,7 +131,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -163,7 +163,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -193,7 +193,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -228,7 +228,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean b/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean index fb1e2a0a7..0dd348da1 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gashrhdemand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gashrhdemand_statements - + def srem2_ashr_mask_before := [llvm| { ^0(%arg6 : i32): @@ -40,7 +40,7 @@ theorem srem2_ashr_mask_proof : srem2_ashr_mask_before ⊑ srem2_ashr_mask_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN srem2_ashr_mask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean b/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean index e32d6e757..295476308 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gashrhlshr.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gashrhlshr_statements - + def ashr_known_pos_exact_before := [llvm| { ^0(%arg35 : i8, %arg36 : i8): @@ -38,7 +38,7 @@ theorem ashr_known_pos_exact_proof : ashr_known_pos_exact_before ⊑ ashr_known_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_known_pos_exact all_goals (try extract_goal ; sorry) @@ -72,7 +72,7 @@ theorem lshr_mul_times_3_div_2_proof : lshr_mul_times_3_div_2_before ⊑ lshr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2 all_goals (try extract_goal ; sorry) @@ -106,7 +106,7 @@ theorem lshr_mul_times_3_div_2_exact_proof : lshr_mul_times_3_div_2_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2_exact all_goals (try extract_goal ; sorry) @@ -140,7 +140,7 @@ theorem lshr_mul_times_3_div_2_exact_2_proof : lshr_mul_times_3_div_2_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2_exact_2 all_goals (try extract_goal ; sorry) @@ -174,7 +174,7 @@ theorem lshr_mul_times_5_div_4_proof : lshr_mul_times_5_div_4_before ⊑ lshr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4 all_goals (try extract_goal ; sorry) @@ -208,7 +208,7 @@ theorem lshr_mul_times_5_div_4_exact_proof : lshr_mul_times_5_div_4_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4_exact all_goals (try extract_goal ; sorry) @@ -242,7 +242,7 @@ theorem lshr_mul_times_5_div_4_exact_2_proof : lshr_mul_times_5_div_4_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4_exact_2 all_goals (try extract_goal ; sorry) @@ -276,7 +276,7 @@ theorem ashr_mul_times_3_div_2_proof : ashr_mul_times_3_div_2_before ⊑ ashr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2 all_goals (try extract_goal ; sorry) @@ -310,7 +310,7 @@ theorem ashr_mul_times_3_div_2_exact_proof : ashr_mul_times_3_div_2_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2_exact all_goals (try extract_goal ; sorry) @@ -344,7 +344,7 @@ theorem ashr_mul_times_3_div_2_exact_2_proof : ashr_mul_times_3_div_2_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2_exact_2 all_goals (try extract_goal ; sorry) @@ -378,7 +378,7 @@ theorem ashr_mul_times_5_div_4_proof : ashr_mul_times_5_div_4_before ⊑ ashr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4 all_goals (try extract_goal ; sorry) @@ -412,7 +412,7 @@ theorem ashr_mul_times_5_div_4_exact_proof : ashr_mul_times_5_div_4_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4_exact all_goals (try extract_goal ; sorry) @@ -446,7 +446,7 @@ theorem ashr_mul_times_5_div_4_exact_2_proof : ashr_mul_times_5_div_4_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4_exact_2 all_goals (try extract_goal ; sorry) @@ -485,7 +485,7 @@ theorem lsb_mask_sign_zext_wrong_cst2_proof : lsb_mask_sign_zext_wrong_cst2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lsb_mask_sign_zext_wrong_cst2 all_goals (try extract_goal ; sorry) @@ -524,7 +524,7 @@ theorem lsb_mask_sign_sext_wrong_cst2_proof : lsb_mask_sign_sext_wrong_cst2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lsb_mask_sign_sext_wrong_cst2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean b/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean index 910b3360f..e0eb843bb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gavghlsb.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gavghlsb_statements - + def avg_lsb_before := [llvm| { ^0(%arg4 : i8, %arg5 : i8): @@ -40,7 +40,7 @@ theorem avg_lsb_proof : avg_lsb_before ⊑ avg_lsb_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN avg_lsb all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean b/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean index 2330dad07..11bc317a2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gbinophandhshifts.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gbinophandhshifts_statements - + def shl_and_and_before := [llvm| { ^0(%arg172 : i8, %arg173 : i8): @@ -43,7 +43,7 @@ theorem shl_and_and_proof : shl_and_and_before ⊑ shl_and_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_and all_goals (try extract_goal ; sorry) @@ -84,7 +84,7 @@ theorem shl_and_and_fail_proof : shl_and_and_fail_before ⊑ shl_and_and_fail_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_and_fail all_goals (try extract_goal ; sorry) @@ -122,7 +122,7 @@ theorem shl_add_add_proof : shl_add_add_before ⊑ shl_add_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_add all_goals (try extract_goal ; sorry) @@ -161,7 +161,7 @@ theorem shl_add_add_fail_proof : shl_add_add_fail_before ⊑ shl_add_add_fail_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_add_fail all_goals (try extract_goal ; sorry) @@ -199,7 +199,7 @@ theorem shl_and_xor_proof : shl_and_xor_before ⊑ shl_and_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_xor all_goals (try extract_goal ; sorry) @@ -237,7 +237,7 @@ theorem shl_and_add_proof : shl_and_add_before ⊑ shl_and_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_add all_goals (try extract_goal ; sorry) @@ -275,7 +275,7 @@ theorem lshr_or_and_proof : lshr_or_and_before ⊑ lshr_or_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or_and all_goals (try extract_goal ; sorry) @@ -313,7 +313,7 @@ theorem lshr_or_or_fail_proof : lshr_or_or_fail_before ⊑ lshr_or_or_fail_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or_or_fail all_goals (try extract_goal ; sorry) @@ -347,7 +347,7 @@ theorem lshr_or_or_no_const_proof : lshr_or_or_no_const_before ⊑ lshr_or_or_no simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or_or_no_const all_goals (try extract_goal ; sorry) @@ -381,7 +381,7 @@ theorem shl_xor_xor_no_const_proof : shl_xor_xor_no_const_before ⊑ shl_xor_xor simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_xor_no_const all_goals (try extract_goal ; sorry) @@ -415,7 +415,7 @@ theorem shl_add_add_no_const_proof : shl_add_add_no_const_before ⊑ shl_add_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_add_no_const all_goals (try extract_goal ; sorry) @@ -453,7 +453,7 @@ theorem lshr_xor_or_good_mask_proof : lshr_xor_or_good_mask_before ⊑ lshr_xor_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_xor_or_good_mask all_goals (try extract_goal ; sorry) @@ -491,7 +491,7 @@ theorem shl_xor_xor_good_mask_proof : shl_xor_xor_good_mask_before ⊑ shl_xor_x simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_xor_good_mask all_goals (try extract_goal ; sorry) @@ -529,7 +529,7 @@ theorem shl_xor_xor_bad_mask_distribute_proof : shl_xor_xor_bad_mask_distribute_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_xor_bad_mask_distribute all_goals (try extract_goal ; sorry) @@ -567,7 +567,7 @@ theorem shl_add_and_proof : shl_add_and_before ⊑ shl_add_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_and all_goals (try extract_goal ; sorry) @@ -606,7 +606,7 @@ theorem lshr_and_add_fail_proof : lshr_and_add_fail_before ⊑ lshr_and_add_fail simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_add_fail all_goals (try extract_goal ; sorry) @@ -645,7 +645,7 @@ theorem lshr_add_or_fail_proof : lshr_add_or_fail_before ⊑ lshr_add_or_fail_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add_or_fail all_goals (try extract_goal ; sorry) @@ -684,7 +684,7 @@ theorem lshr_add_xor_fail_proof : lshr_add_xor_fail_before ⊑ lshr_add_xor_fail simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add_xor_fail all_goals (try extract_goal ; sorry) @@ -723,7 +723,7 @@ theorem shl_add_and_fail_mismatch_shift_proof : shl_add_and_fail_mismatch_shift_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_and_fail_mismatch_shift all_goals (try extract_goal ; sorry) @@ -759,7 +759,7 @@ theorem and_ashr_not_proof : and_ashr_not_before ⊑ and_ashr_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_ashr_not all_goals (try extract_goal ; sorry) @@ -795,7 +795,7 @@ theorem and_ashr_not_commuted_proof : and_ashr_not_commuted_before ⊑ and_ashr_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_ashr_not_commuted all_goals (try extract_goal ; sorry) @@ -831,7 +831,7 @@ theorem or_ashr_not_proof : or_ashr_not_before ⊑ or_ashr_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_ashr_not all_goals (try extract_goal ; sorry) @@ -867,7 +867,7 @@ theorem or_ashr_not_commuted_proof : or_ashr_not_commuted_before ⊑ or_ashr_not simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_ashr_not_commuted all_goals (try extract_goal ; sorry) @@ -903,7 +903,7 @@ theorem xor_ashr_not_proof : xor_ashr_not_before ⊑ xor_ashr_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_ashr_not all_goals (try extract_goal ; sorry) @@ -939,7 +939,7 @@ theorem xor_ashr_not_commuted_proof : xor_ashr_not_commuted_before ⊑ xor_ashr_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_ashr_not_commuted all_goals (try extract_goal ; sorry) @@ -976,7 +976,7 @@ theorem xor_ashr_not_fail_lshr_ashr_proof : xor_ashr_not_fail_lshr_ashr_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_ashr_not_fail_lshr_ashr all_goals (try extract_goal ; sorry) @@ -1013,7 +1013,7 @@ theorem xor_ashr_not_fail_ashr_lshr_proof : xor_ashr_not_fail_ashr_lshr_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_ashr_not_fail_ashr_lshr all_goals (try extract_goal ; sorry) @@ -1049,7 +1049,7 @@ theorem xor_ashr_not_fail_invalid_xor_constant_proof : xor_ashr_not_fail_invalid simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_ashr_not_fail_invalid_xor_constant all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean b/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean index a7087ba8f..aabb748af 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gbinophofhdisplacedhshifts.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gbinophofhdisplacedhshifts_statements - + def shl_or_before := [llvm| { ^0(%arg25 : i8): @@ -41,7 +41,7 @@ theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or all_goals (try extract_goal ; sorry) @@ -113,7 +113,7 @@ theorem ashr_or_proof : ashr_or_before ⊑ ashr_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_or all_goals (try extract_goal ; sorry) @@ -149,7 +149,7 @@ theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor all_goals (try extract_goal ; sorry) @@ -185,7 +185,7 @@ theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_xor all_goals (try extract_goal ; sorry) @@ -221,7 +221,7 @@ theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_xor all_goals (try extract_goal ; sorry) @@ -257,7 +257,7 @@ theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and all_goals (try extract_goal ; sorry) @@ -293,7 +293,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and all_goals (try extract_goal ; sorry) @@ -329,7 +329,7 @@ theorem ashr_and_proof : ashr_and_before ⊑ ashr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_and all_goals (try extract_goal ; sorry) @@ -365,7 +365,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add all_goals (try extract_goal ; sorry) @@ -406,7 +406,7 @@ theorem lshr_add_fail_proof : lshr_add_fail_before ⊑ lshr_add_fail_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add_fail all_goals (try extract_goal ; sorry) @@ -442,7 +442,7 @@ theorem shl_or_commuted_proof : shl_or_commuted_before ⊑ shl_or_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_commuted all_goals (try extract_goal ; sorry) @@ -478,7 +478,7 @@ theorem shl_or_with_or_disjoint_instead_of_add_proof : shl_or_with_or_disjoint_i simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_with_or_disjoint_instead_of_add all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean index cdd38b959..8a4efb1bd 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehashrhshlhtohmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gcanonicalizehashrhshlhtohmasking_statements - + def positive_samevar_before := [llvm| { ^0(%arg62 : i8, %arg63 : i8): @@ -37,7 +37,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem positive_biggerashr_proof : positive_biggerashr_before ⊑ positive_bigg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr all_goals (try extract_goal ; sorry) @@ -139,7 +139,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl all_goals (try extract_goal ; sorry) @@ -171,7 +171,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw all_goals (try extract_goal ; sorry) @@ -203,7 +203,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw all_goals (try extract_goal ; sorry) @@ -238,7 +238,7 @@ theorem positive_biggerashr_shlnuw_proof : positive_biggerashr_shlnuw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuw all_goals (try extract_goal ; sorry) @@ -273,7 +273,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw all_goals (try extract_goal ; sorry) @@ -305,7 +305,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw all_goals (try extract_goal ; sorry) @@ -337,7 +337,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw all_goals (try extract_goal ; sorry) @@ -372,7 +372,7 @@ theorem positive_biggerashr_shlnsw_proof : positive_biggerashr_shlnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnsw all_goals (try extract_goal ; sorry) @@ -407,7 +407,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw all_goals (try extract_goal ; sorry) @@ -439,7 +439,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -471,7 +471,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -506,7 +506,7 @@ theorem positive_biggerashr_shlnuwnsw_proof : positive_biggerashr_shlnuwnsw_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -541,7 +541,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -570,7 +570,7 @@ theorem positive_samevar_ashrexact_proof : positive_samevar_ashrexact_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_ashrexact all_goals (try extract_goal ; sorry) @@ -600,7 +600,7 @@ theorem positive_sameconst_ashrexact_proof : positive_sameconst_ashrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_ashrexact all_goals (try extract_goal ; sorry) @@ -633,7 +633,7 @@ theorem positive_biggerashr_ashrexact_proof : positive_biggerashr_ashrexact_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_ashrexact all_goals (try extract_goal ; sorry) @@ -666,7 +666,7 @@ theorem positive_biggershl_ashrexact_proof : positive_biggershl_ashrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_ashrexact all_goals (try extract_goal ; sorry) @@ -695,7 +695,7 @@ theorem positive_samevar_shlnsw_ashrexact_proof : positive_samevar_shlnsw_ashrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -725,7 +725,7 @@ theorem positive_sameconst_shlnsw_ashrexact_proof : positive_sameconst_shlnsw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -758,7 +758,7 @@ theorem positive_biggerashr_shlnsw_ashrexact_proof : positive_biggerashr_shlnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -791,7 +791,7 @@ theorem positive_biggershl_shlnsw_ashrexact_proof : positive_biggershl_shlnsw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -820,7 +820,7 @@ theorem positive_samevar_shlnuw_ashrexact_proof : positive_samevar_shlnuw_ashrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw_ashrexact all_goals (try extract_goal ; sorry) @@ -850,7 +850,7 @@ theorem positive_sameconst_shlnuw_ashrexact_proof : positive_sameconst_shlnuw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw_ashrexact all_goals (try extract_goal ; sorry) @@ -883,7 +883,7 @@ theorem positive_biggerashr_shlnuw_ashrexact_proof : positive_biggerashr_shlnuw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuw_ashrexact all_goals (try extract_goal ; sorry) @@ -916,7 +916,7 @@ theorem positive_biggershl_shlnuw_ashrexact_proof : positive_biggershl_shlnuw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw_ashrexact all_goals (try extract_goal ; sorry) @@ -945,7 +945,7 @@ theorem positive_samevar_shlnuwnsw_ashrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -975,7 +975,7 @@ theorem positive_sameconst_shlnuwnsw_ashrexact_proof : positive_sameconst_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -1008,7 +1008,7 @@ theorem positive_biggerashr_shlnuwnsw_ashrexact_proof : positive_biggerashr_shln simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuwnsw_ashrexact all_goals (try extract_goal ; sorry) @@ -1041,7 +1041,7 @@ theorem positive_biggershl_shlnuwnsw_ashrexact_proof : positive_biggershl_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw_ashrexact all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean index bd7b05ddd..170778388 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehlshrhshlhtohmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gcanonicalizehlshrhshlhtohmasking_statements - + def positive_samevar_before := [llvm| { ^0(%arg62 : i8, %arg63 : i8): @@ -37,7 +37,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem positive_biggerlshr_proof : positive_biggerlshr_before ⊑ positive_bigg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr all_goals (try extract_goal ; sorry) @@ -139,7 +139,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl all_goals (try extract_goal ; sorry) @@ -171,7 +171,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw all_goals (try extract_goal ; sorry) @@ -203,7 +203,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw all_goals (try extract_goal ; sorry) @@ -238,7 +238,7 @@ theorem positive_biggerlshr_shlnuw_proof : positive_biggerlshr_shlnuw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnuw all_goals (try extract_goal ; sorry) @@ -273,7 +273,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw all_goals (try extract_goal ; sorry) @@ -305,7 +305,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw all_goals (try extract_goal ; sorry) @@ -337,7 +337,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw all_goals (try extract_goal ; sorry) @@ -372,7 +372,7 @@ theorem positive_biggerlshr_shlnsw_proof : positive_biggerlshr_shlnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnsw all_goals (try extract_goal ; sorry) @@ -407,7 +407,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw all_goals (try extract_goal ; sorry) @@ -439,7 +439,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -471,7 +471,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -506,7 +506,7 @@ theorem positive_biggerlshr_shlnuwnsw_proof : positive_biggerlshr_shlnuwnsw_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -541,7 +541,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw all_goals (try extract_goal ; sorry) @@ -570,7 +570,7 @@ theorem positive_samevar_lshrexact_proof : positive_samevar_lshrexact_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_lshrexact all_goals (try extract_goal ; sorry) @@ -600,7 +600,7 @@ theorem positive_sameconst_lshrexact_proof : positive_sameconst_lshrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_lshrexact all_goals (try extract_goal ; sorry) @@ -633,7 +633,7 @@ theorem positive_biggerlshr_lshrexact_proof : positive_biggerlshr_lshrexact_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_lshrexact all_goals (try extract_goal ; sorry) @@ -666,7 +666,7 @@ theorem positive_biggershl_lshrexact_proof : positive_biggershl_lshrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_lshrexact all_goals (try extract_goal ; sorry) @@ -695,7 +695,7 @@ theorem positive_samevar_shlnsw_lshrexact_proof : positive_samevar_shlnsw_lshrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -725,7 +725,7 @@ theorem positive_sameconst_shlnsw_lshrexact_proof : positive_sameconst_shlnsw_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -758,7 +758,7 @@ theorem positive_biggerlshr_shlnsw_lshrexact_proof : positive_biggerlshr_shlnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -791,7 +791,7 @@ theorem positive_biggershl_shlnsw_lshrexact_proof : positive_biggershl_shlnsw_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -820,7 +820,7 @@ theorem positive_samevar_shlnuw_lshrexact_proof : positive_samevar_shlnuw_lshrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw_lshrexact all_goals (try extract_goal ; sorry) @@ -850,7 +850,7 @@ theorem positive_sameconst_shlnuw_lshrexact_proof : positive_sameconst_shlnuw_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw_lshrexact all_goals (try extract_goal ; sorry) @@ -883,7 +883,7 @@ theorem positive_biggerlshr_shlnuw_lshrexact_proof : positive_biggerlshr_shlnuw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnuw_lshrexact all_goals (try extract_goal ; sorry) @@ -916,7 +916,7 @@ theorem positive_biggershl_shlnuw_lshrexact_proof : positive_biggershl_shlnuw_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw_lshrexact all_goals (try extract_goal ; sorry) @@ -945,7 +945,7 @@ theorem positive_samevar_shlnuwnsw_lshrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -975,7 +975,7 @@ theorem positive_sameconst_shlnuwnsw_lshrexact_proof : positive_sameconst_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -1008,7 +1008,7 @@ theorem positive_biggerlshr_shlnuwnsw_lshrexact_proof : positive_biggerlshr_shln simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerlshr_shlnuwnsw_lshrexact all_goals (try extract_goal ; sorry) @@ -1041,7 +1041,7 @@ theorem positive_biggershl_shlnuwnsw_lshrexact_proof : positive_biggershl_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw_lshrexact all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean index b7e4ff502..592e3c487 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gcanonicalizehshlhlshrhtohmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gcanonicalizehshlhlshrhtohmasking_statements - + def positive_samevar_before := [llvm| { ^0(%arg36 : i32, %arg37 : i32): @@ -37,7 +37,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem positive_biggerShl_proof : positive_biggerShl_before ⊑ positive_bigger simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerShl all_goals (try extract_goal ; sorry) @@ -139,7 +139,7 @@ theorem positive_biggerLshr_proof : positive_biggerLshr_before ⊑ positive_bigg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerLshr all_goals (try extract_goal ; sorry) @@ -174,7 +174,7 @@ theorem positive_biggerLshr_lshrexact_proof : positive_biggerLshr_lshrexact_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerLshr_lshrexact all_goals (try extract_goal ; sorry) @@ -203,7 +203,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw all_goals (try extract_goal ; sorry) @@ -233,7 +233,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw all_goals (try extract_goal ; sorry) @@ -266,7 +266,7 @@ theorem positive_biggerShl_shlnuw_proof : positive_biggerShl_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerShl_shlnuw all_goals (try extract_goal ; sorry) @@ -299,7 +299,7 @@ theorem positive_biggerLshr_shlnuw_proof : positive_biggerLshr_shlnuw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerLshr_shlnuw all_goals (try extract_goal ; sorry) @@ -332,7 +332,7 @@ theorem positive_biggerLshr_shlnuw_lshrexact_proof : positive_biggerLshr_shlnuw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerLshr_shlnuw_lshrexact all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean b/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean index c1bc970cf..155150cb4 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdemand_shrink_nsw.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdemand_shrink_nsw_statements - + def foo_before := [llvm| { ^0(%arg0 : i32): @@ -68,7 +68,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean b/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean index 745c6abfc..d70008cd7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdemorgan.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdemorgan_statements - + def demorgan_or_apint1_before := [llvm| { ^0(%arg62 : i43, %arg63 : i43): @@ -39,7 +39,7 @@ theorem demorgan_or_apint1_proof : demorgan_or_apint1_before ⊑ demorgan_or_api simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_or_apint1 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem demorgan_or_apint2_proof : demorgan_or_apint2_before ⊑ demorgan_or_api simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_or_apint2 all_goals (try extract_goal ; sorry) @@ -107,7 +107,7 @@ theorem demorgan_and_apint1_proof : demorgan_and_apint1_before ⊑ demorgan_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_and_apint1 all_goals (try extract_goal ; sorry) @@ -141,7 +141,7 @@ theorem demorgan_and_apint2_proof : demorgan_and_apint2_before ⊑ demorgan_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_and_apint2 all_goals (try extract_goal ; sorry) @@ -175,7 +175,7 @@ theorem demorgan_and_apint3_proof : demorgan_and_apint3_before ⊑ demorgan_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_and_apint3 all_goals (try extract_goal ; sorry) @@ -209,7 +209,7 @@ theorem demorgan_and_apint4_proof : demorgan_and_apint4_before ⊑ demorgan_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_and_apint4 all_goals (try extract_goal ; sorry) @@ -243,7 +243,7 @@ theorem demorgan_and_apint5_proof : demorgan_and_apint5_before ⊑ demorgan_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_and_apint5 all_goals (try extract_goal ; sorry) @@ -276,7 +276,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -310,7 +310,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -343,7 +343,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -376,7 +376,7 @@ theorem test3_apint_proof : test3_apint_before ⊑ test3_apint_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3_apint all_goals (try extract_goal ; sorry) @@ -411,7 +411,7 @@ theorem test4_apint_proof : test4_apint_before ⊑ test4_apint_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4_apint all_goals (try extract_goal ; sorry) @@ -444,7 +444,7 @@ theorem test5_apint_proof : test5_apint_before ⊑ test5_apint_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5_apint all_goals (try extract_goal ; sorry) @@ -478,7 +478,7 @@ theorem demorgan_nand_proof : demorgan_nand_before ⊑ demorgan_nand_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nand all_goals (try extract_goal ; sorry) @@ -512,7 +512,7 @@ theorem demorgan_nand_apint1_proof : demorgan_nand_apint1_before ⊑ demorgan_na simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nand_apint1 all_goals (try extract_goal ; sorry) @@ -546,7 +546,7 @@ theorem demorgan_nand_apint2_proof : demorgan_nand_apint2_before ⊑ demorgan_na simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nand_apint2 all_goals (try extract_goal ; sorry) @@ -580,7 +580,7 @@ theorem demorgan_nor_proof : demorgan_nor_before ⊑ demorgan_nor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor all_goals (try extract_goal ; sorry) @@ -621,7 +621,7 @@ theorem demorgan_nor_use2a_proof : demorgan_nor_use2a_before ⊑ demorgan_nor_us simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2a all_goals (try extract_goal ; sorry) @@ -661,7 +661,7 @@ theorem demorgan_nor_use2b_proof : demorgan_nor_use2b_before ⊑ demorgan_nor_us simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2b all_goals (try extract_goal ; sorry) @@ -702,7 +702,7 @@ theorem demorgan_nor_use2c_proof : demorgan_nor_use2c_before ⊑ demorgan_nor_us simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2c all_goals (try extract_goal ; sorry) @@ -749,7 +749,7 @@ theorem demorgan_nor_use2ab_proof : demorgan_nor_use2ab_before ⊑ demorgan_nor_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2ab all_goals (try extract_goal ; sorry) @@ -796,7 +796,7 @@ theorem demorgan_nor_use2ac_proof : demorgan_nor_use2ac_before ⊑ demorgan_nor_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2ac all_goals (try extract_goal ; sorry) @@ -841,7 +841,7 @@ theorem demorgan_nor_use2bc_proof : demorgan_nor_use2bc_before ⊑ demorgan_nor_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_nor_use2bc all_goals (try extract_goal ; sorry) @@ -875,7 +875,7 @@ theorem demorganize_constant2_proof : demorganize_constant2_before ⊑ demorgani simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorganize_constant2 all_goals (try extract_goal ; sorry) @@ -909,7 +909,7 @@ theorem demorgan_plus_and_to_xor_proof : demorgan_plus_and_to_xor_before ⊑ dem simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN demorgan_plus_and_to_xor all_goals (try extract_goal ; sorry) @@ -944,7 +944,7 @@ theorem PR45984_proof : PR45984_before ⊑ PR45984_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR45984 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean index 0e3e815b6..f0652656a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdistribute.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdistribute_statements - + def factorize_before := [llvm| { ^0(%arg9 : i32, %arg10 : i32): @@ -37,7 +37,7 @@ theorem factorize_proof : factorize_before ⊑ factorize_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize2 all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize3 all_goals (try extract_goal ; sorry) @@ -134,7 +134,7 @@ theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize4 all_goals (try extract_goal ; sorry) @@ -167,7 +167,7 @@ theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize5 all_goals (try extract_goal ; sorry) @@ -201,7 +201,7 @@ theorem expand_proof : expand_before ⊑ expand_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN expand all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean index 02aec2443..713f7f5af 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhi1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdivhi1_statements - + def sdiv_i1_is_op0_before := [llvm| { ^0(%arg6 : i1, %arg7 : i1): @@ -33,7 +33,7 @@ theorem sdiv_i1_is_op0_proof : sdiv_i1_is_op0_before ⊑ sdiv_i1_is_op0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_i1_is_op0 all_goals (try extract_goal ; sorry) @@ -62,7 +62,7 @@ theorem srem_i1_is_zero_proof : srem_i1_is_zero_before ⊑ srem_i1_is_zero_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN srem_i1_is_zero all_goals (try extract_goal ; sorry) @@ -91,7 +91,7 @@ theorem urem_i1_is_zero_proof : urem_i1_is_zero_before ⊑ urem_i1_is_zero_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN urem_i1_is_zero all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean index a35d46c9e..d31b7ae4b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gdivhshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdivhshift_statements - + def t7_before := [llvm| { ^0(%arg209 : i32): @@ -36,7 +36,7 @@ theorem t7_proof : t7_before ⊑ t7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t7 all_goals (try extract_goal ; sorry) @@ -67,7 +67,7 @@ theorem t10_proof : t10_before ⊑ t10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t10 all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem sdiv_mul_shl_nsw_proof : sdiv_mul_shl_nsw_before ⊑ sdiv_mul_shl_nsw_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_mul_shl_nsw all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_mul_shl_nsw_exact_commute1 all_goals (try extract_goal ; sorry) @@ -164,7 +164,7 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_shl_nsw2_nuw all_goals (try extract_goal ; sorry) @@ -197,7 +197,7 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair_const all_goals (try extract_goal ; sorry) @@ -230,7 +230,7 @@ theorem sdiv_shl_pair1_proof : sdiv_shl_pair1_before ⊑ sdiv_shl_pair1_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair1 all_goals (try extract_goal ; sorry) @@ -263,7 +263,7 @@ theorem sdiv_shl_pair2_proof : sdiv_shl_pair2_before ⊑ sdiv_shl_pair2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair2 all_goals (try extract_goal ; sorry) @@ -296,7 +296,7 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair3 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean b/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean index 84b55a348..fd5264468 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gearly_constfold_changes_IR.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gearly_constfold_changes_IR_statements - + def foo_before := [llvm| { ^0(%arg0 : i32): @@ -38,7 +38,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean index 37558e5fa..6e78121aa 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gexact.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gexact.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gexact_statements - + def sdiv2_before := [llvm| { ^0(%arg39 : i32): @@ -36,7 +36,7 @@ theorem sdiv2_proof : sdiv2_before ⊑ sdiv2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv2 all_goals (try extract_goal ; sorry) @@ -66,7 +66,7 @@ theorem sdiv4_proof : sdiv4_before ⊑ sdiv4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv4 all_goals (try extract_goal ; sorry) @@ -99,7 +99,7 @@ theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv6 all_goals (try extract_goal ; sorry) @@ -134,7 +134,7 @@ theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_of_sdiv all_goals (try extract_goal ; sorry) @@ -167,7 +167,7 @@ theorem mul_of_sdiv_fail_ub_proof : mul_of_sdiv_fail_ub_before ⊑ mul_of_sdiv_f simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_of_sdiv_fail_ub all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean b/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean index 4e9effd2f..c14b57deb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_statements - + def t0_before := [llvm| { ^0(%arg22 : i32, %arg23 : i32): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem n12_proof : n12_before ⊑ n12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n12 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean index b6a5d893c..3bce55235 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfoldhsubhofhnothtohinchofhadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gfoldhsubhofhnothtohinchofhadd_statements - + def p0_scalar_before := [llvm| { ^0(%arg14 : i32, %arg15 : i32): @@ -38,7 +38,7 @@ theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p0_scalar all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean index 5307b0af9..3d6375adc 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gfreehinversion.lean @@ -12,7 +12,7 @@ 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): @@ -41,7 +41,7 @@ theorem lshr_not_nneg2_proof : lshr_not_nneg2_before ⊑ lshr_not_nneg2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_not_nneg2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean b/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean index 4392b4cfc..91ff0ab01 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ggethlowbitmaskhuptohandhincludinghbit.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ggethlowbitmaskhuptohandhincludinghbit_statements - + def t0_before := [llvm| { ^0(%arg18 : i8): @@ -41,7 +41,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1 all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem t9_nocse_proof : t9_nocse_before ⊑ t9_nocse_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t9_nocse all_goals (try extract_goal ; sorry) @@ -155,7 +155,7 @@ theorem t17_nocse_mismatching_x_proof : t17_nocse_mismatching_x_before ⊑ t17_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t17_nocse_mismatching_x all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean b/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean index 8f4fb5fbb..8958d3e2b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghighhbithsignmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghighhbithsignmask_statements - + def t0_before := [llvm| { ^0(%arg10 : i64): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem t0_exact_proof : t0_exact_before ⊑ t0_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0_exact all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t2 all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem t3_exact_proof : t3_exact_before ⊑ t3_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t3_exact all_goals (try extract_goal ; sorry) @@ -172,7 +172,7 @@ theorem n9_proof : n9_before ⊑ n9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n9 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean index c8c6c257b..9139a807c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculation.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnegationhouthofhbiashcalculation_statements - + def t0_before := [llvm| { ^0(%arg18 : i8, %arg19 : i8): @@ -41,7 +41,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem n7_proof : n7_before ⊑ n7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n7 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean index dea08259d..91d4b9d7b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnegationhouthofhbiashcalculationhwithhconstant_statements - + def t0_before := [llvm| { ^0(%arg7 : i8): @@ -39,7 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem n5_proof : n5_before ⊑ n5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n5 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean index 540811232..0d6ef8d1d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthnothfromhashrhoperand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnothfromhashrhoperand_statements - + def t0_before := [llvm| { ^0(%arg8 : i8, %arg9 : i8): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean b/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean index 140d53322..530f47642 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthxorhbyhconstanthfromhxorhbyhvalue_statements - + def t0_scalar_before := [llvm| { ^0(%arg10 : i8, %arg11 : i8): @@ -38,7 +38,7 @@ theorem t0_scalar_proof : t0_scalar_before ⊑ t0_scalar_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0_scalar all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean index bccf14b35..477ec9a72 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gicmphmul.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gicmphmul_statements - + def mul_of_pow2s_before := [llvm| { ^0(%arg79 : i32, %arg80 : i32): @@ -40,7 +40,7 @@ theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_of_pow2s all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean b/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean index a333028a3..943c686d5 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gicmphmulhand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gicmphmulhand_statements - + def pr40493_neg3_before := [llvm| { ^0(%arg15 : i32): @@ -40,7 +40,7 @@ theorem pr40493_neg3_proof : pr40493_neg3_before ⊑ pr40493_neg3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN pr40493_neg3 all_goals (try extract_goal ; sorry) @@ -76,7 +76,7 @@ theorem pr51551_demand3bits_proof : pr51551_demand3bits_before ⊑ pr51551_deman simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN pr51551_demand3bits all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean index 7dc972abc..a8882693a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/ginverthvariablehmaskhinhmaskedhmergehscalar.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ginverthvariablehmaskhinhmaskedhmergehscalar_statements - + def scalar_before := [llvm| { ^0(%arg43 : i4, %arg44 : i4, %arg45 : i4): @@ -40,7 +40,7 @@ theorem scalar_proof : scalar_before ⊑ scalar_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN scalar all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem in_constant_varx_mone_invmask_proof : in_constant_varx_mone_invmask_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_mone_invmask all_goals (try extract_goal ; sorry) @@ -110,7 +110,7 @@ theorem in_constant_varx_6_invmask_proof : in_constant_varx_6_invmask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_6_invmask all_goals (try extract_goal ; sorry) @@ -145,7 +145,7 @@ theorem in_constant_mone_vary_invmask_proof : in_constant_mone_vary_invmask_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_mone_vary_invmask all_goals (try extract_goal ; sorry) @@ -182,7 +182,7 @@ theorem in_constant_6_vary_invmask_proof : in_constant_6_vary_invmask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_6_vary_invmask all_goals (try extract_goal ; sorry) @@ -217,7 +217,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_0_0 all_goals (try extract_goal ; sorry) @@ -252,7 +252,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_0_1_0 all_goals (try extract_goal ; sorry) @@ -287,7 +287,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_1_0 all_goals (try extract_goal ; sorry) @@ -324,7 +324,7 @@ theorem commutativity_constant_varx_6_invmask_proof : commutativity_constant_var simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN commutativity_constant_varx_6_invmask all_goals (try extract_goal ; sorry) @@ -361,7 +361,7 @@ theorem commutativity_constant_6_vary_invmask_proof : commutativity_constant_6_v simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN commutativity_constant_6_vary_invmask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean b/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean index bca02aa09..7b5e82bfe 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/glowhbithsplat.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section glowhbithsplat_statements - + def t0_before := [llvm| { ^0(%arg12 : i8): @@ -39,7 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem t1_otherbitwidth_proof : t1_otherbitwidth_before ⊑ t1_otherbitwidth_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_otherbitwidth all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/glshr.lean b/SSA/Projects/InstCombine/tests/LLVM/glshr.lean index bd3933272..1a416e99f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/glshr.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/glshr.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section glshr_statements - + def lshr_exact_before := [llvm| { ^0(%arg183 : i8): @@ -41,7 +41,7 @@ theorem lshr_exact_proof : lshr_exact_before ⊑ lshr_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_exact all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add all_goals (try extract_goal ; sorry) @@ -108,7 +108,7 @@ theorem mul_splat_fold_proof : mul_splat_fold_before ⊑ mul_splat_fold_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold all_goals (try extract_goal ; sorry) @@ -140,7 +140,7 @@ theorem shl_add_lshr_flag_preservation_proof : shl_add_lshr_flag_preservation_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr_flag_preservation all_goals (try extract_goal ; sorry) @@ -172,7 +172,7 @@ theorem shl_add_lshr_proof : shl_add_lshr_before ⊑ shl_add_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr all_goals (try extract_goal ; sorry) @@ -206,7 +206,7 @@ theorem shl_add_lshr_comm_proof : shl_add_lshr_comm_before ⊑ shl_add_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr_comm all_goals (try extract_goal ; sorry) @@ -238,7 +238,7 @@ theorem shl_sub_lshr_proof : shl_sub_lshr_before ⊑ shl_sub_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr all_goals (try extract_goal ; sorry) @@ -270,7 +270,7 @@ theorem shl_sub_lshr_reverse_proof : shl_sub_lshr_reverse_before ⊑ shl_sub_lsh simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse all_goals (try extract_goal ; sorry) @@ -302,7 +302,7 @@ theorem shl_sub_lshr_reverse_no_nsw_proof : shl_sub_lshr_reverse_no_nsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse_no_nsw all_goals (try extract_goal ; sorry) @@ -334,7 +334,7 @@ theorem shl_sub_lshr_reverse_nsw_on_op1_proof : shl_sub_lshr_reverse_nsw_on_op1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse_nsw_on_op1 all_goals (try extract_goal ; sorry) @@ -366,7 +366,7 @@ theorem shl_or_lshr_proof : shl_or_lshr_before ⊑ shl_or_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_lshr all_goals (try extract_goal ; sorry) @@ -398,7 +398,7 @@ theorem shl_or_disjoint_lshr_proof : shl_or_disjoint_lshr_before ⊑ shl_or_disj simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_disjoint_lshr all_goals (try extract_goal ; sorry) @@ -430,7 +430,7 @@ theorem shl_or_lshr_comm_proof : shl_or_lshr_comm_before ⊑ shl_or_lshr_comm_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_lshr_comm all_goals (try extract_goal ; sorry) @@ -462,7 +462,7 @@ theorem shl_or_disjoint_lshr_comm_proof : shl_or_disjoint_lshr_comm_before ⊑ s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_disjoint_lshr_comm all_goals (try extract_goal ; sorry) @@ -494,7 +494,7 @@ theorem shl_xor_lshr_proof : shl_xor_lshr_before ⊑ shl_xor_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_lshr all_goals (try extract_goal ; sorry) @@ -526,7 +526,7 @@ theorem shl_xor_lshr_comm_proof : shl_xor_lshr_comm_before ⊑ shl_xor_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_lshr_comm all_goals (try extract_goal ; sorry) @@ -558,7 +558,7 @@ theorem shl_and_lshr_proof : shl_and_lshr_before ⊑ shl_and_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_lshr all_goals (try extract_goal ; sorry) @@ -590,7 +590,7 @@ theorem shl_and_lshr_comm_proof : shl_and_lshr_comm_before ⊑ shl_and_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_lshr_comm all_goals (try extract_goal ; sorry) @@ -622,7 +622,7 @@ theorem shl_lshr_and_exact_proof : shl_lshr_and_exact_before ⊑ shl_lshr_and_ex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_and_exact all_goals (try extract_goal ; sorry) @@ -656,7 +656,7 @@ theorem mul_splat_fold_no_nuw_proof : mul_splat_fold_no_nuw_before ⊑ mul_splat simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold_no_nuw all_goals (try extract_goal ; sorry) @@ -687,7 +687,7 @@ theorem mul_splat_fold_too_narrow_proof : mul_splat_fold_too_narrow_before ⊑ m simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold_too_narrow all_goals (try extract_goal ; sorry) @@ -721,7 +721,7 @@ theorem negative_and_odd_proof : negative_and_odd_before ⊑ negative_and_odd_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negative_and_odd all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean index 46a54794a..5fe402658 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmaskedhmergehadd_statements - + def p_before := [llvm| { ^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): @@ -42,7 +42,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask2 all_goals (try extract_goal ; sorry) @@ -153,7 +153,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative0 all_goals (try extract_goal ; sorry) @@ -190,7 +190,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative2 all_goals (try extract_goal ; sorry) @@ -227,7 +227,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative4 all_goals (try extract_goal ; sorry) @@ -264,7 +264,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask_commutative all_goals (try extract_goal ; sorry) @@ -301,7 +301,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n2_badmask all_goals (try extract_goal ; sorry) @@ -336,7 +336,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n3_constmask_samemask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean index 192f78d13..672de8e9a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehandhofhors.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmaskedhmergehandhofhors_statements - + def p_before := [llvm| { ^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): @@ -42,7 +42,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative2 all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n2_badmask all_goals (try extract_goal ; sorry) @@ -150,7 +150,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n3_constmask_samemask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean index d20ceca3a..dd7933075 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmaskedhmergehor_statements - + def p_before := [llvm| { ^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): @@ -42,7 +42,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative0 all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative2 all_goals (try extract_goal ; sorry) @@ -153,7 +153,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative4 all_goals (try extract_goal ; sorry) @@ -190,7 +190,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n2_badmask all_goals (try extract_goal ; sorry) @@ -224,7 +224,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n3_constmask_samemask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean index 6e1bc881f..400fd2f09 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmaskedhmergehxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmaskedhmergehxor_statements - + def p_before := [llvm| { ^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): @@ -42,7 +42,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask2 all_goals (try extract_goal ; sorry) @@ -153,7 +153,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative0 all_goals (try extract_goal ; sorry) @@ -190,7 +190,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative2 all_goals (try extract_goal ; sorry) @@ -227,7 +227,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative4 all_goals (try extract_goal ; sorry) @@ -264,7 +264,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask_commutative all_goals (try extract_goal ; sorry) @@ -301,7 +301,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n2_badmask all_goals (try extract_goal ; sorry) @@ -335,7 +335,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n3_constmask_samemask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean b/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean index 7f9241e5c..a395a19c6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmisch2002.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmisch2002_statements - + def missed_const_prop_2002h12h05_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem missed_const_prop_2002h12h05_proof : missed_const_prop_2002h12h05_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN missed_const_prop_2002h12h05 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean b/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean index ea1c1ec59..18e401125 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmul_fold.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmul_fold_statements - + def mul8_low_A0_B0_before := [llvm| { ^0(%arg60 : i8, %arg61 : i8): @@ -45,7 +45,7 @@ theorem mul8_low_A0_B0_proof : mul8_low_A0_B0_before ⊑ mul8_low_A0_B0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul8_low_A0_B0 all_goals (try extract_goal ; sorry) @@ -85,7 +85,7 @@ theorem mul8_low_proof : mul8_low_before ⊑ mul8_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul8_low all_goals (try extract_goal ; sorry) @@ -125,7 +125,7 @@ theorem mul16_low_proof : mul16_low_before ⊑ mul16_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul16_low all_goals (try extract_goal ; sorry) @@ -165,7 +165,7 @@ theorem mul32_low_proof : mul32_low_before ⊑ mul32_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul32_low all_goals (try extract_goal ; sorry) @@ -205,7 +205,7 @@ theorem mul64_low_proof : mul64_low_before ⊑ mul64_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul64_low all_goals (try extract_goal ; sorry) @@ -245,7 +245,7 @@ theorem mul128_low_proof : mul128_low_before ⊑ mul128_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul128_low all_goals (try extract_goal ; sorry) @@ -285,7 +285,7 @@ theorem mul130_low_proof : mul130_low_before ⊑ mul130_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul130_low all_goals (try extract_goal ; sorry) @@ -336,7 +336,7 @@ theorem mul9_low_proof : mul9_low_before ⊑ mul9_low_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul9_low all_goals (try extract_goal ; sorry) @@ -387,7 +387,7 @@ theorem mul16_low_miss_shift_amount_proof : mul16_low_miss_shift_amount_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul16_low_miss_shift_amount all_goals (try extract_goal ; sorry) @@ -438,7 +438,7 @@ theorem mul8_low_miss_half_width_proof : mul8_low_miss_half_width_before ⊑ mul simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul8_low_miss_half_width all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean index 735e0567c..7e69f532f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gmulhpow2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmulhpow2_statements - + def shl_add_log_may_cause_poison_pr62175_with_nuw_before := [llvm| { ^0(%arg2 : i8, %arg3 : i8): @@ -38,7 +38,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nuw_proof : shl_add_log_may_ca simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nuw all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nsw_proof : shl_add_log_may_ca simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nsw all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean b/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean index 03aebdeb4..8b013d3ba 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnegatedhbitmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gnegatedhbitmask_statements - + def neg_mask1_lshr_before := [llvm| { ^0(%arg22 : i8): @@ -42,7 +42,7 @@ theorem neg_mask1_lshr_proof : neg_mask1_lshr_before ⊑ neg_mask1_lshr_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN neg_mask1_lshr all_goals (try extract_goal ; sorry) @@ -80,7 +80,7 @@ theorem sub_mask1_lshr_proof : sub_mask1_lshr_before ⊑ sub_mask1_lshr_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_mask1_lshr all_goals (try extract_goal ; sorry) @@ -119,7 +119,7 @@ theorem neg_mask2_lshr_proof : neg_mask2_lshr_before ⊑ neg_mask2_lshr_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN neg_mask2_lshr all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean index 3824b455c..3f5040154 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnot.lean @@ -12,7 +12,7 @@ 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): @@ -35,7 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -67,7 +67,7 @@ theorem not_ashr_not_proof : not_ashr_not_before ⊑ not_ashr_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_ashr_not all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem not_ashr_const_proof : not_ashr_const_before ⊑ not_ashr_const_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_ashr_const all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem not_lshr_const_proof : not_lshr_const_before ⊑ not_lshr_const_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_lshr_const all_goals (try extract_goal ; sorry) @@ -166,7 +166,7 @@ theorem not_sub_proof : not_sub_before ⊑ not_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_sub all_goals (try extract_goal ; sorry) @@ -199,7 +199,7 @@ theorem not_add_proof : not_add_before ⊑ not_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_add all_goals (try extract_goal ; sorry) @@ -235,7 +235,7 @@ theorem not_or_neg_proof : not_or_neg_before ⊑ not_or_neg_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_neg all_goals (try extract_goal ; sorry) @@ -271,7 +271,7 @@ theorem test_invert_demorgan_and2_proof : test_invert_demorgan_and2_before ⊑ t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_invert_demorgan_and2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean index 350e46720..95b7c9cd2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gnothadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gnothadd_statements - + def basic_before := [llvm| { ^0(%arg25 : i8, %arg26 : i8): @@ -37,7 +37,7 @@ theorem basic_proof : basic_before ⊑ basic_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem basic_com_add_proof : basic_com_add_before ⊑ basic_com_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_com_add all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem basic_preserve_nsw_proof : basic_preserve_nsw_before ⊑ basic_preserve_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nsw all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem basic_preserve_nuw_proof : basic_preserve_nuw_before ⊑ basic_preserve_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nuw all_goals (try extract_goal ; sorry) @@ -165,7 +165,7 @@ theorem basic_preserve_nuw_nsw_proof : basic_preserve_nuw_nsw_before ⊑ basic_p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nuw_nsw all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean index 039cf5d55..c621724c0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhshiftedhmasks.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gorhshiftedhmasks_statements - + def or_and_shifts1_before := [llvm| { ^0(%arg14 : i32): @@ -50,7 +50,7 @@ theorem or_and_shifts1_proof : or_and_shifts1_before ⊑ or_and_shifts1_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_shifts1 all_goals (try extract_goal ; sorry) @@ -95,7 +95,7 @@ theorem or_and_shift_shift_and_proof : or_and_shift_shift_and_before ⊑ or_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_shift_shift_and all_goals (try extract_goal ; sorry) @@ -147,7 +147,7 @@ theorem multiuse1_proof : multiuse1_before ⊑ multiuse1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN multiuse1 all_goals (try extract_goal ; sorry) @@ -210,7 +210,7 @@ theorem multiuse2_proof : multiuse2_before ⊑ multiuse2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN multiuse2 all_goals (try extract_goal ; sorry) @@ -265,7 +265,7 @@ theorem multiuse3_proof : multiuse3_before ⊑ multiuse3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN multiuse3 all_goals (try extract_goal ; sorry) @@ -302,7 +302,7 @@ theorem shl_mask_proof : shl_mask_before ⊑ shl_mask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_mask all_goals (try extract_goal ; sorry) @@ -339,7 +339,7 @@ theorem shl_mask_wrong_shl_const_proof : shl_mask_wrong_shl_const_before ⊑ shl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_mask_wrong_shl_const all_goals (try extract_goal ; sorry) @@ -376,7 +376,7 @@ theorem shl_mask_weird_type_proof : shl_mask_weird_type_before ⊑ shl_mask_weir simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_mask_weird_type all_goals (try extract_goal ; sorry) @@ -417,7 +417,7 @@ theorem shl_mul_mask_proof : shl_mul_mask_before ⊑ shl_mul_mask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_mul_mask all_goals (try extract_goal ; sorry) @@ -458,7 +458,7 @@ theorem shl_mul_mask_wrong_mul_const_proof : shl_mul_mask_wrong_mul_const_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_mul_mask_wrong_mul_const all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean index 385b196d5..d20bb9f93 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gorhxor_statements - + def test1_before := [llvm| { ^0(%arg232 : i32, %arg233 : i32): @@ -39,7 +39,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -107,7 +107,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -141,7 +141,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -175,7 +175,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -209,7 +209,7 @@ theorem test5_commuted_x_y_proof : test5_commuted_x_y_before ⊑ test5_commuted_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5_commuted_x_y all_goals (try extract_goal ; sorry) @@ -239,7 +239,7 @@ theorem xor_common_op_commute0_proof : xor_common_op_commute0_before ⊑ xor_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -273,7 +273,7 @@ theorem xor_common_op_commute2_proof : xor_common_op_commute2_before ⊑ xor_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_common_op_commute2 all_goals (try extract_goal ; sorry) @@ -309,7 +309,7 @@ theorem xor_common_op_commute3_proof : xor_common_op_commute3_before ⊑ xor_com simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_common_op_commute3 all_goals (try extract_goal ; sorry) @@ -343,7 +343,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -377,7 +377,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -414,7 +414,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -451,7 +451,7 @@ theorem test10_commuted_proof : test10_commuted_before ⊑ test10_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10_commuted all_goals (try extract_goal ; sorry) @@ -484,7 +484,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -517,7 +517,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -550,7 +550,7 @@ theorem test12_commuted_proof : test12_commuted_before ⊑ test12_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12_commuted all_goals (try extract_goal ; sorry) @@ -581,7 +581,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -615,7 +615,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 all_goals (try extract_goal ; sorry) @@ -649,7 +649,7 @@ theorem test14_commuted_proof : test14_commuted_before ⊑ test14_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14_commuted all_goals (try extract_goal ; sorry) @@ -683,7 +683,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 all_goals (try extract_goal ; sorry) @@ -717,7 +717,7 @@ theorem test15_commuted_proof : test15_commuted_before ⊑ test15_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15_commuted all_goals (try extract_goal ; sorry) @@ -753,7 +753,7 @@ theorem or_and_xor_not_constant_commute0_proof : or_and_xor_not_constant_commute simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_xor_not_constant_commute0 all_goals (try extract_goal ; sorry) @@ -789,7 +789,7 @@ theorem or_and_xor_not_constant_commute1_proof : or_and_xor_not_constant_commute simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_and_xor_not_constant_commute1 all_goals (try extract_goal ; sorry) @@ -826,7 +826,7 @@ theorem not_or_xor_proof : not_or_xor_before ⊑ not_or_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_or_xor all_goals (try extract_goal ; sorry) @@ -861,7 +861,7 @@ theorem xor_or_proof : xor_or_before ⊑ xor_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or all_goals (try extract_goal ; sorry) @@ -896,7 +896,7 @@ theorem xor_or2_proof : xor_or2_before ⊑ xor_or2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or2 all_goals (try extract_goal ; sorry) @@ -933,7 +933,7 @@ theorem xor_or_xor_proof : xor_or_xor_before ⊑ xor_or_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor all_goals (try extract_goal ; sorry) @@ -970,7 +970,7 @@ theorem or_xor_or_proof : or_xor_or_before ⊑ or_xor_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_or all_goals (try extract_goal ; sorry) @@ -1009,7 +1009,7 @@ theorem test17_proof : test17_before ⊑ test17_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test17 all_goals (try extract_goal ; sorry) @@ -1048,7 +1048,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test18 all_goals (try extract_goal ; sorry) @@ -1084,7 +1084,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19 all_goals (try extract_goal ; sorry) @@ -1120,7 +1120,7 @@ theorem test20_proof : test20_before ⊑ test20_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test20 all_goals (try extract_goal ; sorry) @@ -1156,7 +1156,7 @@ theorem test21_proof : test21_before ⊑ test21_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test21 all_goals (try extract_goal ; sorry) @@ -1192,7 +1192,7 @@ theorem test22_proof : test22_before ⊑ test22_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test22 all_goals (try extract_goal ; sorry) @@ -1228,7 +1228,7 @@ theorem test23_proof : test23_before ⊑ test23_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test23 all_goals (try extract_goal ; sorry) @@ -1263,7 +1263,7 @@ theorem PR45977_f1_proof : PR45977_f1_before ⊑ PR45977_f1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR45977_f1 all_goals (try extract_goal ; sorry) @@ -1297,7 +1297,7 @@ theorem PR45977_f2_proof : PR45977_f2_before ⊑ PR45977_f2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR45977_f2 all_goals (try extract_goal ; sorry) @@ -1329,7 +1329,7 @@ theorem or_xor_common_op_commute0_proof : or_xor_common_op_commute0_before ⊑ o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -1361,7 +1361,7 @@ theorem or_xor_common_op_commute5_proof : or_xor_common_op_commute5_before ⊑ o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_common_op_commute5 all_goals (try extract_goal ; sorry) @@ -1393,7 +1393,7 @@ theorem or_xor_common_op_commute6_proof : or_xor_common_op_commute6_before ⊑ o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_common_op_commute6 all_goals (try extract_goal ; sorry) @@ -1425,7 +1425,7 @@ theorem or_xor_common_op_commute7_proof : or_xor_common_op_commute7_before ⊑ o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_common_op_commute7 all_goals (try extract_goal ; sorry) @@ -1461,7 +1461,7 @@ theorem or_not_xor_common_op_commute0_proof : or_not_xor_common_op_commute0_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -1501,7 +1501,7 @@ theorem or_not_xor_common_op_commute2_proof : or_not_xor_common_op_commute2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute2 all_goals (try extract_goal ; sorry) @@ -1541,7 +1541,7 @@ theorem or_not_xor_common_op_commute3_proof : or_not_xor_common_op_commute3_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute3 all_goals (try extract_goal ; sorry) @@ -1577,7 +1577,7 @@ theorem or_not_xor_common_op_commute5_proof : or_not_xor_common_op_commute5_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute5 all_goals (try extract_goal ; sorry) @@ -1617,7 +1617,7 @@ theorem or_not_xor_common_op_commute6_proof : or_not_xor_common_op_commute6_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute6 all_goals (try extract_goal ; sorry) @@ -1657,7 +1657,7 @@ theorem or_not_xor_common_op_commute7_proof : or_not_xor_common_op_commute7_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_not_xor_common_op_commute7 all_goals (try extract_goal ; sorry) @@ -1693,7 +1693,7 @@ theorem or_nand_xor_common_op_commute0_proof : or_nand_xor_common_op_commute0_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_nand_xor_common_op_commute0 all_goals (try extract_goal ; sorry) @@ -1726,7 +1726,7 @@ theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR75692_1 all_goals (try extract_goal ; sorry) @@ -1760,7 +1760,7 @@ theorem or_xor_not_proof : or_xor_not_before ⊑ or_xor_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_not all_goals (try extract_goal ; sorry) @@ -1796,7 +1796,7 @@ theorem or_xor_and_commuted1_proof : or_xor_and_commuted1_before ⊑ or_xor_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_and_commuted1 all_goals (try extract_goal ; sorry) @@ -1834,7 +1834,7 @@ theorem or_xor_and_commuted2_proof : or_xor_and_commuted2_before ⊑ or_xor_and_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_and_commuted2 all_goals (try extract_goal ; sorry) @@ -1875,7 +1875,7 @@ theorem or_xor_tree_0000_proof : or_xor_tree_0000_before ⊑ or_xor_tree_0000_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0000 all_goals (try extract_goal ; sorry) @@ -1916,7 +1916,7 @@ theorem or_xor_tree_0001_proof : or_xor_tree_0001_before ⊑ or_xor_tree_0001_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0001 all_goals (try extract_goal ; sorry) @@ -1957,7 +1957,7 @@ theorem or_xor_tree_0010_proof : or_xor_tree_0010_before ⊑ or_xor_tree_0010_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0010 all_goals (try extract_goal ; sorry) @@ -1998,7 +1998,7 @@ theorem or_xor_tree_0011_proof : or_xor_tree_0011_before ⊑ or_xor_tree_0011_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0011 all_goals (try extract_goal ; sorry) @@ -2039,7 +2039,7 @@ theorem or_xor_tree_0100_proof : or_xor_tree_0100_before ⊑ or_xor_tree_0100_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0100 all_goals (try extract_goal ; sorry) @@ -2080,7 +2080,7 @@ theorem or_xor_tree_0101_proof : or_xor_tree_0101_before ⊑ or_xor_tree_0101_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0101 all_goals (try extract_goal ; sorry) @@ -2121,7 +2121,7 @@ theorem or_xor_tree_0110_proof : or_xor_tree_0110_before ⊑ or_xor_tree_0110_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0110 all_goals (try extract_goal ; sorry) @@ -2162,7 +2162,7 @@ theorem or_xor_tree_0111_proof : or_xor_tree_0111_before ⊑ or_xor_tree_0111_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_0111 all_goals (try extract_goal ; sorry) @@ -2203,7 +2203,7 @@ theorem or_xor_tree_1000_proof : or_xor_tree_1000_before ⊑ or_xor_tree_1000_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1000 all_goals (try extract_goal ; sorry) @@ -2244,7 +2244,7 @@ theorem or_xor_tree_1001_proof : or_xor_tree_1001_before ⊑ or_xor_tree_1001_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1001 all_goals (try extract_goal ; sorry) @@ -2285,7 +2285,7 @@ theorem or_xor_tree_1010_proof : or_xor_tree_1010_before ⊑ or_xor_tree_1010_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1010 all_goals (try extract_goal ; sorry) @@ -2326,7 +2326,7 @@ theorem or_xor_tree_1011_proof : or_xor_tree_1011_before ⊑ or_xor_tree_1011_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1011 all_goals (try extract_goal ; sorry) @@ -2367,7 +2367,7 @@ theorem or_xor_tree_1100_proof : or_xor_tree_1100_before ⊑ or_xor_tree_1100_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1100 all_goals (try extract_goal ; sorry) @@ -2408,7 +2408,7 @@ theorem or_xor_tree_1101_proof : or_xor_tree_1101_before ⊑ or_xor_tree_1101_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1101 all_goals (try extract_goal ; sorry) @@ -2449,7 +2449,7 @@ theorem or_xor_tree_1110_proof : or_xor_tree_1110_before ⊑ or_xor_tree_1110_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1110 all_goals (try extract_goal ; sorry) @@ -2490,7 +2490,7 @@ theorem or_xor_tree_1111_proof : or_xor_tree_1111_before ⊑ or_xor_tree_1111_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_tree_1111 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean index 1c55c9ef7..976eed23f 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gorhxorhxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gorhxorhxor_statements - + def or_xor_xor_normal_variant1_before := [llvm| { ^0(%arg17 : i1, %arg18 : i1): @@ -37,7 +37,7 @@ theorem or_xor_xor_normal_variant1_proof : or_xor_xor_normal_variant1_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_xor_normal_variant1 all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem or_xor_xor_normal_variant2_proof : or_xor_xor_normal_variant2_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_xor_normal_variant2 all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem or_xor_xor_normal_variant3_proof : or_xor_xor_normal_variant3_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_xor_normal_variant3 all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem or_xor_xor_normal_variant4_proof : or_xor_xor_normal_variant4_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_xor_normal_variant4 all_goals (try extract_goal ; sorry) @@ -167,7 +167,7 @@ theorem or_xor_xor_normal_binops_proof : or_xor_xor_normal_binops_before ⊑ or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_xor_xor_normal_binops all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean b/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean index ef1ee39f7..28d3014cb 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpr14365.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gpr14365_statements - + def test0_before := [llvm| { ^0(%arg3 : i32): @@ -41,7 +41,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test0 all_goals (try extract_goal ; sorry) @@ -81,7 +81,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean b/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean index a4c0d86e6..f14d2794b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpr53357.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gpr53357_statements - + def src_before := [llvm| { ^0(%arg16 : i32, %arg17 : i32): @@ -40,7 +40,7 @@ theorem src_proof : src_before ⊑ src_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem src2_proof : src2_before ⊑ src2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src2 all_goals (try extract_goal ; sorry) @@ -111,7 +111,7 @@ theorem src3_proof : src3_before ⊑ src3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src3 all_goals (try extract_goal ; sorry) @@ -146,7 +146,7 @@ theorem src4_proof : src4_before ⊑ src4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src4 all_goals (try extract_goal ; sorry) @@ -181,7 +181,7 @@ theorem src5_proof : src5_before ⊑ src5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src5 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean b/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean index 1a96dc934..5bb89bb7b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpreservedhanalyses.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gpreservedhanalyses_statements - + def test_before := [llvm| { ^0(%arg0 : i32): @@ -36,7 +36,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean index 43cf0c617..a67313dc2 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gpullhbinophthroughhshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gpullhbinophthroughhshift_statements - + def and_signbit_shl_before := [llvm| { ^0(%arg23 : i32): @@ -40,7 +40,7 @@ theorem and_signbit_shl_proof : and_signbit_shl_before ⊑ and_signbit_shl_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_signbit_shl all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem and_nosignbit_shl_proof : and_nosignbit_shl_before ⊑ and_nosignbit_shl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_nosignbit_shl all_goals (try extract_goal ; sorry) @@ -110,7 +110,7 @@ theorem or_signbit_shl_proof : or_signbit_shl_before ⊑ or_signbit_shl_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_signbit_shl all_goals (try extract_goal ; sorry) @@ -145,7 +145,7 @@ theorem or_nosignbit_shl_proof : or_nosignbit_shl_before ⊑ or_nosignbit_shl_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_nosignbit_shl all_goals (try extract_goal ; sorry) @@ -180,7 +180,7 @@ theorem xor_signbit_shl_proof : xor_signbit_shl_before ⊑ xor_signbit_shl_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_signbit_shl all_goals (try extract_goal ; sorry) @@ -215,7 +215,7 @@ theorem xor_nosignbit_shl_proof : xor_nosignbit_shl_before ⊑ xor_nosignbit_shl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_nosignbit_shl all_goals (try extract_goal ; sorry) @@ -250,7 +250,7 @@ theorem add_signbit_shl_proof : add_signbit_shl_before ⊑ add_signbit_shl_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_signbit_shl all_goals (try extract_goal ; sorry) @@ -285,7 +285,7 @@ theorem add_nosignbit_shl_proof : add_nosignbit_shl_before ⊑ add_nosignbit_shl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nosignbit_shl all_goals (try extract_goal ; sorry) @@ -320,7 +320,7 @@ theorem and_signbit_lshr_proof : and_signbit_lshr_before ⊑ and_signbit_lshr_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_signbit_lshr all_goals (try extract_goal ; sorry) @@ -355,7 +355,7 @@ theorem and_nosignbit_lshr_proof : and_nosignbit_lshr_before ⊑ and_nosignbit_l simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_nosignbit_lshr all_goals (try extract_goal ; sorry) @@ -390,7 +390,7 @@ theorem or_signbit_lshr_proof : or_signbit_lshr_before ⊑ or_signbit_lshr_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_signbit_lshr all_goals (try extract_goal ; sorry) @@ -425,7 +425,7 @@ theorem or_nosignbit_lshr_proof : or_nosignbit_lshr_before ⊑ or_nosignbit_lshr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_nosignbit_lshr all_goals (try extract_goal ; sorry) @@ -460,7 +460,7 @@ theorem xor_signbit_lshr_proof : xor_signbit_lshr_before ⊑ xor_signbit_lshr_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_signbit_lshr all_goals (try extract_goal ; sorry) @@ -495,7 +495,7 @@ theorem xor_nosignbit_lshr_proof : xor_nosignbit_lshr_before ⊑ xor_nosignbit_l simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_nosignbit_lshr all_goals (try extract_goal ; sorry) @@ -530,7 +530,7 @@ theorem and_signbit_ashr_proof : and_signbit_ashr_before ⊑ and_signbit_ashr_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_signbit_ashr all_goals (try extract_goal ; sorry) @@ -565,7 +565,7 @@ theorem and_nosignbit_ashr_proof : and_nosignbit_ashr_before ⊑ and_nosignbit_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_nosignbit_ashr all_goals (try extract_goal ; sorry) @@ -600,7 +600,7 @@ theorem or_signbit_ashr_proof : or_signbit_ashr_before ⊑ or_signbit_ashr_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_signbit_ashr all_goals (try extract_goal ; sorry) @@ -635,7 +635,7 @@ theorem or_nosignbit_ashr_proof : or_nosignbit_ashr_before ⊑ or_nosignbit_ashr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_nosignbit_ashr all_goals (try extract_goal ; sorry) @@ -670,7 +670,7 @@ theorem xor_signbit_ashr_proof : xor_signbit_ashr_before ⊑ xor_signbit_ashr_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_signbit_ashr all_goals (try extract_goal ; sorry) @@ -705,7 +705,7 @@ theorem xor_nosignbit_ashr_proof : xor_nosignbit_ashr_before ⊑ xor_nosignbit_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_nosignbit_ashr all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean b/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean index 1c35a50c8..cbdbcfdbe 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/greassociatehnuw.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section greassociatehnuw_statements - + def reassoc_add_nuw_before := [llvm| { ^0(%arg26 : i32): @@ -38,7 +38,7 @@ theorem reassoc_add_nuw_proof : reassoc_add_nuw_before ⊑ reassoc_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_add_nuw all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem reassoc_sub_nuw_proof : reassoc_sub_nuw_before ⊑ reassoc_sub_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_sub_nuw all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem reassoc_mul_nuw_proof : reassoc_mul_nuw_before ⊑ reassoc_mul_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_mul_nuw all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem no_reassoc_add_nuw_none_proof : no_reassoc_add_nuw_none_before ⊑ no_re simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN no_reassoc_add_nuw_none all_goals (try extract_goal ; sorry) @@ -170,7 +170,7 @@ theorem no_reassoc_add_none_nuw_proof : no_reassoc_add_none_nuw_before ⊑ no_re simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN no_reassoc_add_none_nuw all_goals (try extract_goal ; sorry) @@ -205,7 +205,7 @@ theorem reassoc_x2_add_nuw_proof : reassoc_x2_add_nuw_before ⊑ reassoc_x2_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_add_nuw all_goals (try extract_goal ; sorry) @@ -240,7 +240,7 @@ theorem reassoc_x2_mul_nuw_proof : reassoc_x2_mul_nuw_before ⊑ reassoc_x2_mul_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_mul_nuw all_goals (try extract_goal ; sorry) @@ -275,7 +275,7 @@ theorem reassoc_x2_sub_nuw_proof : reassoc_x2_sub_nuw_before ⊑ reassoc_x2_sub_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_sub_nuw all_goals (try extract_goal ; sorry) @@ -307,7 +307,7 @@ theorem tryFactorization_add_nuw_mul_nuw_proof : tryFactorization_add_nuw_mul_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw all_goals (try extract_goal ; sorry) @@ -339,7 +339,7 @@ theorem tryFactorization_add_nuw_mul_nuw_int_max_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_int_max all_goals (try extract_goal ; sorry) @@ -371,7 +371,7 @@ theorem tryFactorization_add_mul_nuw_proof : tryFactorization_add_mul_nuw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_mul_nuw all_goals (try extract_goal ; sorry) @@ -403,7 +403,7 @@ theorem tryFactorization_add_nuw_mul_proof : tryFactorization_add_nuw_mul_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul all_goals (try extract_goal ; sorry) @@ -435,7 +435,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_proof : tryFactorization_ad simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_nuw_var all_goals (try extract_goal ; sorry) @@ -467,7 +467,7 @@ theorem tryFactorization_add_nuw_mul_mul_nuw_var_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_mul_nuw_var all_goals (try extract_goal ; sorry) @@ -499,7 +499,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_var_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_var all_goals (try extract_goal ; sorry) @@ -531,7 +531,7 @@ theorem tryFactorization_add_mul_nuw_mul_var_proof : tryFactorization_add_mul_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_mul_nuw_mul_var all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean b/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean index 3be333c35..d10cee9ec 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gredundanthrighthshifthinputhmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gredundanthrighthshifthinputhmasking_statements - + def t0_lshr_before := [llvm| { ^0(%arg30 : i32, %arg31 : i32): @@ -40,7 +40,7 @@ theorem t0_lshr_proof : t0_lshr_before ⊑ t0_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0_lshr all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem t1_sshr_proof : t1_sshr_before ⊑ t1_sshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_sshr all_goals (try extract_goal ; sorry) @@ -110,7 +110,7 @@ theorem n13_proof : n13_before ⊑ n13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n13 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/grem.lean b/SSA/Projects/InstCombine/tests/LLVM/grem.lean index 3591bd39c..9b4b4b754 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/grem.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/grem.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section grem_statements - + def test1_before := [llvm| { ^0(%arg104 : i32): @@ -35,7 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -66,7 +66,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -98,7 +98,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -130,7 +130,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -162,7 +162,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -196,7 +196,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -228,7 +228,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -257,7 +257,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -297,7 +297,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 all_goals (try extract_goal ; sorry) @@ -338,7 +338,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19 all_goals (try extract_goal ; sorry) @@ -379,7 +379,7 @@ theorem test19_commutative0_proof : test19_commutative0_before ⊑ test19_commut simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19_commutative0 all_goals (try extract_goal ; sorry) @@ -420,7 +420,7 @@ theorem test19_commutative1_proof : test19_commutative1_before ⊑ test19_commut simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19_commutative1 all_goals (try extract_goal ; sorry) @@ -461,7 +461,7 @@ theorem test19_commutative2_proof : test19_commutative2_before ⊑ test19_commut simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19_commutative2 all_goals (try extract_goal ; sorry) @@ -494,7 +494,7 @@ theorem test22_proof : test22_before ⊑ test22_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test22 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean index da2edf4a3..99510b037 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivh1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivh1_statements - + def c_before := [llvm| { ^0(%arg0 : i32): @@ -38,7 +38,7 @@ theorem c_proof : c_before ⊑ c_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean index 5a4aaef96..86099d35c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhcanonicalize_statements - + def test_sdiv_canonicalize_op0_before := [llvm| { ^0(%arg15 : i32, %arg16 : i32): @@ -38,7 +38,7 @@ theorem test_sdiv_canonicalize_op0_proof : test_sdiv_canonicalize_op0_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_sdiv_canonicalize_op0 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem test_sdiv_canonicalize_op0_exact_proof : test_sdiv_canonicalize_op0_exac simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_sdiv_canonicalize_op0_exact all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean index 9c85173a8..d6ebd91b9 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhnegativehpowerhofhtwo.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhexacthbyhnegativehpowerhofhtwo_statements - + def t0_before := [llvm| { ^0(%arg15 : i8): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask all_goals (try extract_goal ; sorry) @@ -109,7 +109,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask_limit all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean index 59f7b6f9f..a553cec2b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsdivhexacthbyhpowerhofhtwo.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhexacthbyhpowerhofhtwo_statements - + def t0_before := [llvm| { ^0(%arg22 : i8): @@ -36,7 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -67,7 +67,7 @@ theorem shl1_nsw_proof : shl1_nsw_before ⊑ shl1_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl1_nsw all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem shl1_nsw_not_exact_proof : shl1_nsw_not_exact_before ⊑ shl1_nsw_not_ex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl1_nsw_not_exact all_goals (try extract_goal ; sorry) @@ -135,7 +135,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask all_goals (try extract_goal ; sorry) @@ -168,7 +168,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask_limit all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean index 3378de639..057be1c09 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsethlowbitshmaskhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsethlowbitshmaskhcanonicalize_statements - + def shl_add_before := [llvm| { ^0(%arg26 : i32): @@ -39,7 +39,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add all_goals (try extract_goal ; sorry) @@ -73,7 +73,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw all_goals (try extract_goal ; sorry) @@ -105,7 +105,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem shl_add_nsw_nuw_proof : shl_add_nsw_nuw_before ⊑ shl_add_nsw_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw_nuw all_goals (try extract_goal ; sorry) @@ -171,7 +171,7 @@ theorem shl_nsw_add_proof : shl_nsw_add_before ⊑ shl_nsw_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add all_goals (try extract_goal ; sorry) @@ -205,7 +205,7 @@ theorem shl_nsw_add_nsw_proof : shl_nsw_add_nsw_before ⊑ shl_nsw_add_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nsw all_goals (try extract_goal ; sorry) @@ -237,7 +237,7 @@ theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nuw all_goals (try extract_goal ; sorry) @@ -269,7 +269,7 @@ theorem shl_nsw_add_nsw_nuw_proof : shl_nsw_add_nsw_nuw_before ⊑ shl_nsw_add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nsw_nuw all_goals (try extract_goal ; sorry) @@ -303,7 +303,7 @@ theorem shl_nuw_add_proof : shl_nuw_add_before ⊑ shl_nuw_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add all_goals (try extract_goal ; sorry) @@ -337,7 +337,7 @@ theorem shl_nuw_add_nsw_proof : shl_nuw_add_nsw_before ⊑ shl_nuw_add_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nsw all_goals (try extract_goal ; sorry) @@ -369,7 +369,7 @@ theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nuw all_goals (try extract_goal ; sorry) @@ -401,7 +401,7 @@ theorem shl_nuw_add_nsw_nuw_proof : shl_nuw_add_nsw_nuw_before ⊑ shl_nuw_add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nsw_nuw all_goals (try extract_goal ; sorry) @@ -435,7 +435,7 @@ theorem shl_nsw_nuw_add_proof : shl_nsw_nuw_add_before ⊑ shl_nsw_nuw_add_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add all_goals (try extract_goal ; sorry) @@ -469,7 +469,7 @@ theorem shl_nsw_nuw_add_nsw_proof : shl_nsw_nuw_add_nsw_before ⊑ shl_nsw_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nsw all_goals (try extract_goal ; sorry) @@ -501,7 +501,7 @@ theorem shl_nsw_nuw_add_nuw_proof : shl_nsw_nuw_add_nuw_before ⊑ shl_nsw_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nuw all_goals (try extract_goal ; sorry) @@ -533,7 +533,7 @@ theorem shl_nsw_nuw_add_nsw_nuw_proof : shl_nsw_nuw_add_nsw_nuw_before ⊑ shl_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nsw_nuw all_goals (try extract_goal ; sorry) @@ -566,7 +566,7 @@ theorem bad_add0_proof : bad_add0_before ⊑ bad_add0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add0 all_goals (try extract_goal ; sorry) @@ -599,7 +599,7 @@ theorem bad_add1_proof : bad_add1_before ⊑ bad_add1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add1 all_goals (try extract_goal ; sorry) @@ -634,7 +634,7 @@ theorem bad_add2_proof : bad_add2_before ⊑ bad_add2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean index 4b10fc8fb..97a8297d3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthadd_statements - + def ashr_C1_add_A_C2_i32_before := [llvm| { ^0(%arg77 : i32): @@ -39,7 +39,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_C1_add_A_C2_i32 all_goals (try extract_goal ; sorry) @@ -76,7 +76,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_C1_add_A_C2_i32 all_goals (try extract_goal ; sorry) @@ -109,7 +109,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw all_goals (try extract_goal ; sorry) @@ -141,7 +141,7 @@ theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nuw all_goals (try extract_goal ; sorry) @@ -174,7 +174,7 @@ theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nuw all_goals (try extract_goal ; sorry) @@ -207,7 +207,7 @@ theorem lshr_exact_add_nuw_proof : lshr_exact_add_nuw_before ⊑ lshr_exact_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_exact_add_nuw all_goals (try extract_goal ; sorry) @@ -240,7 +240,7 @@ theorem ashr_exact_add_nuw_proof : ashr_exact_add_nuw_before ⊑ ashr_exact_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_exact_add_nuw all_goals (try extract_goal ; sorry) @@ -273,7 +273,7 @@ theorem lshr_exact_add_negative_shift_positive_proof : lshr_exact_add_negative_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_exact_add_negative_shift_positive all_goals (try extract_goal ; sorry) @@ -306,7 +306,7 @@ theorem ashr_exact_add_negative_shift_negative_proof : ashr_exact_add_negative_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_exact_add_negative_shift_negative all_goals (try extract_goal ; sorry) @@ -339,7 +339,7 @@ theorem shl_nsw_add_negative_proof : shl_nsw_add_negative_before ⊑ shl_nsw_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_negative all_goals (try extract_goal ; sorry) @@ -374,7 +374,7 @@ theorem shl_nsw_add_negative_invalid_constant3_proof : shl_nsw_add_negative_inva simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_negative_invalid_constant3 all_goals (try extract_goal ; sorry) @@ -413,7 +413,7 @@ theorem lshr_16_add_known_16_leading_zeroes_proof : lshr_16_add_known_16_leading simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_16_add_known_16_leading_zeroes all_goals (try extract_goal ; sorry) @@ -454,7 +454,7 @@ theorem lshr_16_add_not_known_16_leading_zeroes_proof : lshr_16_add_not_known_16 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_16_add_not_known_16_leading_zeroes all_goals (try extract_goal ; sorry) @@ -493,7 +493,7 @@ theorem lshr_32_add_known_32_leading_zeroes_proof : lshr_32_add_known_32_leading simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_32_add_known_32_leading_zeroes all_goals (try extract_goal ; sorry) @@ -534,7 +534,7 @@ theorem lshr_32_add_not_known_32_leading_zeroes_proof : lshr_32_add_not_known_32 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_32_add_not_known_32_leading_zeroes all_goals (try extract_goal ; sorry) @@ -567,7 +567,7 @@ theorem shl_fold_or_disjoint_cnt_proof : shl_fold_or_disjoint_cnt_before ⊑ shl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_fold_or_disjoint_cnt all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean index f14f11ed2..9b4a89a3e 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthaddhinseltpoison.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthaddhinseltpoison_statements - + def ashr_C1_add_A_C2_i32_before := [llvm| { ^0(%arg7 : i32): @@ -39,7 +39,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_C1_add_A_C2_i32 all_goals (try extract_goal ; sorry) @@ -76,7 +76,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_C1_add_A_C2_i32 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean index ed1c3bea3..00c1f670a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthamounthreassociation.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthamounthreassociation_statements - + def t0_before := [llvm| { ^0(%arg43 : i32, %arg44 : i32): @@ -40,7 +40,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem t6_shl_proof : t6_shl_before ⊑ t6_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t6_shl all_goals (try extract_goal ; sorry) @@ -110,7 +110,7 @@ theorem t7_ashr_proof : t7_ashr_before ⊑ t7_ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t7_ashr all_goals (try extract_goal ; sorry) @@ -145,7 +145,7 @@ theorem t8_lshr_exact_flag_preservation_proof : t8_lshr_exact_flag_preservation_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t8_lshr_exact_flag_preservation all_goals (try extract_goal ; sorry) @@ -180,7 +180,7 @@ theorem t9_ashr_exact_flag_preservation_proof : t9_ashr_exact_flag_preservation_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t9_ashr_exact_flag_preservation all_goals (try extract_goal ; sorry) @@ -215,7 +215,7 @@ theorem t10_shl_nuw_flag_preservation_proof : t10_shl_nuw_flag_preservation_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t10_shl_nuw_flag_preservation all_goals (try extract_goal ; sorry) @@ -250,7 +250,7 @@ theorem t11_shl_nsw_flag_preservation_proof : t11_shl_nsw_flag_preservation_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t11_shl_nsw_flag_preservation all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean index 0b23f510f..bb719a31a 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthflags.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthflags_statements - + def shl_add_nuw_before := [llvm| { ^0(%arg16 : i8, %arg17 : i8): @@ -42,7 +42,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem shl_add_nuw_and_nsw_proof : shl_add_nuw_and_nsw_before ⊑ shl_add_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw_and_nsw all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean index 3c8558d17..b5a5d1d4c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthlogic.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthlogic_statements - + def shl_and_before := [llvm| { ^0(%arg71 : i8, %arg72 : i8): @@ -42,7 +42,7 @@ theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and all_goals (try extract_goal ; sorry) @@ -83,7 +83,7 @@ theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or all_goals (try extract_goal ; sorry) @@ -120,7 +120,7 @@ theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor all_goals (try extract_goal ; sorry) @@ -161,7 +161,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and all_goals (try extract_goal ; sorry) @@ -202,7 +202,7 @@ theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_xor all_goals (try extract_goal ; sorry) @@ -235,7 +235,7 @@ theorem lshr_mul_proof : lshr_mul_before ⊑ lshr_mul_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul all_goals (try extract_goal ; sorry) @@ -268,7 +268,7 @@ theorem lshr_mul_nuw_nsw_proof : lshr_mul_nuw_nsw_before ⊑ lshr_mul_nuw_nsw_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_nuw_nsw all_goals (try extract_goal ; sorry) @@ -305,7 +305,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add all_goals (try extract_goal ; sorry) @@ -342,7 +342,7 @@ theorem shl_sub_proof : shl_sub_before ⊑ shl_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub all_goals (try extract_goal ; sorry) @@ -379,7 +379,7 @@ theorem shl_sub_no_commute_proof : shl_sub_no_commute_before ⊑ shl_sub_no_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_no_commute all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean index 6d4dc2e9b..7c1b7daf3 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthshift_statements - + def shl_shl_before := [llvm| { ^0(%arg50 : i32): @@ -37,7 +37,7 @@ theorem shl_shl_proof : shl_shl_before ⊑ shl_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_shl all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_lshr all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem ashr_shl_constants_proof : ashr_shl_constants_before ⊑ ashr_shl_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_shl_constants all_goals (try extract_goal ; sorry) @@ -141,7 +141,7 @@ theorem shl_lshr_demand1_proof : shl_lshr_demand1_before ⊑ shl_lshr_demand1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_demand1 all_goals (try extract_goal ; sorry) @@ -178,7 +178,7 @@ theorem shl_lshr_demand6_proof : shl_lshr_demand6_before ⊑ shl_lshr_demand6_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_demand6 all_goals (try extract_goal ; sorry) @@ -215,7 +215,7 @@ theorem lshr_shl_demand1_proof : lshr_shl_demand1_before ⊑ lshr_shl_demand1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_demand1 all_goals (try extract_goal ; sorry) @@ -252,7 +252,7 @@ theorem lshr_shl_demand3_proof : lshr_shl_demand3_before ⊑ lshr_shl_demand3_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_demand3 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean b/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean index ad234e763..5b94b75ec 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshifthsra.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthsra_statements - + def ashr_ashr_before := [llvm| { ^0(%arg7 : i32): @@ -38,7 +38,7 @@ theorem ashr_ashr_proof : ashr_ashr_before ⊑ ashr_ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_ashr all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem ashr_overshift_proof : ashr_overshift_before ⊑ ashr_overshift_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_overshift all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean index f4daac466..5f996ebc6 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhbo.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhbo_statements - + def lshr_add_before := [llvm| { ^0(%arg81 : i8, %arg82 : i8): @@ -45,7 +45,7 @@ theorem lshr_add_proof : lshr_add_before ⊑ lshr_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add all_goals (try extract_goal ; sorry) @@ -84,7 +84,7 @@ theorem lshr_sub_proof : lshr_sub_before ⊑ lshr_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_sub all_goals (try extract_goal ; sorry) @@ -122,7 +122,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and all_goals (try extract_goal ; sorry) @@ -162,7 +162,7 @@ theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or all_goals (try extract_goal ; sorry) @@ -202,7 +202,7 @@ theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_xor all_goals (try extract_goal ; sorry) @@ -244,7 +244,7 @@ theorem lshr_and_add_proof : lshr_and_add_before ⊑ lshr_and_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_add all_goals (try extract_goal ; sorry) @@ -287,7 +287,7 @@ theorem lshr_and_sub_proof : lshr_and_sub_before ⊑ lshr_and_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_sub all_goals (try extract_goal ; sorry) @@ -329,7 +329,7 @@ theorem lshr_and_and_proof : lshr_and_and_before ⊑ lshr_and_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_and all_goals (try extract_goal ; sorry) @@ -371,7 +371,7 @@ theorem lshr_and_or_proof : lshr_and_or_before ⊑ lshr_and_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_or all_goals (try extract_goal ; sorry) @@ -413,7 +413,7 @@ theorem lshr_and_or_disjoint_proof : lshr_and_or_disjoint_before ⊑ lshr_and_or simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_or_disjoint all_goals (try extract_goal ; sorry) @@ -455,7 +455,7 @@ theorem ashr_and_or_disjoint_proof : ashr_and_or_disjoint_before ⊑ ashr_and_or simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_and_or_disjoint all_goals (try extract_goal ; sorry) @@ -497,7 +497,7 @@ theorem lshr_and_xor_proof : lshr_and_xor_before ⊑ lshr_and_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and_xor all_goals (try extract_goal ; sorry) @@ -535,7 +535,7 @@ theorem lshr_add_and_shl_proof : lshr_add_and_shl_before ⊑ lshr_add_and_shl_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add_and_shl all_goals (try extract_goal ; sorry) @@ -573,7 +573,7 @@ theorem shl_add_and_lshr_proof : shl_add_and_lshr_before ⊑ shl_add_and_lshr_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_and_lshr all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean index 382b97899..ad91ce8b7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhdemand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhdemand_statements - + def src_srem_shl_demand_max_signbit_before := [llvm| { ^0(%arg24 : i32): @@ -42,7 +42,7 @@ theorem src_srem_shl_demand_max_signbit_proof : src_srem_shl_demand_max_signbit_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_signbit all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem src_srem_shl_demand_min_signbit_proof : src_srem_shl_demand_min_signbit_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_min_signbit all_goals (try extract_goal ; sorry) @@ -116,7 +116,7 @@ theorem src_srem_shl_demand_max_mask_proof : src_srem_shl_demand_max_mask_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_mask all_goals (try extract_goal ; sorry) @@ -155,7 +155,7 @@ theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_proof : src_srem_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_signbit_mask_hit_first_demand all_goals (try extract_goal ; sorry) @@ -194,7 +194,7 @@ theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_proof : src_srem_sh simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_min_signbit_mask_hit_last_demand all_goals (try extract_goal ; sorry) @@ -233,7 +233,7 @@ theorem src_srem_shl_demand_eliminate_signbit_proof : src_srem_shl_demand_elimin simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_eliminate_signbit all_goals (try extract_goal ; sorry) @@ -272,7 +272,7 @@ theorem src_srem_shl_demand_max_mask_hit_demand_proof : src_srem_shl_demand_max_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_mask_hit_demand all_goals (try extract_goal ; sorry) @@ -309,7 +309,7 @@ theorem set_shl_mask_proof : set_shl_mask_before ⊑ set_shl_mask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN set_shl_mask all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean index 1e0223f56..534787f3c 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhfactor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhfactor_statements - + def add_shl_same_amount_before := [llvm| { ^0(%arg59 : i6, %arg60 : i6, %arg61 : i6): @@ -37,7 +37,7 @@ theorem add_shl_same_amount_proof : add_shl_same_amount_before ⊑ add_shl_same_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem add_shl_same_amount_nuw_proof : add_shl_same_amount_nuw_before ⊑ add_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_nuw all_goals (try extract_goal ; sorry) @@ -101,7 +101,7 @@ theorem add_shl_same_amount_partial_nsw1_proof : add_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nsw1 all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem add_shl_same_amount_partial_nsw2_proof : add_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nsw2 all_goals (try extract_goal ; sorry) @@ -165,7 +165,7 @@ theorem add_shl_same_amount_partial_nuw1_proof : add_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nuw1 all_goals (try extract_goal ; sorry) @@ -197,7 +197,7 @@ theorem add_shl_same_amount_partial_nuw2_proof : add_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nuw2 all_goals (try extract_goal ; sorry) @@ -229,7 +229,7 @@ theorem sub_shl_same_amount_proof : sub_shl_same_amount_before ⊑ sub_shl_same_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount all_goals (try extract_goal ; sorry) @@ -261,7 +261,7 @@ theorem sub_shl_same_amount_nuw_proof : sub_shl_same_amount_nuw_before ⊑ sub_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_nuw all_goals (try extract_goal ; sorry) @@ -293,7 +293,7 @@ theorem sub_shl_same_amount_partial_nsw1_proof : sub_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nsw1 all_goals (try extract_goal ; sorry) @@ -325,7 +325,7 @@ theorem sub_shl_same_amount_partial_nsw2_proof : sub_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nsw2 all_goals (try extract_goal ; sorry) @@ -357,7 +357,7 @@ theorem sub_shl_same_amount_partial_nuw1_proof : sub_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nuw1 all_goals (try extract_goal ; sorry) @@ -389,7 +389,7 @@ theorem sub_shl_same_amount_partial_nuw2_proof : sub_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nuw2 all_goals (try extract_goal ; sorry) @@ -423,7 +423,7 @@ theorem add_shl_same_amount_constants_proof : add_shl_same_amount_constants_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_constants all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean index 3f8fbcb3d..5bc34c465 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gshlhsub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhsub_statements - + def shl_sub_i32_before := [llvm| { ^0(%arg18 : i32): @@ -38,7 +38,7 @@ theorem shl_sub_i32_proof : shl_sub_i32_before ⊑ shl_sub_i32_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_i32 all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem shl_sub_i8_proof : shl_sub_i8_before ⊑ shl_sub_i8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_i8 all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem shl_sub_i64_proof : shl_sub_i64_before ⊑ shl_sub_i64_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_i64 all_goals (try extract_goal ; sorry) @@ -139,7 +139,7 @@ theorem shl_bad_sub_i32_proof : shl_bad_sub_i32_before ⊑ shl_bad_sub_i32_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_bad_sub_i32 all_goals (try extract_goal ; sorry) @@ -174,7 +174,7 @@ theorem shl_bad_sub2_i32_proof : shl_bad_sub2_i32_before ⊑ shl_bad_sub2_i32_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_bad_sub2_i32 all_goals (try extract_goal ; sorry) @@ -209,7 +209,7 @@ theorem bad_shl2_sub_i32_proof : bad_shl2_sub_i32_before ⊑ bad_shl2_sub_i32_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_shl2_sub_i32 all_goals (try extract_goal ; sorry) @@ -244,7 +244,7 @@ theorem shl_bad_sub_i8_proof : shl_bad_sub_i8_before ⊑ shl_bad_sub_i8_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_bad_sub_i8 all_goals (try extract_goal ; sorry) @@ -279,7 +279,7 @@ theorem shl_bad_sub_i64_proof : shl_bad_sub_i64_before ⊑ shl_bad_sub_i64_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_bad_sub_i64 all_goals (try extract_goal ; sorry) @@ -314,7 +314,7 @@ theorem shl_const_op1_sub_const_op0_proof : shl_const_op1_sub_const_op0_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_const_op1_sub_const_op0 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean b/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean index d565c7304..b44a6123b 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsignext.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsignext_statements - + def sextinreg_before := [llvm| { ^0(%arg14 : i32): @@ -41,7 +41,7 @@ theorem sextinreg_proof : sextinreg_before ⊑ sextinreg_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem sextinreg_alt_proof : sextinreg_alt_before ⊑ sextinreg_alt_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg_alt all_goals (try extract_goal ; sorry) @@ -113,7 +113,7 @@ theorem sextinreg2_proof : sextinreg2_before ⊑ sextinreg2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg2 all_goals (try extract_goal ; sorry) @@ -148,7 +148,7 @@ theorem ashr_proof : ashr_before ⊑ ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean b/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean index 3ed260863..bfe07f1a9 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsremhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsremhcanonicalize_statements - + def test_srem_canonicalize_op0_before := [llvm| { ^0(%arg8 : i32, %arg9 : i32): @@ -38,7 +38,7 @@ theorem test_srem_canonicalize_op0_proof : test_srem_canonicalize_op0_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_srem_canonicalize_op0 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean index 0cac36957..a80b675d0 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhandhorhneghxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhandhorhneghxor_statements - + def sub_to_xor_before := [llvm| { ^0(%arg14 : i32, %arg15 : i32): @@ -38,7 +38,7 @@ theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_or_commuted all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_and_commuted all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean index 33703c380..173ad49db 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhfromhsub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhfromhsub_statements - + def t0_before := [llvm| { ^0(%arg51 : i8, %arg52 : i8, %arg53 : i8): @@ -36,7 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -67,7 +67,7 @@ theorem t1_flags_proof : t1_flags_before ⊑ t1_flags_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags all_goals (try extract_goal ; sorry) @@ -98,7 +98,7 @@ theorem t1_flags_nuw_only_proof : t1_flags_nuw_only_before ⊑ t1_flags_nuw_only simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_nuw_only all_goals (try extract_goal ; sorry) @@ -129,7 +129,7 @@ theorem t1_flags_sub_nsw_sub_proof : t1_flags_sub_nsw_sub_before ⊑ t1_flags_su simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_sub_nsw_sub all_goals (try extract_goal ; sorry) @@ -160,7 +160,7 @@ theorem t1_flags_nuw_first_proof : t1_flags_nuw_first_before ⊑ t1_flags_nuw_fi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_nuw_first all_goals (try extract_goal ; sorry) @@ -191,7 +191,7 @@ theorem t1_flags_nuw_second_proof : t1_flags_nuw_second_before ⊑ t1_flags_nuw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_nuw_second all_goals (try extract_goal ; sorry) @@ -222,7 +222,7 @@ theorem t1_flags_nuw_nsw_first_proof : t1_flags_nuw_nsw_first_before ⊑ t1_flag simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_nuw_nsw_first all_goals (try extract_goal ; sorry) @@ -253,7 +253,7 @@ theorem t1_flags_nuw_nsw_second_proof : t1_flags_nuw_nsw_second_before ⊑ t1_fl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_flags_nuw_nsw_second all_goals (try extract_goal ; sorry) @@ -286,7 +286,7 @@ theorem t3_c0_proof : t3_c0_before ⊑ t3_c0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t3_c0 all_goals (try extract_goal ; sorry) @@ -319,7 +319,7 @@ theorem t4_c1_proof : t4_c1_before ⊑ t4_c1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t4_c1 all_goals (try extract_goal ; sorry) @@ -352,7 +352,7 @@ theorem t5_c2_proof : t5_c2_before ⊑ t5_c2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t5_c2 all_goals (try extract_goal ; sorry) @@ -385,7 +385,7 @@ theorem t9_c0_c2_proof : t9_c0_c2_before ⊑ t9_c0_c2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t9_c0_c2 all_goals (try extract_goal ; sorry) @@ -418,7 +418,7 @@ theorem t10_c1_c2_proof : t10_c1_c2_before ⊑ t10_c1_c2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t10_c1_c2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean index 31c422b2c..96bdc6b85 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhnot.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhnot_statements - + def sub_not_before := [llvm| { ^0(%arg22 : i8, %arg23 : i8): @@ -38,7 +38,7 @@ theorem sub_not_proof : sub_not_before ⊑ sub_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_not all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem dec_sub_proof : dec_sub_before ⊑ dec_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN dec_sub all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem sub_inc_proof : sub_inc_before ⊑ sub_inc_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_inc all_goals (try extract_goal ; sorry) @@ -137,7 +137,7 @@ theorem sub_dec_proof : sub_dec_before ⊑ sub_dec_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_dec all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean new file mode 100644 index 000000000..41a50d41c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatible.lean @@ -0,0 +1,582 @@ + +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 gsubhofhnegatible_statements + +def t0_before := [llvm| +{ +^0(%arg214 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %arg214, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg214 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.add %arg214, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0 + all_goals (try extract_goal ; sorry) + ---END t0 + + + +def t2_before := [llvm| +{ +^0(%arg210 : i8, %arg211 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg211 : i8 + %2 = llvm.sub %arg210, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t2_after := [llvm| +{ +^0(%arg210 : i8, %arg211 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg211 : i8 + %2 = llvm.add %1, %arg210 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t2_proof : t2_before ⊑ t2_after := by + unfold t2_before t2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t2 + all_goals (try extract_goal ; sorry) + ---END t2 + + + +def t9_before := [llvm| +{ +^0(%arg182 : i8, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg183, %arg182 : i8 + %2 = llvm.sub %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t9_after := [llvm| +{ +^0(%arg182 : i8, %arg183 : i8): + %0 = llvm.sub %arg182, %arg183 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem t9_proof : t9_before ⊑ t9_after := by + unfold t9_before t9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t9 + all_goals (try extract_goal ; sorry) + ---END t9 + + + +def neg_of_sub_from_constant_before := [llvm| +{ +^0(%arg178 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg178 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_sub_from_constant_after := [llvm| +{ +^0(%arg178 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg178, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg_of_sub_from_constant_after := by + unfold neg_of_sub_from_constant_before neg_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_sub_from_constant + all_goals (try extract_goal ; sorry) + ---END neg_of_sub_from_constant + + + +def sub_from_constant_of_sub_from_constant_before := [llvm| +{ +^0(%arg176 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg176 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_sub_from_constant_after := [llvm| +{ +^0(%arg176 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.add %arg176, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_from_constant_before ⊑ sub_from_constant_of_sub_from_constant_after := by + unfold sub_from_constant_of_sub_from_constant_before sub_from_constant_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_sub_from_constant + all_goals (try extract_goal ; sorry) + ---END sub_from_constant_of_sub_from_constant + + + +def sub_from_variable_of_sub_from_constant_before := [llvm| +{ +^0(%arg173 : i8, %arg174 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg173 : i8 + %2 = llvm.sub %arg174, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_from_variable_of_sub_from_constant_after := [llvm| +{ +^0(%arg173 : i8, %arg174 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg173, %0 : i8 + %2 = llvm.add %1, %arg174 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_from_constant_before ⊑ sub_from_variable_of_sub_from_constant_after := by + unfold sub_from_variable_of_sub_from_constant_before sub_from_variable_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_variable_of_sub_from_constant + all_goals (try extract_goal ; sorry) + ---END sub_from_variable_of_sub_from_constant + + + +def neg_of_add_with_constant_before := [llvm| +{ +^0(%arg161 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg161, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_add_with_constant_after := [llvm| +{ +^0(%arg161 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg161 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg_of_add_with_constant_after := by + unfold neg_of_add_with_constant_before neg_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_add_with_constant + all_goals (try extract_goal ; sorry) + ---END neg_of_add_with_constant + + + +def sub_from_constant_of_add_with_constant_before := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.add %arg159, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_add_with_constant_after := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg159 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_with_constant_before ⊑ sub_from_constant_of_add_with_constant_after := by + unfold sub_from_constant_of_add_with_constant_before sub_from_constant_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_add_with_constant + all_goals (try extract_goal ; sorry) + ---END sub_from_constant_of_add_with_constant + + + +def negate_xor_before := [llvm| +{ +^0(%arg132 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg132, %0 : i4 + %3 = llvm.sub %1, %2 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def negate_xor_after := [llvm| +{ +^0(%arg132 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg132, %0 : i4 + %3 = llvm.add %2, %1 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by + unfold negate_xor_before negate_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_xor + all_goals (try extract_goal ; sorry) + ---END negate_xor + + + +def negate_shl_xor_before := [llvm| +{ +^0(%arg128 : i4, %arg129 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg128, %0 : i4 + %3 = llvm.shl %2, %arg129 : i4 + %4 = llvm.sub %1, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def negate_shl_xor_after := [llvm| +{ +^0(%arg128 : i4, %arg129 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg128, %0 : i4 + %3 = llvm.add %2, %1 : i4 + %4 = llvm.shl %3, %arg129 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := by + unfold negate_shl_xor_before negate_shl_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_shl_xor + all_goals (try extract_goal ; sorry) + ---END negate_shl_xor + + + +def negate_sdiv_before := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg123, %0 : i8 + %2 = llvm.sub %arg122, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_sdiv_after := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg123, %0 : i8 + %2 = llvm.add %1, %arg122 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by + unfold negate_sdiv_before negate_sdiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_sdiv + all_goals (try extract_goal ; sorry) + ---END negate_sdiv + + + +def negate_ashr_before := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg117, %0 : i8 + %2 = llvm.sub %arg116, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_ashr_after := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg117, %0 : i8 + %2 = llvm.add %1, %arg116 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by + unfold negate_ashr_before negate_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_ashr + all_goals (try extract_goal ; sorry) + ---END negate_ashr + + + +def negate_lshr_before := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg115, %0 : i8 + %2 = llvm.sub %arg114, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_lshr_after := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg115, %0 : i8 + %2 = llvm.add %1, %arg114 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by + unfold negate_lshr_before negate_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_lshr + all_goals (try extract_goal ; sorry) + ---END negate_lshr + + + +def negation_of_increment_via_or_with_no_common_bits_set_before := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %arg78, %0 : i8 + %2 = llvm.or %1, %0 : i8 + %3 = llvm.sub %arg77, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negation_of_increment_via_or_with_no_common_bits_set_after := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %arg78, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.add %arg77, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of_increment_via_or_with_no_common_bits_set_before ⊑ negation_of_increment_via_or_with_no_common_bits_set_after := by + unfold negation_of_increment_via_or_with_no_common_bits_set_before negation_of_increment_via_or_with_no_common_bits_set_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negation_of_increment_via_or_with_no_common_bits_set + all_goals (try extract_goal ; sorry) + ---END negation_of_increment_via_or_with_no_common_bits_set + + + +def negation_of_increment_via_or_disjoint_before := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.or %arg72, %0 : i8 + %2 = llvm.sub %arg71, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negation_of_increment_via_or_disjoint_after := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg72, %0 : i8 + %2 = llvm.add %arg71, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negation_of_increment_via_or_disjoint_proof : negation_of_increment_via_or_disjoint_before ⊑ negation_of_increment_via_or_disjoint_after := by + unfold negation_of_increment_via_or_disjoint_before negation_of_increment_via_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negation_of_increment_via_or_disjoint + all_goals (try extract_goal ; sorry) + ---END negation_of_increment_via_or_disjoint + + + +def negate_add_with_single_negatible_operand_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg27, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg27 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_negatible_operand_before ⊑ negate_add_with_single_negatible_operand_after := by + unfold negate_add_with_single_negatible_operand_before negate_add_with_single_negatible_operand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand + all_goals (try extract_goal ; sorry) + ---END negate_add_with_single_negatible_operand + + + +def negate_add_with_single_negatible_operand_depth2_before := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 21 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg25, %0 : i8 + %3 = llvm.mul %2, %arg26 : i8 + %4 = llvm.sub %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_depth2_after := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = -21 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg25 : i8 + %2 = llvm.mul %1, %arg26 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_single_negatible_operand_depth2_before ⊑ negate_add_with_single_negatible_operand_depth2_after := by + unfold negate_add_with_single_negatible_operand_depth2_before negate_add_with_single_negatible_operand_depth2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand_depth2 + all_goals (try extract_goal ; sorry) + ---END negate_add_with_single_negatible_operand_depth2 + + diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean index 2b1502964..2d7f40541 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhofhnegatiblehinseltpoison.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhofhnegatiblehinseltpoison_statements - + def t0_before := [llvm| { ^0(%arg206 : i8): @@ -36,7 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 all_goals (try extract_goal ; sorry) @@ -69,7 +69,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t2 all_goals (try extract_goal ; sorry) @@ -100,7 +100,7 @@ theorem t9_proof : t9_before ⊑ t9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t9 all_goals (try extract_goal ; sorry) @@ -133,7 +133,7 @@ theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN neg_of_sub_from_constant all_goals (try extract_goal ; sorry) @@ -166,7 +166,7 @@ theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_from_constant_of_sub_from_constant all_goals (try extract_goal ; sorry) @@ -199,7 +199,7 @@ theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_from_variable_of_sub_from_constant all_goals (try extract_goal ; sorry) @@ -232,7 +232,7 @@ theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN neg_of_add_with_constant all_goals (try extract_goal ; sorry) @@ -265,7 +265,7 @@ theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_from_constant_of_add_with_constant all_goals (try extract_goal ; sorry) @@ -300,7 +300,7 @@ theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_xor all_goals (try extract_goal ; sorry) @@ -337,7 +337,7 @@ theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_shl_xor all_goals (try extract_goal ; sorry) @@ -370,7 +370,7 @@ theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_sdiv all_goals (try extract_goal ; sorry) @@ -403,7 +403,7 @@ theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_ashr all_goals (try extract_goal ; sorry) @@ -436,7 +436,7 @@ theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_lshr all_goals (try extract_goal ; sorry) @@ -472,7 +472,7 @@ theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negation_of_increment_via_or_with_no_common_bits_set all_goals (try extract_goal ; sorry) @@ -505,7 +505,7 @@ theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_add_with_single_negatible_operand all_goals (try extract_goal ; sorry) @@ -540,7 +540,7 @@ theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negate_add_with_single_negatible_operand_depth2 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean index c81d767de..26264bc08 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhorhandhxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhorhandhxor_statements - + def sub_to_xor_before := [llvm| { ^0(%arg15 : i32, %arg16 : i32): @@ -36,7 +36,7 @@ theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor all_goals (try extract_goal ; sorry) @@ -67,7 +67,7 @@ theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_or_commuted all_goals (try extract_goal ; sorry) @@ -98,7 +98,7 @@ theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_and_commuted all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean index 4cea748b8..d8b99d3b7 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhxor_statements - + def low_mask_nsw_nuw_before := [llvm| { ^0(%arg13 : i32): @@ -40,7 +40,7 @@ theorem low_mask_nsw_nuw_proof : low_mask_nsw_nuw_before ⊑ low_mask_nsw_nuw_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN low_mask_nsw_nuw all_goals (try extract_goal ; sorry) @@ -75,7 +75,7 @@ theorem arbitrary_mask_sub_i8_proof : arbitrary_mask_sub_i8_before ⊑ arbitrary simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN arbitrary_mask_sub_i8 all_goals (try extract_goal ; sorry) @@ -110,7 +110,7 @@ theorem not_masked_sub_i8_proof : not_masked_sub_i8_before ⊑ not_masked_sub_i8 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_masked_sub_i8 all_goals (try extract_goal ; sorry) @@ -146,7 +146,7 @@ theorem xor_add_proof : xor_add_before ⊑ xor_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_add all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean index 968837dc2..8c6500566 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gsubhxorhorhneghand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhxorhorhneghand_statements - + def sub_to_and_before := [llvm| { ^0(%arg14 : i32, %arg15 : i32): @@ -38,7 +38,7 @@ theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and all_goals (try extract_goal ; sorry) @@ -71,7 +71,7 @@ theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and_or_commuted all_goals (try extract_goal ; sorry) @@ -104,7 +104,7 @@ theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and_and_commuted all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean b/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean index 64e91e4a7..aa7d28b98 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gunfoldhmaskedhmergehwithhconsthmaskhscalar_statements - + def scalar0_before := [llvm| { ^0(%arg32 : i4, %arg33 : i4): @@ -41,7 +41,7 @@ theorem scalar0_proof : scalar0_before ⊑ scalar0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN scalar0 all_goals (try extract_goal ; sorry) @@ -77,7 +77,7 @@ theorem scalar1_proof : scalar1_before ⊑ scalar1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN scalar1 all_goals (try extract_goal ; sorry) @@ -111,7 +111,7 @@ theorem in_constant_varx_mone_proof : in_constant_varx_mone_before ⊑ in_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_mone all_goals (try extract_goal ; sorry) @@ -145,7 +145,7 @@ theorem in_constant_varx_14_proof : in_constant_varx_14_before ⊑ in_constant_v simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_14 all_goals (try extract_goal ; sorry) @@ -179,7 +179,7 @@ theorem in_constant_mone_vary_proof : in_constant_mone_vary_before ⊑ in_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_mone_vary all_goals (try extract_goal ; sorry) @@ -213,7 +213,7 @@ theorem in_constant_14_vary_proof : in_constant_14_vary_before ⊑ in_constant_1 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_14_vary all_goals (try extract_goal ; sorry) @@ -249,7 +249,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_0_0 all_goals (try extract_goal ; sorry) @@ -285,7 +285,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_0_1_0 all_goals (try extract_goal ; sorry) @@ -321,7 +321,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_1_0 all_goals (try extract_goal ; sorry) @@ -355,7 +355,7 @@ theorem commutativity_constant_14_vary_proof : commutativity_constant_14_vary_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN commutativity_constant_14_vary all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean index b1dc1473e..eb2ec5e06 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gxor_statements - + def test0_before := [llvm| { ^0(%arg210 : i1): @@ -34,7 +34,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test0 all_goals (try extract_goal ; sorry) @@ -63,7 +63,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 all_goals (try extract_goal ; sorry) @@ -92,7 +92,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -121,7 +121,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -152,7 +152,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 all_goals (try extract_goal ; sorry) @@ -184,7 +184,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -214,7 +214,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -251,7 +251,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -286,7 +286,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -321,7 +321,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -354,7 +354,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test18 all_goals (try extract_goal ; sorry) @@ -383,7 +383,7 @@ theorem test19_proof : test19_before ⊑ test19_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test19 all_goals (try extract_goal ; sorry) @@ -415,7 +415,7 @@ theorem test25_proof : test25_before ⊑ test25_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test25 all_goals (try extract_goal ; sorry) @@ -448,7 +448,7 @@ theorem test28_proof : test28_before ⊑ test28_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test28 all_goals (try extract_goal ; sorry) @@ -481,7 +481,7 @@ theorem test28_sub_proof : test28_sub_before ⊑ test28_sub_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test28_sub all_goals (try extract_goal ; sorry) @@ -515,7 +515,7 @@ theorem or_or_xor_proof : or_or_xor_before ⊑ or_or_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_or_xor all_goals (try extract_goal ; sorry) @@ -549,7 +549,7 @@ theorem or_or_xor_commute1_proof : or_or_xor_commute1_before ⊑ or_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_or_xor_commute1 all_goals (try extract_goal ; sorry) @@ -583,7 +583,7 @@ theorem or_or_xor_commute2_proof : or_or_xor_commute2_before ⊑ or_or_xor_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_or_xor_commute2 all_goals (try extract_goal ; sorry) @@ -620,7 +620,7 @@ theorem not_is_canonical_proof : not_is_canonical_before ⊑ not_is_canonical_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_is_canonical all_goals (try extract_goal ; sorry) @@ -655,7 +655,7 @@ theorem not_shl_proof : not_shl_before ⊑ not_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_shl all_goals (try extract_goal ; sorry) @@ -690,7 +690,7 @@ theorem not_lshr_proof : not_lshr_before ⊑ not_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_lshr all_goals (try extract_goal ; sorry) @@ -725,7 +725,7 @@ theorem ashr_not_proof : ashr_not_before ⊑ ashr_not_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_not all_goals (try extract_goal ; sorry) @@ -759,7 +759,7 @@ theorem tryFactorization_xor_ashr_lshr_proof : tryFactorization_xor_ashr_lshr_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_xor_ashr_lshr all_goals (try extract_goal ; sorry) @@ -793,7 +793,7 @@ theorem tryFactorization_xor_lshr_ashr_proof : tryFactorization_xor_lshr_ashr_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_xor_lshr_ashr all_goals (try extract_goal ; sorry) @@ -827,7 +827,7 @@ theorem tryFactorization_xor_lshr_lshr_proof : tryFactorization_xor_lshr_lshr_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_xor_lshr_lshr all_goals (try extract_goal ; sorry) @@ -861,7 +861,7 @@ theorem tryFactorization_xor_ashr_ashr_proof : tryFactorization_xor_ashr_ashr_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_xor_ashr_ashr all_goals (try extract_goal ; sorry) @@ -898,7 +898,7 @@ theorem PR96857_xor_with_noundef_proof : PR96857_xor_with_noundef_before ⊑ PR9 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR96857_xor_with_noundef all_goals (try extract_goal ; sorry) @@ -935,7 +935,7 @@ theorem PR96857_xor_without_noundef_proof : PR96857_xor_without_noundef_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR96857_xor_without_noundef all_goals (try extract_goal ; sorry) @@ -964,7 +964,7 @@ theorem or_disjoint_with_xor_proof : or_disjoint_with_xor_before ⊑ or_disjoint simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_disjoint_with_xor all_goals (try extract_goal ; sorry) @@ -993,7 +993,7 @@ theorem xor_with_or_disjoint_ab_proof : xor_with_or_disjoint_ab_before ⊑ xor_w simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_with_or_disjoint_ab all_goals (try extract_goal ; sorry) @@ -1022,7 +1022,7 @@ theorem xor_with_or_disjoint_ba_proof : xor_with_or_disjoint_ba_before ⊑ xor_w simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_with_or_disjoint_ba all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean index 5a1b2517d..6523fe8b9 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxor2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gxor2_statements - + def test2_before := [llvm| { ^0(%arg120 : i32): @@ -42,7 +42,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 all_goals (try extract_goal ; sorry) @@ -79,7 +79,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 all_goals (try extract_goal ; sorry) @@ -120,7 +120,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 all_goals (try extract_goal ; sorry) @@ -157,7 +157,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 all_goals (try extract_goal ; sorry) @@ -191,7 +191,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 all_goals (try extract_goal ; sorry) @@ -225,7 +225,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 all_goals (try extract_goal ; sorry) @@ -256,7 +256,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 all_goals (try extract_goal ; sorry) @@ -287,7 +287,7 @@ theorem test9b_proof : test9b_before ⊑ test9b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9b all_goals (try extract_goal ; sorry) @@ -318,7 +318,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 all_goals (try extract_goal ; sorry) @@ -349,7 +349,7 @@ theorem test10b_proof : test10b_before ⊑ test10b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10b all_goals (try extract_goal ; sorry) @@ -386,7 +386,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 all_goals (try extract_goal ; sorry) @@ -423,7 +423,7 @@ theorem test11b_proof : test11b_before ⊑ test11b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11b all_goals (try extract_goal ; sorry) @@ -460,7 +460,7 @@ theorem test11c_proof : test11c_before ⊑ test11c_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11c all_goals (try extract_goal ; sorry) @@ -497,7 +497,7 @@ theorem test11d_proof : test11d_before ⊑ test11d_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11d all_goals (try extract_goal ; sorry) @@ -536,7 +536,7 @@ theorem test11e_proof : test11e_before ⊑ test11e_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11e all_goals (try extract_goal ; sorry) @@ -575,7 +575,7 @@ theorem test11f_proof : test11f_before ⊑ test11f_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11f all_goals (try extract_goal ; sorry) @@ -610,7 +610,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 all_goals (try extract_goal ; sorry) @@ -645,7 +645,7 @@ theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12commuted all_goals (try extract_goal ; sorry) @@ -680,7 +680,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 all_goals (try extract_goal ; sorry) @@ -715,7 +715,7 @@ theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13commuted all_goals (try extract_goal ; sorry) @@ -749,7 +749,7 @@ theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute1 all_goals (try extract_goal ; sorry) @@ -783,7 +783,7 @@ theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute2 all_goals (try extract_goal ; sorry) @@ -817,7 +817,7 @@ theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute3 all_goals (try extract_goal ; sorry) @@ -851,7 +851,7 @@ theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute4 all_goals (try extract_goal ; sorry) @@ -885,7 +885,7 @@ theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute5 all_goals (try extract_goal ; sorry) @@ -919,7 +919,7 @@ theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute6 all_goals (try extract_goal ; sorry) @@ -953,7 +953,7 @@ theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute7 all_goals (try extract_goal ; sorry) @@ -987,7 +987,7 @@ theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute8 all_goals (try extract_goal ; sorry) @@ -1026,7 +1026,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 all_goals (try extract_goal ; sorry) @@ -1065,7 +1065,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 all_goals (try extract_goal ; sorry) @@ -1102,7 +1102,7 @@ theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not1 all_goals (try extract_goal ; sorry) @@ -1139,7 +1139,7 @@ theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not2 all_goals (try extract_goal ; sorry) @@ -1176,7 +1176,7 @@ theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not3 all_goals (try extract_goal ; sorry) @@ -1213,7 +1213,7 @@ theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not4 all_goals (try extract_goal ; sorry) @@ -1250,7 +1250,7 @@ theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not1 all_goals (try extract_goal ; sorry) @@ -1287,7 +1287,7 @@ theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not2 all_goals (try extract_goal ; sorry) @@ -1324,7 +1324,7 @@ theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not3 all_goals (try extract_goal ; sorry) @@ -1361,7 +1361,7 @@ theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not4 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean b/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean index 239e01da7..1085b122d 100644 --- a/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean +++ b/SSA/Projects/InstCombine/tests/LLVM/gxorhofhor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gxorhofhor_statements - + def t1_before := [llvm| { ^0(%arg12 : i4): @@ -40,7 +40,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/logs/2003-05-26-CastMiscompile.txt b/SSA/Projects/InstCombine/tests/logs/2003-05-26-CastMiscompile.txt new file mode 100644 index 000000000..3263ceabb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-05-26-CastMiscompile.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-05-27-ConstExprCrash.txt b/SSA/Projects/InstCombine/tests/logs/2003-05-27-ConstExprCrash.txt new file mode 100644 index 000000000..e392f2a4e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-05-27-ConstExprCrash.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-06-05-BranchInvertInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2003-06-05-BranchInvertInfLoop.txt new file mode 100644 index 000000000..02049d5d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-06-05-BranchInvertInfLoop.txt @@ -0,0 +1,3 @@ +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-07-21-ExternalConstant.txt b/SSA/Projects/InstCombine/tests/logs/2003-07-21-ExternalConstant.txt new file mode 100644 index 000000000..361740896 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-07-21-ExternalConstant.txt @@ -0,0 +1,28 @@ +1: "bzero" +5: "bzero" is empty + +1: "bcopy" +5: "bcopy" is empty + +1: "bcmp" +5: "bcmp" is empty + +1: "fputs" +5: "fputs" is empty + +1: "fputs_unlocked" +5: "fputs_unlocked" is empty + +1: "function" +4: "function" has unsupported operation: llvm.mlir.addressof + +4: "function" has unsupported operation: llvm.alloca + +4: "function" has unsupported operation: llvm.load + +4: "function" has unsupported operation: llvm.store + +4: "function" has unsupported operation: builtin.unregistered: llvm.br + +4: "function" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-08-12-AllocaNonNull.txt b/SSA/Projects/InstCombine/tests/logs/2003-08-12-AllocaNonNull.txt new file mode 100644 index 000000000..ec1cea5f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-08-12-AllocaNonNull.txt @@ -0,0 +1,12 @@ +1: "bitmap_clear" +5: "bitmap_clear" is empty + +1: "oof" +4: "oof" has unsupported operation: llvm.alloca + +4: "oof" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "oof" has unsupported operation: llvm.call + +4: "oof" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-09-09-VolatileLoadElim.txt b/SSA/Projects/InstCombine/tests/logs/2003-09-09-VolatileLoadElim.txt new file mode 100644 index 000000000..35ea4efa5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-09-09-VolatileLoadElim.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-10-29-CallSiteResolve.txt b/SSA/Projects/InstCombine/tests/logs/2003-10-29-CallSiteResolve.txt new file mode 100644 index 000000000..554a53c03 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-10-29-CallSiteResolve.txt @@ -0,0 +1,13 @@ +1: "bar" +5: "bar" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.zero + +4: "foo" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2003-11-03-VarargsCallBug.txt b/SSA/Projects/InstCombine/tests/logs/2003-11-03-VarargsCallBug.txt new file mode 100644 index 000000000..6b629f641 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2003-11-03-VarargsCallBug.txt @@ -0,0 +1,12 @@ +1: "foo" +5: "foo" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-01-13-InstCombineInvokePHI.txt b/SSA/Projects/InstCombine/tests/logs/2004-01-13-InstCombineInvokePHI.txt new file mode 100644 index 000000000..0a9098b60 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-01-13-InstCombineInvokePHI.txt @@ -0,0 +1,19 @@ +1: "test" +5: "test" is empty + +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "foo" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-02-23-ShiftShiftOverflow.txt b/SSA/Projects/InstCombine/tests/logs/2004-02-23-ShiftShiftOverflow.txt new file mode 100644 index 000000000..0b146b4a7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-02-23-ShiftShiftOverflow.txt @@ -0,0 +1,14 @@ +1: "test" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-03-13-InstCombineInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2004-03-13-InstCombineInfLoop.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-03-13-InstCombineInfLoop.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-04-04-InstCombineReplaceAllUsesWith.txt b/SSA/Projects/InstCombine/tests/logs/2004-04-04-InstCombineReplaceAllUsesWith.txt new file mode 100644 index 000000000..7ab14d089 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-04-04-InstCombineReplaceAllUsesWith.txt @@ -0,0 +1,3 @@ +1: "test" +7: "test" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-05-07-UnsizedCastLoad.txt b/SSA/Projects/InstCombine/tests/logs/2004-05-07-UnsizedCastLoad.txt new file mode 100644 index 000000000..d18e23f50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-05-07-UnsizedCastLoad.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-07-27-ConstantExprMul.txt b/SSA/Projects/InstCombine/tests/logs/2004-07-27-ConstantExprMul.txt new file mode 100644 index 000000000..e392f2a4e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-07-27-ConstantExprMul.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-08-09-RemInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2004-08-09-RemInfLoop.txt new file mode 100644 index 000000000..16a8e4b01 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-08-09-RemInfLoop.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-08-10-BoolSetCC.txt b/SSA/Projects/InstCombine/tests/logs/2004-08-10-BoolSetCC.txt new file mode 100644 index 000000000..b24f004a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-08-10-BoolSetCC.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt new file mode 100644 index 000000000..8489d69d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine2.txt b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine2.txt new file mode 100644 index 000000000..9fc068582 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-09-20-BadLoadCombine2.txt @@ -0,0 +1,17 @@ +1: "test" +4: "test" has unsupported operation: llvm.alloca + +4: "test" has unsupported operation: llvm.alloca + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-09-28-BadShiftAndSetCC.txt b/SSA/Projects/InstCombine/tests/logs/2004-09-28-BadShiftAndSetCC.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-09-28-BadShiftAndSetCC.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-11-22-Missed-and-fold.txt b/SSA/Projects/InstCombine/tests/logs/2004-11-22-Missed-and-fold.txt new file mode 100644 index 000000000..fd4031d8d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-11-22-Missed-and-fold.txt @@ -0,0 +1,8 @@ +1: "test21" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-11-27-SetCCForCastLargerAndConstant.txt b/SSA/Projects/InstCombine/tests/logs/2004-11-27-SetCCForCastLargerAndConstant.txt new file mode 100644 index 000000000..e32bc7b96 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-11-27-SetCCForCastLargerAndConstant.txt @@ -0,0 +1,198 @@ +1: "lt_signed_to_large_unsigned" +4: "lt_signed_to_large_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR28011" +4: "PR28011" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_large_unsigned_vec" +4: "lt_signed_to_large_unsigned_vec" has unsupported operation: builtin.unregistered: llvm.sext + +4: "lt_signed_to_large_unsigned_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_large_signed" +4: "lt_signed_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "lt_signed_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_large_negative" +4: "lt_signed_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "lt_signed_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_small_unsigned" +4: "lt_signed_to_small_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_small_signed" +4: "lt_signed_to_small_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_signed_to_small_negative" +4: "lt_signed_to_small_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_large_unsigned" +4: "lt_unsigned_to_large_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "lt_unsigned_to_large_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_large_signed" +4: "lt_unsigned_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "lt_unsigned_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_large_negative" +4: "lt_unsigned_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "lt_unsigned_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_small_unsigned" +4: "lt_unsigned_to_small_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_small_signed" +4: "lt_unsigned_to_small_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lt_unsigned_to_small_negative" +4: "lt_unsigned_to_small_negative" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "lt_unsigned_to_small_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_large_unsigned" +4: "gt_signed_to_large_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_large_signed" +4: "gt_signed_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "gt_signed_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_large_negative" +4: "gt_signed_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "gt_signed_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_small_unsigned" +4: "gt_signed_to_small_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_small_signed" +4: "gt_signed_to_small_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_signed_to_small_negative" +4: "gt_signed_to_small_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_large_unsigned" +4: "gt_unsigned_to_large_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "gt_unsigned_to_large_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_large_signed" +4: "gt_unsigned_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "gt_unsigned_to_large_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_large_negative" +4: "gt_unsigned_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "gt_unsigned_to_large_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_small_unsigned" +4: "gt_unsigned_to_small_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_small_signed" +4: "gt_unsigned_to_small_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gt_unsigned_to_small_negative" +4: "gt_unsigned_to_small_negative" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "gt_unsigned_to_small_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_ugt" +4: "different_size_zext_zext_ugt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_ugt_commute" +4: "different_size_zext_zext_ugt_commute" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_ugt_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_ult" +4: "different_size_zext_zext_ult" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_eq" +4: "different_size_zext_zext_eq" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_ne_commute" +4: "different_size_zext_zext_ne_commute" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_ne_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_slt" +4: "different_size_zext_zext_slt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_zext_zext_sgt" +4: "different_size_zext_zext_sgt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_zext_zext_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_sgt" +4: "different_size_sext_sext_sgt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_sle" +4: "different_size_sext_sext_sle" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_eq" +4: "different_size_sext_sext_eq" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_ule" +4: "different_size_sext_sext_ule" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_zext_ne" +4: "different_size_sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.zext + +4: "different_size_sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "different_size_sext_sext_ule_extra_use1" +4: "different_size_sext_sext_ule_extra_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use1" has unsupported operation: llvm.call + +4: "different_size_sext_sext_ule_extra_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_ule_extra_use2" +4: "different_size_sext_sext_ule_extra_use2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use2" has unsupported operation: llvm.call + +4: "different_size_sext_sext_ule_extra_use2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_size_sext_sext_ule_extra_use3" +4: "different_size_sext_sext_ule_extra_use3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use3" has unsupported operation: llvm.call + +4: "different_size_sext_sext_ule_extra_use3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "different_size_sext_sext_ule_extra_use3" has unsupported operation: llvm.call + +4: "different_size_sext_sext_ule_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2004-12-08-RemInfiniteLoop.txt b/SSA/Projects/InstCombine/tests/logs/2004-12-08-RemInfiniteLoop.txt new file mode 100644 index 000000000..16a8e4b01 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2004-12-08-RemInfiniteLoop.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-03-04-ShiftOverflow.txt b/SSA/Projects/InstCombine/tests/logs/2005-03-04-ShiftOverflow.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-03-04-ShiftOverflow.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt b/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt new file mode 100644 index 000000000..8489d69d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-04-07-UDivSelectCrash.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-06-15-DivSelectCrash.txt b/SSA/Projects/InstCombine/tests/logs/2005-06-15-DivSelectCrash.txt new file mode 100644 index 000000000..206ed4294 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-06-15-DivSelectCrash.txt @@ -0,0 +1,3 @@ +1: "_Z13func_31585107li" +4: "_Z13func_31585107li" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-06-15-ShiftSetCCCrash.txt b/SSA/Projects/InstCombine/tests/logs/2005-06-15-ShiftSetCCCrash.txt new file mode 100644 index 000000000..16a8e4b01 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-06-15-ShiftSetCCCrash.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-06-16-RangeCrash.txt b/SSA/Projects/InstCombine/tests/logs/2005-06-16-RangeCrash.txt new file mode 100644 index 000000000..b24f004a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-06-16-RangeCrash.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2005-07-07-DeadPHILoop.txt b/SSA/Projects/InstCombine/tests/logs/2005-07-07-DeadPHILoop.txt new file mode 100644 index 000000000..23ca4a9c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2005-07-07-DeadPHILoop.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-02-13-DemandedMiscompile.txt b/SSA/Projects/InstCombine/tests/logs/2006-02-13-DemandedMiscompile.txt new file mode 100644 index 000000000..8902dbb82 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-02-13-DemandedMiscompile.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-02-28-Crash.txt b/SSA/Projects/InstCombine/tests/logs/2006-02-28-Crash.txt new file mode 100644 index 000000000..9a471d5ea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-02-28-Crash.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-03-30-ExtractElement.txt b/SSA/Projects/InstCombine/tests/logs/2006-03-30-ExtractElement.txt new file mode 100644 index 000000000..f49081080 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-03-30-ExtractElement.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-04-28-ShiftShiftLongLong.txt b/SSA/Projects/InstCombine/tests/logs/2006-04-28-ShiftShiftLongLong.txt new file mode 100644 index 000000000..7ab14d089 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-04-28-ShiftShiftLongLong.txt @@ -0,0 +1,3 @@ +1: "test" +7: "test" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-05-04-DemandedBitCrash.txt b/SSA/Projects/InstCombine/tests/logs/2006-05-04-DemandedBitCrash.txt new file mode 100644 index 000000000..dc5ac14c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-05-04-DemandedBitCrash.txt @@ -0,0 +1,17 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-09-15-CastToBool.txt b/SSA/Projects/InstCombine/tests/logs/2006-09-15-CastToBool.txt new file mode 100644 index 000000000..d18e23f50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-09-15-CastToBool.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-10-19-SignedToUnsignedCastAndConst-2.txt b/SSA/Projects/InstCombine/tests/logs/2006-10-19-SignedToUnsignedCastAndConst-2.txt new file mode 100644 index 000000000..778e144dd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-10-19-SignedToUnsignedCastAndConst-2.txt @@ -0,0 +1,3 @@ +1: "eq_signed_to_small_unsigned" +4: "eq_signed_to_small_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-10-20-mask.txt b/SSA/Projects/InstCombine/tests/logs/2006-10-20-mask.txt new file mode 100644 index 000000000..6cc357efa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-10-20-mask.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-10-26-VectorReassoc.txt b/SSA/Projects/InstCombine/tests/logs/2006-10-26-VectorReassoc.txt new file mode 100644 index 000000000..73ae9ae1e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-10-26-VectorReassoc.txt @@ -0,0 +1,52 @@ +1: "test_fmul" +4: "test_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_fmul_fast" +4: "test_fmul_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_fmul_reassoc_nsz" +4: "test_fmul_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_fmul_reassoc" +4: "test_fmul_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_fmul_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_fadd" +4: "test_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadd_fast" +4: "test_fadd_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadd_reassoc_nsz" +4: "test_fadd_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadd_reassoc" +4: "test_fadd_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadd_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadds_cancel_" +4: "test_fadds_cancel_" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadds_cancel_" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadds_cancel_" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadds_cancel_fast" +4: "test_fadds_cancel_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadds_cancel_reassoc_nsz" +4: "test_fadds_cancel_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fadds_cancel_reassoc" +4: "test_fadds_cancel_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadds_cancel_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_fadds_cancel_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-11-10-ashr-miscompile.txt b/SSA/Projects/InstCombine/tests/logs/2006-11-10-ashr-miscompile.txt new file mode 100644 index 000000000..4bb6c51c3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-11-10-ashr-miscompile.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-01-BadFPVectorXform.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-01-BadFPVectorXform.txt new file mode 100644 index 000000000..f626fc14a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-01-BadFPVectorXform.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test" has unsupported operation: builtin.unregistered: llvm.fsub + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-05-fp-to-int-ext.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-05-fp-to-int-ext.txt new file mode 100644 index 000000000..1779ff849 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-05-fp-to-int-ext.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-08-Phi-ICmp-Op-Fold.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-08-Phi-ICmp-Op-Fold.txt new file mode 100644 index 000000000..5eea9e069 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-08-Phi-ICmp-Op-Fold.txt @@ -0,0 +1,18 @@ +1: "visible" +4: "visible" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "visible" has unsupported operation: llvm.call + +4: "visible" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "visible" has unsupported operation: builtin.unregistered: llvm.br + +4: "visible" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "visible" has unsupported operation: builtin.unregistered: llvm.zext + +4: "visible" has unsupported operation: builtin.unregistered: llvm.br + +1: "determinant" +5: "determinant" is empty + 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 new file mode 100644 index 000000000..d4a20b6e0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-08-Select-ICmp.txt @@ -0,0 +1,16 @@ +1: "visible" +4: "visible" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "visible" has unsupported operation: llvm.call + +4: "visible" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +5: "determinant" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2006-12-15-Range-Test.txt b/SSA/Projects/InstCombine/tests/logs/2006-12-15-Range-Test.txt new file mode 100644 index 000000000..741543642 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-15-Range-Test.txt @@ -0,0 +1,34 @@ +1: "print_pgm_cond_true" +4: "print_pgm_cond_true" has unsupported operation: llvm.mlir.addressof + +4: "print_pgm_cond_true" has unsupported operation: builtin.unregistered: llvm.br + +4: "print_pgm_cond_true" has unsupported operation: llvm.store + +4: "print_pgm_cond_true" has unsupported operation: llvm.store + +4: "print_pgm_cond_true" has unsupported operation: llvm.getelementptr + +4: "print_pgm_cond_true" has unsupported operation: llvm.load + +4: "print_pgm_cond_true" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "print_pgm_cond_true" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "print_pgm_cond_true_logical" +4: "print_pgm_cond_true_logical" has unsupported operation: llvm.mlir.addressof + +4: "print_pgm_cond_true_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "print_pgm_cond_true_logical" has unsupported operation: llvm.store + +4: "print_pgm_cond_true_logical" has unsupported operation: llvm.store + +4: "print_pgm_cond_true_logical" has unsupported operation: llvm.getelementptr + +4: "print_pgm_cond_true_logical" has unsupported operation: llvm.load + +4: "print_pgm_cond_true_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "print_pgm_cond_true_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + 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 new file mode 100644 index 000000000..bf7331b5e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2006-12-23-Select-Cmp-Cmp.txt @@ -0,0 +1,17 @@ +1: "mng_write_basi" +4: "mng_write_basi" has unsupported operation: llvm.load + +4: "mng_write_basi" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "mng_write_basi" has unsupported operation: llvm.return + +4: "mng_write_basi" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-01-13-ExtCompareMiscompile.txt b/SSA/Projects/InstCombine/tests/logs/2007-01-13-ExtCompareMiscompile.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-01-13-ExtCompareMiscompile.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt new file mode 100644 index 000000000..74cf1733e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-01-18-VectorInfLoop.txt @@ -0,0 +1,3 @@ +1: "test" +"test" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-02-01-LoadSinkAlloca.txt b/SSA/Projects/InstCombine/tests/logs/2007-02-01-LoadSinkAlloca.txt new file mode 100644 index 000000000..fb9d6652f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-02-01-LoadSinkAlloca.txt @@ -0,0 +1,49 @@ +1: "test2" +4: "test2" has unsupported operation: llvm.alloca + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +1: "bar" +5: "bar" is empty + +1: "baq" +5: "baq" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-02-07-PointerCast.txt b/SSA/Projects/InstCombine/tests/logs/2007-02-07-PointerCast.txt new file mode 100644 index 000000000..63629ee5f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-02-07-PointerCast.txt @@ -0,0 +1,14 @@ +1: "printf" +5: "printf" is empty + +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "main" has unsupported operation: builtin.unregistered: llvm.zext + +4: "main" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-02-23-PhiFoldInfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2007-02-23-PhiFoldInfLoop.txt new file mode 100644 index 000000000..2b296e548 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-02-23-PhiFoldInfLoop.txt @@ -0,0 +1,15 @@ +1: "ggenorien" +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ggenorien" has unsupported operation: llvm.return + +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.br + +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.br + +4: "ggenorien" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-13-CompareMerge.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-13-CompareMerge.txt new file mode 100644 index 000000000..7a38fa4c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-13-CompareMerge.txt @@ -0,0 +1,6 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-19-BadTruncChangePR1261.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-19-BadTruncChangePR1261.txt new file mode 100644 index 000000000..fca6f28d4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-19-BadTruncChangePR1261.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-21-SignedRangeTest.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-21-SignedRangeTest.txt new file mode 100644 index 000000000..29ddc1812 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-21-SignedRangeTest.txt @@ -0,0 +1,6 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_vec" +4: "test_vec" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-25-BadShiftMask.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-25-BadShiftMask.txt new file mode 100644 index 000000000..43b0b0124 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-25-BadShiftMask.txt @@ -0,0 +1,13 @@ +1: "main" +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-25-DoubleShift.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-25-DoubleShift.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-25-DoubleShift.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-03-26-BadShiftMask.txt b/SSA/Projects/InstCombine/tests/logs/2007-03-26-BadShiftMask.txt new file mode 100644 index 000000000..08bb06903 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-03-26-BadShiftMask.txt @@ -0,0 +1,17 @@ +1: "test" +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-04-08-SingleEltVectorCrash.txt b/SSA/Projects/InstCombine/tests/logs/2007-04-08-SingleEltVectorCrash.txt new file mode 100644 index 000000000..79b569002 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-04-08-SingleEltVectorCrash.txt @@ -0,0 +1,3 @@ +1: "bork" +4: "bork" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-05-10-icmp-or.txt b/SSA/Projects/InstCombine/tests/logs/2007-05-10-icmp-or.txt new file mode 100644 index 000000000..7a38fa4c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-05-10-icmp-or.txt @@ -0,0 +1,6 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-05-14-Crash.txt b/SSA/Projects/InstCombine/tests/logs/2007-05-14-Crash.txt new file mode 100644 index 000000000..7b286b47f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-05-14-Crash.txt @@ -0,0 +1,2 @@ +3: 2007-05-14-Crash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-05-18-CastFoldBug.txt b/SSA/Projects/InstCombine/tests/logs/2007-05-18-CastFoldBug.txt new file mode 100644 index 000000000..69e17effc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-05-18-CastFoldBug.txt @@ -0,0 +1,10 @@ +1: "blah" +4: "blah" has unsupported operation: llvm.mlir.addressof + +4: "blah" has unsupported operation: llvm.call + +4: "blah" has unsupported operation: llvm.return + +1: "objc_msgSend_stret" +5: "objc_msgSend_stret" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-06-06-AshrSignBit.txt b/SSA/Projects/InstCombine/tests/logs/2007-06-06-AshrSignBit.txt new file mode 100644 index 000000000..3c5d0cf6a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-06-06-AshrSignBit.txt @@ -0,0 +1,15 @@ +1: "av_cmp_q_cond_true" +4: "av_cmp_q_cond_true" has unsupported operation: builtin.unregistered: llvm.br + +4: "av_cmp_q_cond_true" has unsupported operation: llvm.return + +4: "av_cmp_q_cond_true" has unsupported operation: llvm.load + +4: "av_cmp_q_cond_true" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "av_cmp_q_cond_true" has unsupported operation: llvm.store + +4: "av_cmp_q_cond_true" has unsupported operation: llvm.store + +4: "av_cmp_q_cond_true" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt b/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt new file mode 100644 index 000000000..4f4923c79 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-06-21-DivCompareMiscomp.txt @@ -0,0 +1,5 @@ +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-08-02-InfiniteLoop.txt b/SSA/Projects/InstCombine/tests/logs/2007-08-02-InfiniteLoop.txt new file mode 100644 index 000000000..9fa74247b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-08-02-InfiniteLoop.txt @@ -0,0 +1,7 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-09-10-AliasConstFold.txt b/SSA/Projects/InstCombine/tests/logs/2007-09-10-AliasConstFold.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2007-09-17-AliasConstFold2.txt b/SSA/Projects/InstCombine/tests/logs/2007-09-17-AliasConstFold2.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2007-10-10-EliminateMemCpy.txt b/SSA/Projects/InstCombine/tests/logs/2007-10-10-EliminateMemCpy.txt new file mode 100644 index 000000000..67f284b0f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-10-10-EliminateMemCpy.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-10-12-Crash.txt b/SSA/Projects/InstCombine/tests/logs/2007-10-12-Crash.txt new file mode 100644 index 000000000..a03a30ace --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-10-12-Crash.txt @@ -0,0 +1,2 @@ +3: 2007-10-12-Crash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-10-28-stacksave.txt b/SSA/Projects/InstCombine/tests/logs/2007-10-28-stacksave.txt new file mode 100644 index 000000000..8b6dc1f97 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-10-28-stacksave.txt @@ -0,0 +1,21 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.stackrestore + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-10-31-RangeCrash.txt b/SSA/Projects/InstCombine/tests/logs/2007-10-31-RangeCrash.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2007-10-31-StringCrash.txt b/SSA/Projects/InstCombine/tests/logs/2007-10-31-StringCrash.txt new file mode 100644 index 000000000..6c565ae1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-10-31-StringCrash.txt @@ -0,0 +1,16 @@ +1: "__darwin_gcc3_preregister_frame_info" +5: "__darwin_gcc3_preregister_frame_info" is empty + +1: "_start" +4: "_start" has unsupported operation: llvm.mlir.addressof + +4: "_start" has unsupported operation: llvm.load + +4: "_start" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_start" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_start" has unsupported operation: llvm.return + +4: "_start" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-11-07-OpaqueAlignCrash.txt b/SSA/Projects/InstCombine/tests/logs/2007-11-07-OpaqueAlignCrash.txt new file mode 100644 index 000000000..1ac77c64e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-11-07-OpaqueAlignCrash.txt @@ -0,0 +1,2 @@ +3: 2007-11-07-OpaqueAlignCrash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-11-15-CompareMiscomp.txt b/SSA/Projects/InstCombine/tests/logs/2007-11-15-CompareMiscomp.txt new file mode 100644 index 000000000..7a38fa4c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-11-15-CompareMiscomp.txt @@ -0,0 +1,6 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-11-25-CompatibleAttributes.txt b/SSA/Projects/InstCombine/tests/logs/2007-11-25-CompatibleAttributes.txt new file mode 100644 index 000000000..d656dd621 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-11-25-CompatibleAttributes.txt @@ -0,0 +1,10 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.mlir.undef + +4: "main" has unsupported operation: llvm.call + +1: "printf" +5: "printf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-10-ConstFoldCompare.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-10-ConstFoldCompare.txt new file mode 100644 index 000000000..af24e09f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-12-10-ConstFoldCompare.txt @@ -0,0 +1,7 @@ +1: "test" +4: "test" has unsupported operation after optimization: llvm.inttoptr + +4: "test" has unsupported operation after optimization: llvm.inttoptr + +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-12-GEPScale.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-12-GEPScale.txt new file mode 100644 index 000000000..4e3a60d0d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-12-12-GEPScale.txt @@ -0,0 +1,3 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-16-AsmNoUnwind.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-16-AsmNoUnwind.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-18-AddSelCmpSub.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-18-AddSelCmpSub.txt new file mode 100644 index 000000000..21316a39d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-12-18-AddSelCmpSub.txt @@ -0,0 +1,6 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.smax + diff --git a/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt b/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt new file mode 100644 index 000000000..5751e5979 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2007-12-28-IcmpSub2.txt @@ -0,0 +1,88 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.alloca + +4: "test1" has unsupported operation after optimization: llvm.store + +4: "test1" has unsupported operation after optimization: llvm.load + +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 + +4: "test2" has unsupported operation after optimization: llvm.store + +4: "test2" has unsupported operation after optimization: llvm.load + +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 + +4: "test3" has unsupported operation after optimization: llvm.store + +4: "test3" has unsupported operation after optimization: llvm.load + +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 + +4: "test4" has unsupported operation after optimization: llvm.store + +4: "test4" has unsupported operation after optimization: llvm.load + +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 + +4: "test5" has unsupported operation after optimization: llvm.store + +4: "test5" has unsupported operation after optimization: llvm.load + +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 + +4: "test6" has unsupported operation after optimization: llvm.store + +4: "test6" has unsupported operation after optimization: llvm.load + +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 + +4: "test7" has unsupported operation after optimization: llvm.store + +4: "test7" has unsupported operation after optimization: llvm.load + +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 + +4: "test8" has unsupported operation after optimization: llvm.store + +4: "test8" has unsupported operation after optimization: llvm.load + +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-06-BitCastAttributes.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-06-BitCastAttributes.txt new file mode 100644 index 000000000..6e1770232 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-06-BitCastAttributes.txt @@ -0,0 +1,26 @@ +1: "a" +4: "a" has unsupported operation: llvm.return + +1: "b" +7: "b" is unchanged by InstCombine + +1: "c" +4: "c" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: llvm.mlir.addressof + +4: "g" has unsupported operation: llvm.mlir.zero + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-06-CastCrash.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-06-CastCrash.txt new file mode 100644 index 000000000..d164e85f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-06-CastCrash.txt @@ -0,0 +1,8 @@ +1: "f" +4: "f" has unsupported operation: llvm.mlir.undef + +1: "g" +4: "g" has unsupported operation: llvm.mlir.addressof + +4: "g" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-06-VoidCast.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-06-VoidCast.txt new file mode 100644 index 000000000..20402a6fb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-06-VoidCast.txt @@ -0,0 +1,8 @@ +1: "f" +4: "f" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: llvm.mlir.addressof + +4: "g" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-13-AndCmpCmp.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-13-AndCmpCmp.txt new file mode 100644 index 000000000..5bb462809 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-13-AndCmpCmp.txt @@ -0,0 +1,10 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-14-VarArgTrampoline.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-14-VarArgTrampoline.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt new file mode 100644 index 000000000..03c8b67f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-21-MulTrunc.txt @@ -0,0 +1,30 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test1_vec" +"test1_vec" contains vectors which are unsupported + +1: "test1_vec_nonuniform" +"test1_vec_nonuniform" contains vectors which are unsupported + +1: "test1_vec_undef" +4: "test1_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "test1_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test1_vec_undef" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt b/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt new file mode 100644 index 000000000..eac632015 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-01-27-FloatSelect.txt @@ -0,0 +1,5 @@ +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-13-MulURem.txt b/SSA/Projects/InstCombine/tests/logs/2008-02-13-MulURem.txt new file mode 100644 index 000000000..8dbc2eb4d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-02-13-MulURem.txt @@ -0,0 +1,3 @@ +1: "fold" +7: "fold" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-02-16-SDivOverflow2.txt b/SSA/Projects/InstCombine/tests/logs/2008-02-16-SDivOverflow2.txt new file mode 100644 index 000000000..b38b794be --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-02-16-SDivOverflow2.txt @@ -0,0 +1,7 @@ +1: "i" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-02-23-MulSub.txt b/SSA/Projects/InstCombine/tests/logs/2008-02-23-MulSub.txt new file mode 100644 index 000000000..fead36de2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-02-23-MulSub.txt @@ -0,0 +1,9 @@ +1: "test" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.sub +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt b/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt new file mode 100644 index 000000000..e6325b686 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-02-28-OrFCmpCrash.txt @@ -0,0 +1,16 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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-03-13-IntToPtr.txt b/SSA/Projects/InstCombine/tests/logs/2008-03-13-IntToPtr.txt new file mode 100644 index 000000000..18edceb99 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-03-13-IntToPtr.txt @@ -0,0 +1,11 @@ +1: "bork" +4: "bork" has unsupported operation: llvm.load + +4: "bork" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "bork" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "bork" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bork" has unsupported operation: llvm.inttoptr + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-04-22-ByValBitcast.txt b/SSA/Projects/InstCombine/tests/logs/2008-04-22-ByValBitcast.txt new file mode 100644 index 000000000..b131f019a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-04-22-ByValBitcast.txt @@ -0,0 +1,8 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "bar" +5: "bar" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-04-28-VolatileStore.txt b/SSA/Projects/InstCombine/tests/logs/2008-04-28-VolatileStore.txt new file mode 100644 index 000000000..0c5c08920 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-04-28-VolatileStore.txt @@ -0,0 +1,7 @@ +1: "test" +4: "test" has unsupported operation: llvm.alloca + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadDontMerge.txt b/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadDontMerge.txt new file mode 100644 index 000000000..f498fd84d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadDontMerge.txt @@ -0,0 +1,15 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadMerge.txt b/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadMerge.txt new file mode 100644 index 000000000..7556ad625 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-04-29-VolatileLoadMerge.txt @@ -0,0 +1,13 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-08-LiveStoreDelete.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-08-LiveStoreDelete.txt new file mode 100644 index 000000000..65f00d306 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-08-LiveStoreDelete.txt @@ -0,0 +1,24 @@ +1: "a" +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: llvm.getelementptr + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.call + +1: "malloc" +5: "malloc" is empty + +1: "strlen" +5: "strlen" is empty + +1: "b" +5: "b" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-08-StrLenSink.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-08-StrLenSink.txt new file mode 100644 index 000000000..33c6db32e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-08-StrLenSink.txt @@ -0,0 +1,26 @@ +1: "a" +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: llvm.getelementptr + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: builtin.unregistered: llvm.br + +1: "malloc" +5: "malloc" is empty + +1: "strlen" +5: "strlen" is empty + +1: "b" +5: "b" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-09-SinkOfInvoke.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-09-SinkOfInvoke.txt new file mode 100644 index 000000000..4145e5d54 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-09-SinkOfInvoke.txt @@ -0,0 +1,2 @@ +3: 2008-05-09-SinkOfInvoke.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-17-InfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-17-InfLoop.txt new file mode 100644 index 000000000..161bbdee8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-17-InfLoop.txt @@ -0,0 +1,10 @@ +1: "BZALLOC" +5: "BZALLOC" is empty + +1: "f" +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-18-FoldIntToPtr.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-18-FoldIntToPtr.txt new file mode 100644 index 000000000..6b33af426 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-18-FoldIntToPtr.txt @@ -0,0 +1,14 @@ +1: "f1" +4: "f1" has unsupported operation after optimization: llvm.inttoptr + +4: "f1" has unsupported operation after optimization: llvm.inttoptr + +4: "f1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "f2" +4: "f2" has unsupported operation after optimization: llvm.inttoptr + +4: "f2" has unsupported operation after optimization: llvm.inttoptr + +4: "f2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt new file mode 100644 index 000000000..1b5d126a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-22-IDivVector.txt @@ -0,0 +1,3 @@ +1: "f" +"f" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-23-CompareFold.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-23-CompareFold.txt new file mode 100644 index 000000000..7f483438e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-23-CompareFold.txt @@ -0,0 +1,7 @@ +1: "f" +4: "f" has unsupported operation after optimization: llvm.load + +4: "f" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "f" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-31-AddBool.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-31-AddBool.txt new file mode 100644 index 000000000..a43c115f0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-31-AddBool.txt @@ -0,0 +1,5 @@ +1: "test" +2: llvm.func +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt b/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt new file mode 100644 index 000000000..f9b326963 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-05-31-Bools.txt @@ -0,0 +1,18 @@ +1: "foo1" +2: llvm.func +2: llvm.sub +2: llvm.return + +1: "foo2" +2: llvm.func +2: llvm.mul +2: llvm.return + +1: "foo3" +4: "foo3" has unsupported operation after optimization: llvm.udiv + +1: "foo4" +2: llvm.func +2: llvm.sdiv +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-05-ashr-crash.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-05-ashr-crash.txt new file mode 100644 index 000000000..ddc7403b7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-05-ashr-crash.txt @@ -0,0 +1,3 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-08-ICmpPHI.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-08-ICmpPHI.txt new file mode 100644 index 000000000..e5e9ce234 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-08-ICmpPHI.txt @@ -0,0 +1,48 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.return + +1: "bork" +5: "bork" is empty + +1: "bar" +5: "bar" is empty + +1: "zap" +5: "zap" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-13-InfiniteLoopStore.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-13-InfiniteLoopStore.txt new file mode 100644 index 000000000..9ced08754 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-13-InfiniteLoopStore.txt @@ -0,0 +1,15 @@ +1: "func_56" +4: "func_56" has unsupported operation: llvm.mlir.addressof + +4: "func_56" has unsupported operation: llvm.store + +4: "func_56" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_56" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_56" has unsupported operation: llvm.store + +4: "func_56" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_56" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-13-ReadOnlyCallStore.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-13-ReadOnlyCallStore.txt new file mode 100644 index 000000000..324343b50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-13-ReadOnlyCallStore.txt @@ -0,0 +1,16 @@ +1: "a" +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.call + +4: "a" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: builtin.unregistered: llvm.br + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt new file mode 100644 index 000000000..f53d9b5f0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-19-UncondLoad.txt @@ -0,0 +1,16 @@ +1: "x" +5: "x" is empty + +1: "b" +4: "b" has unsupported operation: llvm.load + +4: "b" has unsupported operation: llvm.load + +4: "b" has unsupported operation: llvm.call + +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-06-21-CompareMiscomp.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-21-CompareMiscomp.txt new file mode 100644 index 000000000..7a38fa4c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-21-CompareMiscomp.txt @@ -0,0 +1,6 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_logical" +4: "test_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-06-24-StackRestore.txt b/SSA/Projects/InstCombine/tests/logs/2008-06-24-StackRestore.txt new file mode 100644 index 000000000..cc3cb8584 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-06-24-StackRestore.txt @@ -0,0 +1,31 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.stackrestore + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-08-ShiftOneAndOne.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-08-ShiftOneAndOne.txt new file mode 100644 index 000000000..76cde23bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-08-ShiftOneAndOne.txt @@ -0,0 +1,3 @@ +1: "PR2330" +4: "PR2330" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-08-SubAnd.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-08-SubAnd.txt new file mode 100644 index 000000000..05e2363ae --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-08-SubAnd.txt @@ -0,0 +1,8 @@ +1: "a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-08-VolatileLoadMerge.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-08-VolatileLoadMerge.txt new file mode 100644 index 000000000..f498fd84d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-08-VolatileLoadMerge.txt @@ -0,0 +1,15 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-09-SubAndError.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-09-SubAndError.txt new file mode 100644 index 000000000..d6a821cc9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-09-SubAndError.txt @@ -0,0 +1,8 @@ +1: "foo" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-10-CastSextBool.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-10-CastSextBool.txt new file mode 100644 index 000000000..8207c2f4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-10-CastSextBool.txt @@ -0,0 +1,8 @@ +1: "PR2539_A" +4: "PR2539_A" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "PR2539_A" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "PR2539_B" +4: "PR2539_B" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt new file mode 100644 index 000000000..3d868aa9a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-11-RemAnd.txt @@ -0,0 +1,11 @@ +1: "a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.and +2: llvm.return + +1: "a_vec" +"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 new file mode 100644 index 000000000..09838a1f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-13-DivZero.txt @@ -0,0 +1,10 @@ +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" +5: "b" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-07-16-fsub.txt b/SSA/Projects/InstCombine/tests/logs/2008-07-16-fsub.txt new file mode 100644 index 000000000..66ada68cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-07-16-fsub.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fsub + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-08-05-And.txt b/SSA/Projects/InstCombine/tests/logs/2008-08-05-And.txt new file mode 100644 index 000000000..a3c5c51aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-08-05-And.txt @@ -0,0 +1,30 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f" has unsupported operation: llvm.return + +4: "f" has unsupported operation: llvm.return + +1: "f_logical" +4: "f_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "f_logical" has unsupported operation: llvm.load + +4: "f_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f_logical" has unsupported operation: llvm.return + +4: "f_logical" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-09-02-VectorCrash.txt b/SSA/Projects/InstCombine/tests/logs/2008-09-02-VectorCrash.txt new file mode 100644 index 000000000..7f279b705 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-09-02-VectorCrash.txt @@ -0,0 +1,21 @@ +1: "entry" +4: "entry" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "entry" has unsupported operation: llvm.mlir.zero + +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + +4: "entry" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "entry" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "entry" has unsupported operation: llvm.return + +4: "entry" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "entry" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "entry" has unsupported operation: llvm.store + +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-10-11-DivCompareFold.txt b/SSA/Projects/InstCombine/tests/logs/2008-10-11-DivCompareFold.txt new file mode 100644 index 000000000..e9d3a0393 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-10-11-DivCompareFold.txt @@ -0,0 +1,3 @@ +1: "x" +4: "x" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-10-23-ConstFoldWithoutMask.txt b/SSA/Projects/InstCombine/tests/logs/2008-10-23-ConstFoldWithoutMask.txt new file mode 100644 index 000000000..ab76fab84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-10-23-ConstFoldWithoutMask.txt @@ -0,0 +1,5 @@ +1: "tstid" +4: "tstid" has unsupported operation after optimization: llvm.inttoptr + +4: "tstid" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-11-01-SRemDemandedBits.txt b/SSA/Projects/InstCombine/tests/logs/2008-11-01-SRemDemandedBits.txt new file mode 100644 index 000000000..2c7cdd9d2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-01-SRemDemandedBits.txt @@ -0,0 +1,3 @@ +1: "foo" +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-11-08-FCmp.txt b/SSA/Projects/InstCombine/tests/logs/2008-11-08-FCmp.txt new file mode 100644 index 000000000..832d8b892 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-08-FCmp.txt @@ -0,0 +1,29 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test3" +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt b/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt new file mode 100644 index 000000000..a5a1bf8f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-27-IDivVector.txt @@ -0,0 +1,6 @@ +1: "f" +"f" contains vectors which are unsupported + +1: "g" +"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 new file mode 100644 index 000000000..a5a1bf8f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-11-27-MultiplyIntVec.txt @@ -0,0 +1,6 @@ +1: "f" +"f" contains vectors which are unsupported + +1: "g" +"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 new file mode 100644 index 000000000..9cccb4746 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2008-12-17-SRemNegConstVec.txt @@ -0,0 +1,3 @@ +1: "foo" +"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 new file mode 100644 index 000000000..873d3d45e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-05-i128-crash.txt @@ -0,0 +1,7 @@ +1: "\01_gfortrani_max_value" +4: "\01_gfortrani_max_value" has unsupported operation: builtin.unregistered: llvm.switch + +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-01-08-AlignAlloca.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-08-AlignAlloca.txt new file mode 100644 index 000000000..32fcb6bfb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-08-AlignAlloca.txt @@ -0,0 +1,2 @@ +3: 2009-01-08-AlignAlloca.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-16-PointerAddrSpace.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-16-PointerAddrSpace.txt new file mode 100644 index 000000000..b86e06d91 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-16-PointerAddrSpace.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "test" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float-specials.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float-specials.txt new file mode 100644 index 000000000..3d74bf3f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float-specials.txt @@ -0,0 +1,147 @@ +1: "foo1" +4: "foo1" has unsupported operation: llvm.mlir.addressof + +4: "foo1" has unsupported operation: llvm.call + +4: "foo1" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo1" has unsupported operation: llvm.return + +1: "printf" +5: "printf" is empty + +1: "foo2" +4: "foo2" has unsupported operation: llvm.mlir.addressof + +4: "foo2" has unsupported operation: llvm.call + +4: "foo2" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo2" has unsupported operation: llvm.return + +1: "foo3" +4: "foo3" has unsupported operation: llvm.mlir.addressof + +4: "foo3" has unsupported operation: llvm.call + +4: "foo3" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo3" has unsupported operation: llvm.return + +1: "foo4" +4: "foo4" has unsupported operation: llvm.mlir.addressof + +4: "foo4" has unsupported operation: llvm.call + +4: "foo4" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo4" has unsupported operation: llvm.return + +1: "foo5" +4: "foo5" has unsupported operation: llvm.mlir.addressof + +4: "foo5" has unsupported operation: llvm.call + +4: "foo5" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo5" has unsupported operation: llvm.return + +1: "foo6" +4: "foo6" has unsupported operation: llvm.mlir.addressof + +4: "foo6" has unsupported operation: llvm.call + +4: "foo6" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo6" has unsupported operation: llvm.return + +1: "foo7" +4: "foo7" has unsupported operation: llvm.mlir.addressof + +4: "foo7" has unsupported operation: llvm.call + +4: "foo7" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo7" has unsupported operation: llvm.return + +1: "foo8" +4: "foo8" has unsupported operation: llvm.mlir.addressof + +4: "foo8" has unsupported operation: llvm.call + +4: "foo8" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo8" has unsupported operation: llvm.return + +1: "foo9" +4: "foo9" has unsupported operation: llvm.mlir.addressof + +4: "foo9" has unsupported operation: llvm.call + +4: "foo9" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo9" has unsupported operation: llvm.return + +1: "foo10" +4: "foo10" has unsupported operation: llvm.mlir.addressof + +4: "foo10" has unsupported operation: llvm.call + +4: "foo10" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo10" has unsupported operation: llvm.return + +1: "foo11" +4: "foo11" has unsupported operation: llvm.mlir.addressof + +4: "foo11" has unsupported operation: llvm.call + +4: "foo11" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo11" has unsupported operation: llvm.return + +1: "foo12" +4: "foo12" has unsupported operation: llvm.mlir.addressof + +4: "foo12" has unsupported operation: llvm.call + +4: "foo12" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo12" has unsupported operation: llvm.return + +1: "foo13" +4: "foo13" has unsupported operation: llvm.mlir.addressof + +4: "foo13" has unsupported operation: llvm.call + +4: "foo13" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo13" has unsupported operation: llvm.return + +1: "foo14" +4: "foo14" has unsupported operation: llvm.mlir.addressof + +4: "foo14" has unsupported operation: llvm.call + +4: "foo14" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo14" has unsupported operation: llvm.return + +1: "foo15" +4: "foo15" has unsupported operation: llvm.mlir.addressof + +4: "foo15" has unsupported operation: llvm.call + +4: "foo15" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo15" has unsupported operation: llvm.return + +1: "foo16" +4: "foo16" has unsupported operation: llvm.mlir.addressof + +4: "foo16" has unsupported operation: llvm.call + +4: "foo16" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo16" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float.txt new file mode 100644 index 000000000..bb50199f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-19-fmod-constant-float.txt @@ -0,0 +1,36 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.alloca + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.load + +1: "test2" +4: "test2" has unsupported operation: llvm.alloca + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: llvm.load + +1: "test3" +4: "test3" has unsupported operation: llvm.alloca + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: llvm.load + +1: "test4" +4: "test4" has unsupported operation: llvm.alloca + +4: "test4" has unsupported operation: llvm.store + +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test4" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-24-EmptyStruct.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-24-EmptyStruct.txt new file mode 100644 index 000000000..8feb564d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-24-EmptyStruct.txt @@ -0,0 +1,2 @@ +3: 2009-01-24-EmptyStruct.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-01-31-InfIterate.txt b/SSA/Projects/InstCombine/tests/logs/2009-01-31-InfIterate.txt new file mode 100644 index 000000000..6332bb28c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-01-31-InfIterate.txt @@ -0,0 +1,15 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-02-04-FPBitcast.txt b/SSA/Projects/InstCombine/tests/logs/2009-02-04-FPBitcast.txt new file mode 100644 index 000000000..81fde9429 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-02-04-FPBitcast.txt @@ -0,0 +1,6 @@ +1: "cast" +4: "cast" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +1: "invcast" +4: "invcast" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-02-11-NotInitialized.txt b/SSA/Projects/InstCombine/tests/logs/2009-02-11-NotInitialized.txt new file mode 100644 index 000000000..c14a4a3b9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-02-11-NotInitialized.txt @@ -0,0 +1,8 @@ +1: "use" +4: "use" has unsupported operation: llvm.call + +4: "use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-02-20-InstCombine-SROA.txt b/SSA/Projects/InstCombine/tests/logs/2009-02-20-InstCombine-SROA.txt new file mode 100644 index 000000000..8d1896a9f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-02-20-InstCombine-SROA.txt @@ -0,0 +1,2 @@ +3: 2009-02-20-InstCombine-SROA.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-02-21-LoadCST.txt b/SSA/Projects/InstCombine/tests/logs/2009-02-21-LoadCST.txt new file mode 100644 index 000000000..e1619ae46 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-02-21-LoadCST.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test" has unsupported operation after optimization: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-02-25-CrashZeroSizeArray.txt b/SSA/Projects/InstCombine/tests/logs/2009-02-25-CrashZeroSizeArray.txt new file mode 100644 index 000000000..b213f869b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-02-25-CrashZeroSizeArray.txt @@ -0,0 +1,17 @@ +1: "_ada_c32001b" +4: "_ada_c32001b" has unsupported operation: llvm.alloca + +4: "_ada_c32001b" has unsupported operation: llvm.load + +4: "_ada_c32001b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_ada_c32001b" has unsupported operation: llvm.load + +4: "_ada_c32001b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_ada_c32001b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_ada_c32001b" has unsupported operation: llvm.return + +4: "_ada_c32001b" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-03-18-vector-ashr-crash.txt b/SSA/Projects/InstCombine/tests/logs/2009-03-18-vector-ashr-crash.txt new file mode 100644 index 000000000..e743354ff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-03-18-vector-ashr-crash.txt @@ -0,0 +1,2 @@ +3: 2009-03-18-vector-ashr-crash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-03-24-InfLoop.txt b/SSA/Projects/InstCombine/tests/logs/2009-03-24-InfLoop.txt new file mode 100644 index 000000000..64b103791 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-03-24-InfLoop.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-04-07-MulPromoteToI96.txt b/SSA/Projects/InstCombine/tests/logs/2009-04-07-MulPromoteToI96.txt new file mode 100644 index 000000000..1e2b38b6b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-04-07-MulPromoteToI96.txt @@ -0,0 +1,7 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-05-23-FCmpToICmp.txt b/SSA/Projects/InstCombine/tests/logs/2009-05-23-FCmpToICmp.txt new file mode 100644 index 000000000..af227454f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-05-23-FCmpToICmp.txt @@ -0,0 +1,7 @@ +1: "f0" +4: "f0" has unsupported operation after optimization: llvm.load + +4: "f0" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "f0" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-06-11-StoreAddrSpace.txt b/SSA/Projects/InstCombine/tests/logs/2009-06-11-StoreAddrSpace.txt new file mode 100644 index 000000000..85d89120a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-06-11-StoreAddrSpace.txt @@ -0,0 +1,7 @@ +1: "a" +4: "a" has unsupported operation: llvm.mlir.zero + +4: "a" has unsupported operation: llvm.store + +4: "a" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-06-16-SRemDemandedBits.txt b/SSA/Projects/InstCombine/tests/logs/2009-06-16-SRemDemandedBits.txt new file mode 100644 index 000000000..94e3938d5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-06-16-SRemDemandedBits.txt @@ -0,0 +1,3 @@ +1: "a" +7: "a" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-07-02-MaskedIntVector.txt b/SSA/Projects/InstCombine/tests/logs/2009-07-02-MaskedIntVector.txt new file mode 100644 index 000000000..78d81f2a1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-07-02-MaskedIntVector.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt b/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt new file mode 100644 index 000000000..0cb4690e8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2009-12-17-CmpSelectNull.txt @@ -0,0 +1,9 @@ +1: "demangle_qualified" +4: "demangle_qualified" has unsupported operation: llvm.mlir.addressof + +4: "demangle_qualified" has unsupported operation: llvm.mlir.addressof + +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-01-28-NegativeSRem.txt b/SSA/Projects/InstCombine/tests/logs/2010-01-28-NegativeSRem.txt new file mode 100644 index 000000000..acd504bd3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-01-28-NegativeSRem.txt @@ -0,0 +1,7 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt b/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt new file mode 100644 index 000000000..0964193e9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-03-03-ExtElim.txt @@ -0,0 +1,41 @@ +1: "PR6486" +4: "PR6486" has unsupported operation after optimization: llvm.mlir.addressof + +4: "PR6486" has unsupported operation after optimization: llvm.mlir.zero + +4: "PR6486" has unsupported operation after optimization: llvm.load + +4: "PR6486" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "PR6486" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "PR6486" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "PR16462_1" +4: "PR16462_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "PR16462_1" has unsupported operation after optimization: llvm.mlir.addressof + +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 + +4: "PR16462_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "PR16462_2" +4: "PR16462_2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "PR16462_2" has unsupported operation after optimization: llvm.mlir.addressof + +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/2010-05-30-memcpy-Struct.txt b/SSA/Projects/InstCombine/tests/logs/2010-05-30-memcpy-Struct.txt new file mode 100644 index 000000000..59ad571c4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-05-30-memcpy-Struct.txt @@ -0,0 +1,11 @@ +1: "CopyEventArg" +4: "CopyEventArg" has unsupported operation: llvm.call + +4: "CopyEventArg" has unsupported operation: llvm.return + +1: "sprintf" +5: "sprintf" is empty + +1: "strcpy" +5: "strcpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2010-11-01-lshr-mask.txt b/SSA/Projects/InstCombine/tests/logs/2010-11-01-lshr-mask.txt new file mode 100644 index 000000000..ac572b704 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-11-01-lshr-mask.txt @@ -0,0 +1,27 @@ +1: "main" +4: "main" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "main" has unsupported operation: builtin.unregistered: llvm.zext + +1: "foo" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.and +2: llvm.and +2: llvm.sub +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.lshr +2: llvm.shl +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2010-11-21-SizeZeroTypeGEP.txt b/SSA/Projects/InstCombine/tests/logs/2010-11-21-SizeZeroTypeGEP.txt new file mode 100644 index 000000000..86c2ef0d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-11-21-SizeZeroTypeGEP.txt @@ -0,0 +1,2 @@ +3: 2010-11-21-SizeZeroTypeGEP.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2010-11-23-Distributed.txt b/SSA/Projects/InstCombine/tests/logs/2010-11-23-Distributed.txt new file mode 100644 index 000000000..7c050f57b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2010-11-23-Distributed.txt @@ -0,0 +1,11 @@ +1: "foo" +2: llvm.func +2: llvm.add +2: llvm.mul +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "bar" +4: "bar" has unsupported operation: 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 new file mode 100644 index 000000000..e71d3c633 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-02-14-InfLoop.txt @@ -0,0 +1,37 @@ +1: "m_387" +4: "m_387" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "m_387" has unsupported operation: llvm.mlir.undef + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: llvm.mlir.undef + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: llvm.mlir.undef + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "m_387" has unsupported operation: builtin.unregistered: llvm.insertelement + +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-03-08-SRemMinusOneBadOpt.txt b/SSA/Projects/InstCombine/tests/logs/2011-03-08-SRemMinusOneBadOpt.txt new file mode 100644 index 000000000..e229a12de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-03-08-SRemMinusOneBadOpt.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt b/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt new file mode 100644 index 000000000..159e64d4f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-05-02-VectorBoolean.txt @@ -0,0 +1,3 @@ +1: "entry" +"entry" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/2011-05-13-InBoundsGEP.txt b/SSA/Projects/InstCombine/tests/logs/2011-05-13-InBoundsGEP.txt new file mode 100644 index 000000000..f22393690 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-05-13-InBoundsGEP.txt @@ -0,0 +1,15 @@ +1: "main" +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: builtin.unregistered: llvm.sext + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: builtin.unregistered: llvm.sext + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/2011-05-28-swapmulsub.txt b/SSA/Projects/InstCombine/tests/logs/2011-05-28-swapmulsub.txt new file mode 100644 index 000000000..7306c2b51 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-05-28-swapmulsub.txt @@ -0,0 +1,9 @@ +1: "foo1" +4: "foo1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "foo2" +4: "foo2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "foo3" +4: "foo3" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/2011-06-13-nsw-alloca.txt b/SSA/Projects/InstCombine/tests/logs/2011-06-13-nsw-alloca.txt new file mode 100644 index 000000000..cc4c87a71 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-06-13-nsw-alloca.txt @@ -0,0 +1,61 @@ +1: "fu1" +4: "fu1" has unsupported operation: llvm.mlir.zero + +4: "fu1" has unsupported operation: llvm.alloca + +4: "fu1" has unsupported operation: llvm.alloca + +4: "fu1" has unsupported operation: llvm.store + +4: "fu1" has unsupported operation: llvm.store + +4: "fu1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fu1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "fu1" has unsupported operation: llvm.load + +4: "fu1" has unsupported operation: llvm.alloca + +4: "fu1" has unsupported operation: llvm.store + +4: "fu1" has unsupported operation: builtin.unregistered: llvm.br + +4: "fu1" has unsupported operation: llvm.load + +4: "fu1" has unsupported operation: llvm.call + +4: "fu1" has unsupported operation: llvm.return + +1: "bar" +5: "bar" is empty + +1: "fu2" +4: "fu2" has unsupported operation: llvm.mlir.zero + +4: "fu2" has unsupported operation: llvm.alloca + +4: "fu2" has unsupported operation: llvm.alloca + +4: "fu2" has unsupported operation: llvm.store + +4: "fu2" has unsupported operation: llvm.store + +4: "fu2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fu2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "fu2" has unsupported operation: llvm.load + +4: "fu2" has unsupported operation: llvm.alloca + +4: "fu2" has unsupported operation: llvm.store + +4: "fu2" has unsupported operation: builtin.unregistered: llvm.br + +4: "fu2" has unsupported operation: llvm.load + +4: "fu2" has unsupported operation: llvm.call + +4: "fu2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2011-09-03-Trampoline.txt b/SSA/Projects/InstCombine/tests/logs/2011-09-03-Trampoline.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/2011-10-07-AlignPromotion.txt b/SSA/Projects/InstCombine/tests/logs/2011-10-07-AlignPromotion.txt new file mode 100644 index 000000000..08a072a48 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2011-10-07-AlignPromotion.txt @@ -0,0 +1,14 @@ +1: "t" +4: "t" has unsupported operation: llvm.alloca + +4: "t" has unsupported operation: llvm.load + +4: "t" has unsupported operation: llvm.store + +4: "t" has unsupported operation: llvm.call + +4: "t" has unsupported operation: llvm.return + +1: "foo" +5: "foo" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-01-11-OpaqueBitcastCrash.txt b/SSA/Projects/InstCombine/tests/logs/2012-01-11-OpaqueBitcastCrash.txt new file mode 100644 index 000000000..7b8cb44da --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-01-11-OpaqueBitcastCrash.txt @@ -0,0 +1,2 @@ +3: 2012-01-11-OpaqueBitcastCrash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-02-13-FCmp.txt b/SSA/Projects/InstCombine/tests/logs/2012-02-13-FCmp.txt new file mode 100644 index 000000000..c8936df4a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-02-13-FCmp.txt @@ -0,0 +1,30 @@ +1: "printf" +5: "printf" is empty + +1: "_Z8tempCastj" +4: "_Z8tempCastj" has unsupported operation: llvm.mlir.addressof + +4: "_Z8tempCastj" has unsupported operation: llvm.mlir.addressof + +4: "_Z8tempCastj" has unsupported operation: llvm.call + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "_Z8tempCastj" has unsupported operation: llvm.call + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z8tempCastj" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-02-28-ICmp.txt b/SSA/Projects/InstCombine/tests/logs/2012-02-28-ICmp.txt new file mode 100644 index 000000000..33c3b2374 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-02-28-ICmp.txt @@ -0,0 +1,14 @@ +1: "f1" +4: "f1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "f1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "f1_logical" +4: "f1_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "f1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-03-10-InstCombine.txt b/SSA/Projects/InstCombine/tests/logs/2012-03-10-InstCombine.txt new file mode 100644 index 000000000..7a9066ffe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-03-10-InstCombine.txt @@ -0,0 +1,46 @@ +1: "func" +4: "func" has unsupported operation: llvm.alloca + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +1: "func_logical" +4: "func_logical" has unsupported operation: llvm.alloca + +4: "func_logical" has unsupported operation: llvm.store + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_logical" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt b/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt new file mode 100644 index 000000000..9cccb4746 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-04-24-vselect.txt @@ -0,0 +1,3 @@ +1: "foo" +"foo" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-04-30-SRem.txt b/SSA/Projects/InstCombine/tests/logs/2012-04-30-SRem.txt new file mode 100644 index 000000000..8fd558522 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-04-30-SRem.txt @@ -0,0 +1,3 @@ +1: "foo" +7: "foo" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-05-28-select-hang.txt b/SSA/Projects/InstCombine/tests/logs/2012-05-28-select-hang.txt new file mode 100644 index 000000000..e5f736627 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-05-28-select-hang.txt @@ -0,0 +1,21 @@ +1: "func" +4: "func" has unsupported operation: llvm.mlir.addressof + +4: "func" has unsupported operation: llvm.mlir.addressof + +4: "func" has unsupported operation: llvm.mlir.addressof + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-06-06-LoadOfPHIs.txt b/SSA/Projects/InstCombine/tests/logs/2012-06-06-LoadOfPHIs.txt new file mode 100644 index 000000000..3e7f5e905 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-06-06-LoadOfPHIs.txt @@ -0,0 +1,185 @@ +1: "func" +4: "func" has unsupported operation: llvm.alloca + +4: "func" has unsupported operation: llvm.alloca + +4: "func" has unsupported operation: llvm.alloca + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "func" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: llvm.store + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-07-25-LoadPart.txt b/SSA/Projects/InstCombine/tests/logs/2012-07-25-LoadPart.txt new file mode 100644 index 000000000..6fe4207f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-07-25-LoadPart.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation after optimization: llvm.mlir.addressof + +4: "foo" has unsupported operation after optimization: llvm.getelementptr + +4: "foo" has unsupported operation after optimization: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-07-30-addrsp-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/2012-07-30-addrsp-bitcast.txt new file mode 100644 index 000000000..f0d6cc0e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-07-30-addrsp-bitcast.txt @@ -0,0 +1,14 @@ +1: "foo" +5: "foo" is empty + +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + 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 new file mode 100644 index 000000000..b54939f33 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-08-28-udiv_ashl.txt @@ -0,0 +1,15 @@ +1: "udiv400" +4: "udiv400" has unsupported operation: llvm.udiv + +1: "udiv400_no" +4: "udiv400_no" has unsupported operation: llvm.udiv + +1: "sdiv400_yes" +4: "sdiv400_yes" has unsupported operation: llvm.udiv + +1: "udiv_i80" +4: "udiv_i80" has unsupported operation: llvm.udiv + +1: "no_crash_notconst_udiv" +4: "no_crash_notconst_udiv" has unsupported operation: llvm.udiv + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-09-17-ZeroSizedAlloca.txt b/SSA/Projects/InstCombine/tests/logs/2012-09-17-ZeroSizedAlloca.txt new file mode 100644 index 000000000..11aaa5794 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-09-17-ZeroSizedAlloca.txt @@ -0,0 +1,13 @@ +1: "f" +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-10-25-vector-of-pointers.txt b/SSA/Projects/InstCombine/tests/logs/2012-10-25-vector-of-pointers.txt new file mode 100644 index 000000000..8963ef77d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-10-25-vector-of-pointers.txt @@ -0,0 +1,23 @@ +1: "widget" +4: "widget" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.br + +4: "widget" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "widget" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-12-14-simp-vgep.txt b/SSA/Projects/InstCombine/tests/logs/2012-12-14-simp-vgep.txt new file mode 100644 index 000000000..3696a8d75 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-12-14-simp-vgep.txt @@ -0,0 +1,19 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.zero + +4: "foo" has unsupported operation: llvm.mlir.undef + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-3-15-or-xor-constant.txt b/SSA/Projects/InstCombine/tests/logs/2012-3-15-or-xor-constant.txt new file mode 100644 index 000000000..b5c493070 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-3-15-or-xor-constant.txt @@ -0,0 +1,5 @@ +1: "function" +4: "function" has unsupported operation: llvm.inttoptr + +4: "function" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/2012-6-7-vselect-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/2012-6-7-vselect-bitcast.txt new file mode 100644 index 000000000..6a7674e0e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2012-6-7-vselect-bitcast.txt @@ -0,0 +1,5 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/2013-03-05-Combine-BitcastTy-Into-Alloca.txt b/SSA/Projects/InstCombine/tests/logs/2013-03-05-Combine-BitcastTy-Into-Alloca.txt new file mode 100644 index 000000000..066e63367 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2013-03-05-Combine-BitcastTy-Into-Alloca.txt @@ -0,0 +1,2 @@ +3: 2013-03-05-Combine-BitcastTy-Into-Alloca.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/2023-07-13-arm-infiniteloop.txt b/SSA/Projects/InstCombine/tests/logs/2023-07-13-arm-infiniteloop.txt new file mode 100644 index 000000000..8574b9fe0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/2023-07-13-arm-infiniteloop.txt @@ -0,0 +1,11 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/AArch64 b/SSA/Projects/InstCombine/tests/logs/AArch64 new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/AMDGPU b/SSA/Projects/InstCombine/tests/logs/AMDGPU new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ARM b/SSA/Projects/InstCombine/tests/logs/ARM new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/AddOverFlow.txt b/SSA/Projects/InstCombine/tests/logs/AddOverFlow.txt new file mode 100644 index 000000000..dd4afc52b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/AddOverFlow.txt @@ -0,0 +1,135 @@ +1: "oppositesign" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "zero_sign_bit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.return + +1: "zero_sign_bit2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "bounded" +5: "bounded" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "add_bounded_values" +4: "add_bounded_values" has unsupported operation: llvm.mlir.undef + +4: "add_bounded_values" has unsupported operation: llvm.call + +4: "add_bounded_values" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "add_bounded_values" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "add_bounded_values_2" +4: "add_bounded_values_2" has unsupported operation: llvm.mlir.undef + +4: "add_bounded_values_2" has unsupported operation: llvm.call + +4: "add_bounded_values_2" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "add_bounded_values_2" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "ripple_nsw1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ripple_nsw2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ripple_nsw3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ripple_nsw4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ripple_nsw5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.add +2: llvm.return + +1: "ripple_nsw6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.add +2: llvm.return + +1: "ripple_no_nsw1" +7: "ripple_no_nsw1" is unchanged by InstCombine + +1: "ripple_no_nsw2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ripple_no_nsw3" +7: "ripple_no_nsw3" is unchanged by InstCombine + +1: "ripple_no_nsw4" +7: "ripple_no_nsw4" is unchanged by InstCombine + +1: "ripple_no_nsw5" +7: "ripple_no_nsw5" is unchanged by InstCombine + +1: "ripple_no_nsw6" +7: "ripple_no_nsw6" is unchanged by InstCombine + +1: "PR38021" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/CPP_min_max.txt b/SSA/Projects/InstCombine/tests/logs/CPP_min_max.txt new file mode 100644 index 000000000..8d54ea5e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/CPP_min_max.txt @@ -0,0 +1,22 @@ +1: "_Z5test1RiS_" +4: "_Z5test1RiS_" has unsupported operation: llvm.load + +4: "_Z5test1RiS_" has unsupported operation: llvm.load + +4: "_Z5test1RiS_" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "_Z5test1RiS_" has unsupported operation: llvm.store + +4: "_Z5test1RiS_" has unsupported operation: llvm.return + +1: "_Z5test2RiS_" +4: "_Z5test2RiS_" has unsupported operation: llvm.load + +4: "_Z5test2RiS_" has unsupported operation: llvm.load + +4: "_Z5test2RiS_" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "_Z5test2RiS_" has unsupported operation: llvm.store + +4: "_Z5test2RiS_" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/ExtractCast.txt b/SSA/Projects/InstCombine/tests/logs/ExtractCast.txt new file mode 100644 index 000000000..ae1d1b8c4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ExtractCast.txt @@ -0,0 +1,10 @@ +1: "a" +4: "a" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "a" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "b" +4: "b" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "b" has unsupported operation: builtin.unregistered: llvm.fptosi + diff --git a/SSA/Projects/InstCombine/tests/logs/Hexagon b/SSA/Projects/InstCombine/tests/logs/Hexagon new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/InferAlignAttribute.txt b/SSA/Projects/InstCombine/tests/logs/InferAlignAttribute.txt new file mode 100644 index 000000000..a6d81d1d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/InferAlignAttribute.txt @@ -0,0 +1,21 @@ +1: "widen_align_from_allocalign_callsite" +4: "widen_align_from_allocalign_callsite" has unsupported operation: llvm.call + +1: "widen_align_from_allocalign" +4: "widen_align_from_allocalign" has unsupported operation: llvm.call + +1: "dont_narrow_align_from_allocalign" +4: "dont_narrow_align_from_allocalign" has unsupported operation: llvm.call + +1: "my_aligned_alloc_3" +4: "my_aligned_alloc_3" has unsupported operation: llvm.call + +1: "allocalign_disappears" +4: "allocalign_disappears" has unsupported operation: llvm.call + +1: "my_aligned_alloc" +5: "my_aligned_alloc" is empty + +1: "my_aligned_alloc_2" +5: "my_aligned_alloc_2" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/IntPtrCast.txt b/SSA/Projects/InstCombine/tests/logs/IntPtrCast.txt new file mode 100644 index 000000000..5235402cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/IntPtrCast.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test" has unsupported operation after optimization: llvm.inttoptr + diff --git a/SSA/Projects/InstCombine/tests/logs/JavaCompare.txt b/SSA/Projects/InstCombine/tests/logs/JavaCompare.txt new file mode 100644 index 000000000..dba191327 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/JavaCompare.txt @@ -0,0 +1,6 @@ +1: "le" +4: "le" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "llvm.scmp.i32.i32" +5: "llvm.scmp.i32.i32" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/LandingPadClauses.txt b/SSA/Projects/InstCombine/tests/logs/LandingPadClauses.txt new file mode 100644 index 000000000..5aeda415d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/LandingPadClauses.txt @@ -0,0 +1,183 @@ +1: "generic_personality" +5: "generic_personality" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "__objc_personality_v0" +5: "__objc_personality_v0" is empty + +1: "__C_specific_handler" +5: "__C_specific_handler" is empty + +1: "bar" +5: "bar" is empty + +1: "foo_generic" +4: "foo_generic" has unsupported operation: llvm.mlir.addressof + +4: "foo_generic" has unsupported operation: llvm.mlir.addressof + +4: "foo_generic" has unsupported operation: llvm.mlir.undef + +4: "foo_generic" has unsupported operation: llvm.mlir.undef + +4: "foo_generic" has unsupported operation: llvm.insertvalue + +4: "foo_generic" has unsupported operation: llvm.mlir.zero + +4: "foo_generic" has unsupported operation: llvm.mlir.undef + +4: "foo_generic" has unsupported operation: llvm.insertvalue + +4: "foo_generic" has unsupported operation: llvm.mlir.undef + +4: "foo_generic" has unsupported operation: llvm.insertvalue + +4: "foo_generic" has unsupported operation: llvm.insertvalue + +4: "foo_generic" has unsupported operation: llvm.mlir.addressof + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_generic" has unsupported operation: llvm.return + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_generic" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "foo_cxx" +4: "foo_cxx" has unsupported operation: llvm.mlir.zero + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_cxx" has unsupported operation: llvm.return + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_cxx" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "foo_objc" +4: "foo_objc" has unsupported operation: llvm.mlir.zero + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_objc" has unsupported operation: llvm.return + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_objc" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "foo_seh" +4: "foo_seh" has unsupported operation: llvm.mlir.zero + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "foo_seh" has unsupported operation: llvm.return + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "foo_seh" has unsupported operation: builtin.unregistered: llvm.unreachable + diff --git a/SSA/Projects/InstCombine/tests/logs/NVPTX b/SSA/Projects/InstCombine/tests/logs/NVPTX new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/OverlappingInsertvalues.txt b/SSA/Projects/InstCombine/tests/logs/OverlappingInsertvalues.txt new file mode 100644 index 000000000..5fd2178bf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/OverlappingInsertvalues.txt @@ -0,0 +1,2 @@ +3: OverlappingInsertvalues.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/PR30597.txt b/SSA/Projects/InstCombine/tests/logs/PR30597.txt new file mode 100644 index 000000000..33935da6f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/PR30597.txt @@ -0,0 +1,16 @@ +1: "dot_ref_s" +4: "dot_ref_s" has unsupported operation after optimization: llvm.mlir.zero + +4: "dot_ref_s" has unsupported operation after optimization: llvm.load + +4: "dot_ref_s" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "dot_ref_s" has unsupported operation after optimization: llvm.inttoptr + +4: "dot_ref_s" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "function" +4: "function" has unsupported operation: llvm.load + +4: "function" has unsupported operation: llvm.inttoptr + diff --git a/SSA/Projects/InstCombine/tests/logs/PR37526.txt b/SSA/Projects/InstCombine/tests/logs/PR37526.txt new file mode 100644 index 000000000..25f5be212 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/PR37526.txt @@ -0,0 +1,15 @@ +1: "PR37526" +4: "PR37526" has unsupported operation: llvm.load + +4: "PR37526" has unsupported operation: llvm.load + +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 + +4: "PR37526" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/PowerPC b/SSA/Projects/InstCombine/tests/logs/PowerPC new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/README.txt b/SSA/Projects/InstCombine/tests/logs/README.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/RISCV b/SSA/Projects/InstCombine/tests/logs/RISCV new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/StoreToNull-DbgCheck.txt b/SSA/Projects/InstCombine/tests/logs/StoreToNull-DbgCheck.txt new file mode 100644 index 000000000..e79e4096a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/StoreToNull-DbgCheck.txt @@ -0,0 +1,7 @@ +1: "_Z3foov" +4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "_Z3foov" has unsupported operation: llvm.store + +4: "_Z3foov" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/SystemZ b/SSA/Projects/InstCombine/tests/logs/SystemZ new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/X86 b/SSA/Projects/InstCombine/tests/logs/X86 new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/abs-1.txt b/SSA/Projects/InstCombine/tests/logs/abs-1.txt new file mode 100644 index 000000000..eefae4683 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/abs-1.txt @@ -0,0 +1,301 @@ +1: "abs" +5: "abs" is empty + +1: "labs" +5: "labs" is empty + +1: "llabs" +5: "llabs" is empty + +1: "test_abs" +4: "test_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_labs" +4: "test_labs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_llabs" +4: "test_llabs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_1" +4: "abs_canonical_1" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_2" +4: "abs_canonical_2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_2_vec_poison_elts" +4: "abs_canonical_2_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_3" +4: "abs_canonical_3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_4" +4: "abs_canonical_4" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_5" +4: "abs_canonical_5" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "abs_canonical_5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_canonical_6" +4: "abs_canonical_6" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_7" +4: "abs_canonical_7" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_8" +4: "abs_canonical_8" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_9" +4: "abs_canonical_9" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_canonical_10" +4: "abs_canonical_10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_1" +4: "nabs_canonical_1" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_2" +4: "nabs_canonical_2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_2_vec_poison_elts" +4: "nabs_canonical_2_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_3" +4: "nabs_canonical_3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_4" +4: "nabs_canonical_4" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_5" +4: "nabs_canonical_5" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "nabs_canonical_5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "nabs_canonical_6" +4: "nabs_canonical_6" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_7" +4: "nabs_canonical_7" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_8" +4: "nabs_canonical_8" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_9" +4: "nabs_canonical_9" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_canonical_10" +4: "nabs_canonical_10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_abs_commute0" +4: "shifty_abs_commute0" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_abs_commute0_nsw" +4: "shifty_abs_commute0_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_abs_commute0_nuw" +4: "shifty_abs_commute0_nuw" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "shifty_abs_commute1" +4: "shifty_abs_commute1" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_abs_commute2" +4: "shifty_abs_commute2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_abs_commute3" +4: "shifty_abs_commute3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "extra_use" +5: "extra_use" is empty + +1: "extra_use_i1" +5: "extra_use_i1" is empty + +1: "shifty_abs_too_many_uses" +4: "shifty_abs_too_many_uses" has unsupported operation: llvm.call + +1: "shifty_sub" +4: "shifty_sub" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_sub_nsw_commute" +4: "shifty_sub_nsw_commute" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "shifty_sub_nuw_vec_commute" +4: "shifty_sub_nuw_vec_commute" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "shifty_sub_nsw_nuw" +4: "shifty_sub_nsw_nuw" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "negate_abs" +4: "negate_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "negate_nabs" +4: "negate_nabs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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" +4: "abs_swapped" has unsupported operation: llvm.call + +4: "abs_swapped" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_swapped" +4: "nabs_swapped" has unsupported operation: llvm.call + +4: "nabs_swapped" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_different_constants" +4: "abs_different_constants" has unsupported operation: llvm.call + +4: "abs_different_constants" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_different_constants" +4: "nabs_different_constants" has unsupported operation: llvm.call + +4: "nabs_different_constants" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "infinite_loop_constant_expression_abs" +4: "infinite_loop_constant_expression_abs" has unsupported operation: llvm.mlir.addressof + +4: "infinite_loop_constant_expression_abs" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "infinite_loop_constant_expression_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_extra_use_icmp" +4: "abs_extra_use_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "abs_extra_use_icmp" has unsupported operation: llvm.call + +4: "abs_extra_use_icmp" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_extra_use_sub" +4: "abs_extra_use_sub" has unsupported operation: llvm.call + +4: "abs_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_extra_use_icmp_sub" +4: "abs_extra_use_icmp_sub" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "abs_extra_use_icmp_sub" has unsupported operation: llvm.call + +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 + +4: "nabs_extra_use_icmp" has unsupported operation: llvm.call + +4: "nabs_extra_use_icmp" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_extra_use_sub" +4: "nabs_extra_use_sub" has unsupported operation: llvm.call + +4: "nabs_extra_use_sub" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_extra_use_icmp_sub" +4: "nabs_extra_use_icmp_sub" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nabs_extra_use_icmp_sub" has unsupported operation: llvm.call + +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 + +4: "abs_diff_signed_sgt" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_diff_signed_sge" +4: "abs_diff_signed_sge" has unsupported operation: llvm.call + +4: "abs_diff_signed_sge" has unsupported operation: llvm.call + +4: "abs_diff_signed_sge" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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 + +1: "abs_diff_signed_sgt_nuw" +4: "abs_diff_signed_sgt_nuw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_diff_signed_sgt_nuw_extra_use1" +4: "abs_diff_signed_sgt_nuw_extra_use1" has unsupported operation: llvm.call + +4: "abs_diff_signed_sgt_nuw_extra_use1" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_diff_signed_sgt_nuw_extra_use2" +4: "abs_diff_signed_sgt_nuw_extra_use2" has unsupported operation: llvm.call + +4: "abs_diff_signed_sgt_nuw_extra_use2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_diff_signed_sgt_nuw_extra_use3" +4: "abs_diff_signed_sgt_nuw_extra_use3" has unsupported operation: llvm.call + +4: "abs_diff_signed_sgt_nuw_extra_use3" has unsupported operation: llvm.call + +4: "abs_diff_signed_sgt_nuw_extra_use3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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 + +1: "abs_diff_signed_sle_swap" +4: "abs_diff_signed_sle_swap" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_diff_signed_sgt_swap" +4: "nabs_diff_signed_sgt_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "nabs_diff_signed_sge_swap" has unsupported operation: llvm.call + +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 new file mode 100644 index 000000000..b4101d53a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/abs-intrinsic.txt @@ -0,0 +1,244 @@ +1: "use" +5: "use" is empty + +1: "test_abs_abs_a_mul_b_i8" +4: "test_abs_abs_a_mul_b_i8" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_a_mul_abs_b_i8" +4: "test_abs_a_mul_abs_b_i8" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_abs_a_mul_b_i32" +4: "test_abs_abs_a_mul_b_i32" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_abs_a_mul_b_i32_abs_false_true" +4: "test_abs_abs_a_mul_b_i32_abs_false_true" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_abs_a_mul_b_i32_abs_true_false" +4: "test_abs_abs_a_mul_b_i32_abs_true_false" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_abs_a_mul_b_i32_abs_false_false" +4: "test_abs_abs_a_mul_b_i32_abs_false_false" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_nsw_with_true" +4: "test_nsw_with_true" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_nsw_with_false" +4: "test_nsw_with_false" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test_abs_abs_a_mul_b_more_one_use" +4: "test_abs_abs_a_mul_b_more_one_use" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "test_abs_abs_a_mul_b_more_one_use" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "test_abs_abs_a_mul_b_more_one_use" has unsupported operation: llvm.call + +1: "test_abs_abs_a_mul_b_vector_i8" +4: "test_abs_abs_a_mul_b_vector_i8" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_trailing_zeros" +4: "abs_trailing_zeros" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_trailing_zeros_vec" +4: "abs_trailing_zeros_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_trailing_zeros_negative" +4: "abs_trailing_zeros_negative" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_trailing_zeros_negative_vec" +4: "abs_trailing_zeros_negative_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_signbits" +4: "abs_signbits" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "abs_signbits" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_signbits_vec" +4: "abs_signbits_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "abs_signbits_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_of_neg" +4: "abs_of_neg" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_of_neg_vec" +4: "abs_of_neg_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_of_select_neg_true_val" +4: "abs_of_select_neg_true_val" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_of_select_neg_false_val" +4: "abs_of_select_neg_false_val" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_dom_cond_nopoison" +4: "abs_dom_cond_nopoison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "abs_dom_cond_nopoison" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "abs_dom_cond_poison" +4: "abs_dom_cond_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "abs_dom_cond_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "zext_abs" +4: "zext_abs" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_abs" +"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 + +1: "assume_abs" +4: "assume_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "assume_abs" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "abs_assume_neg" +4: "abs_assume_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "abs_assume_neg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "abs_known_neg" +4: "abs_known_neg" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_eq_int_min_poison" +4: "abs_eq_int_min_poison" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "abs_eq_int_min_poison" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "abs_ne_int_min_poison" +4: "abs_ne_int_min_poison" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "abs_ne_int_min_poison" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "abs_eq_int_min_nopoison" +4: "abs_eq_int_min_nopoison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "abs_ne_int_min_nopoison" +4: "abs_ne_int_min_nopoison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "abs_sext" +4: "abs_sext" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "abs_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_nsw_sext" +4: "abs_nsw_sext" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "abs_nsw_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "abs_sext_extra_use" +4: "abs_sext_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "abs_sext_extra_use" has unsupported operation: llvm.store + +4: "abs_sext_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "trunc_abs_sext" +4: "trunc_abs_sext" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "trunc_abs_sext_vec" +4: "trunc_abs_sext_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "demand_low_bit" +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 + +1: "demand_low_bits" +4: "demand_low_bits" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "srem_by_2_int_min_is_poison" +4: "srem_by_2_int_min_is_poison" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +1: "srem_by_2" +4: "srem_by_2" has unsupported operation: llvm.store + +1: "srem_by_3" +4: "srem_by_3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_abs_gt" +4: "sub_abs_gt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_gt" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_gt" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sgeT" +4: "sub_abs_sgeT" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sgeT" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sgeT" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sgeT_swap" +4: "sub_abs_sgeT_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sgeT_swap" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sgeT_swap" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sgeT_false" +4: "sub_abs_sgeT_false" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sgeT_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sgeT_false" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_lt" +4: "sub_abs_lt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_lt" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_lt" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sle" +4: "sub_abs_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sle" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sleF" +4: "sub_abs_sleF" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sleF" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sleF" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_sleT" +4: "sub_abs_sleT" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_sleT" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_sleT" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_lt_min_not_poison" +4: "sub_abs_lt_min_not_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_lt_min_not_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_lt_min_not_poison" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_wrong_pred" +4: "sub_abs_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_wrong_pred" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "sub_abs_wrong_pred" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_abs_no_nsw" +4: "sub_abs_no_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_abs_no_nsw" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_abs_no_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "sub_abs_no_nsw" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/abs_abs.txt b/SSA/Projects/InstCombine/tests/logs/abs_abs.txt new file mode 100644 index 000000000..2aec005a9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/abs_abs.txt @@ -0,0 +1,246 @@ +1: "abs_abs_x01" +4: "abs_abs_x01" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x01_vec" +4: "abs_abs_x01_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x02" +4: "abs_abs_x02" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x03" +4: "abs_abs_x03" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x04" +4: "abs_abs_x04" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x04_vec" +4: "abs_abs_x04_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x05" +4: "abs_abs_x05" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x06" +4: "abs_abs_x06" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x07" +4: "abs_abs_x07" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x08" +4: "abs_abs_x08" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x09" +4: "abs_abs_x09" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x10" +4: "abs_abs_x10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x11" +4: "abs_abs_x11" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x12" +4: "abs_abs_x12" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x13" +4: "abs_abs_x13" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x14" +4: "abs_abs_x14" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x15" +4: "abs_abs_x15" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x16" +4: "abs_abs_x16" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x17" +4: "abs_abs_x17" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x18" +4: "abs_abs_x18" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x02_vec" +4: "abs_abs_x02_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_abs_x03_vec" +4: "abs_abs_x03_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x01" +4: "nabs_nabs_x01" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x02" +4: "nabs_nabs_x02" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x03" +4: "nabs_nabs_x03" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x04" +4: "nabs_nabs_x04" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x05" +4: "nabs_nabs_x05" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x06" +4: "nabs_nabs_x06" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x07" +4: "nabs_nabs_x07" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x08" +4: "nabs_nabs_x08" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x09" +4: "nabs_nabs_x09" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x10" +4: "nabs_nabs_x10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x11" +4: "nabs_nabs_x11" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x12" +4: "nabs_nabs_x12" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x13" +4: "nabs_nabs_x13" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x14" +4: "nabs_nabs_x14" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x15" +4: "nabs_nabs_x15" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x16" +4: "nabs_nabs_x16" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x17" +4: "nabs_nabs_x17" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x18" +4: "nabs_nabs_x18" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x01_vec" +4: "nabs_nabs_x01_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_nabs_x02_vec" +4: "nabs_nabs_x02_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x01" +4: "abs_nabs_x01" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x02" +4: "abs_nabs_x02" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x03" +4: "abs_nabs_x03" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x04" +4: "abs_nabs_x04" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x05" +4: "abs_nabs_x05" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x06" +4: "abs_nabs_x06" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x07" +4: "abs_nabs_x07" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x08" +4: "abs_nabs_x08" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x09" +4: "abs_nabs_x09" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x10" +4: "abs_nabs_x10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x11" +4: "abs_nabs_x11" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x12" +4: "abs_nabs_x12" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x13" +4: "abs_nabs_x13" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x14" +4: "abs_nabs_x14" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x15" +4: "abs_nabs_x15" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x16" +4: "abs_nabs_x16" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x17" +4: "abs_nabs_x17" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x18" +4: "abs_nabs_x18" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x01_vec" +4: "abs_nabs_x01_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x02_vec" +4: "abs_nabs_x02_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x01" +4: "nabs_abs_x01" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x02" +4: "nabs_abs_x02" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x03" +4: "nabs_abs_x03" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x04" +4: "nabs_abs_x04" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x05" +4: "nabs_abs_x05" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x06" +4: "nabs_abs_x06" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x07" +4: "nabs_abs_x07" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x08" +4: "nabs_abs_x08" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x09" +4: "nabs_abs_x09" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x10" +4: "nabs_abs_x10" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x11" +4: "nabs_abs_x11" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x12" +4: "nabs_abs_x12" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x13" +4: "nabs_abs_x13" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x14" +4: "nabs_abs_x14" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x15" +4: "nabs_abs_x15" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x16" +4: "nabs_abs_x16" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x17" +4: "nabs_abs_x17" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x18" +4: "nabs_abs_x18" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x01_vec" +4: "nabs_abs_x01_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "nabs_abs_x02_vec" +4: "nabs_abs_x02_vec" 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 new file mode 100644 index 000000000..8f4f60fe0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-mask-neg.txt @@ -0,0 +1,52 @@ +1: "dec_mask_neg_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.add +2: llvm.return + +1: "dec_mask_commute_neg_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sub +2: llvm.and +2: llvm.add +2: llvm.return + +1: "dec_commute_mask_neg_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.add +2: llvm.return + +1: "dec_mask_neg_multiuse_i32" +4: "dec_mask_neg_multiuse_i32" has unsupported operation: llvm.call + +1: "dec_mask_multiuse_neg_i32" +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 + +1: "dec_mask_neg_v2i32_poison" +"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 + +4: "dec_mask_multiuse_neg_multiuse_v2i32" has unsupported operation: llvm.call + +1: "use" +5: "use" is empty + +1: "usev" +5: "usev" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/add-mask.txt b/SSA/Projects/InstCombine/tests/logs/add-mask.txt new file mode 100644 index 000000000..03f3484c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-mask.txt @@ -0,0 +1,45 @@ +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 + +1: "add_mask_ashr28_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_mask_ashr28_non_pow2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_mask_ashr27_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/add-min-max.txt b/SSA/Projects/InstCombine/tests/logs/add-min-max.txt new file mode 100644 index 000000000..d0c5a01dd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-min-max.txt @@ -0,0 +1,30 @@ +1: "uadd_min_max" +4: "uadd_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "uadd_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "uadd_min_max_comm" +4: "uadd_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "uadd_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "uadd_min_max_nuw_nsw" +4: "uadd_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "uadd_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "sadd_min_max" +4: "sadd_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "sadd_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "sadd_min_max_comm" +4: "sadd_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "sadd_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "sadd_min_max_nuw_nsw" +4: "sadd_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "sadd_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + diff --git a/SSA/Projects/InstCombine/tests/logs/add-shift.txt b/SSA/Projects/InstCombine/tests/logs/add-shift.txt new file mode 100644 index 000000000..185d1adc4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-shift.txt @@ -0,0 +1,23 @@ +1: "flip_add_of_shift_neg" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "flip_add_of_shift_neg_vec" +"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 + +1: "use.v2i8" +5: "use.v2i8" is empty + +1: "flip_add_of_shift_neg_vec_fail_multiuse_neg" +4: "flip_add_of_shift_neg_vec_fail_multiuse_neg" has unsupported operation: llvm.call + +1: "flip_add_of_shift_neg_vec_fail_multiuse_shift" +4: "flip_add_of_shift_neg_vec_fail_multiuse_shift" has unsupported operation: llvm.call + 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 new file mode 100644 index 000000000..49c7d138c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-shl-sdiv-to-srem.txt @@ -0,0 +1,108 @@ +1: "add-shl-sdiv-scalar0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add-shl-sdiv-scalar1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add-shl-sdiv-scalar2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add-shl-sdiv-splat0" +"add-shl-sdiv-splat0" contains vectors which are unsupported + +1: "add-shl-sdiv-splat1" +"add-shl-sdiv-splat1" contains vectors which are unsupported + +1: "add-shl-sdiv-splat2" +"add-shl-sdiv-splat2" contains vectors which are unsupported + +1: "use32" +5: "use32" is empty + +1: "add-shl-sdiv-i32-4-use0" +4: "add-shl-sdiv-i32-4-use0" has unsupported operation: llvm.call + +1: "add-shl-sdiv-i32-use1" +4: "add-shl-sdiv-i32-use1" has unsupported operation: llvm.call + +1: "add-shl-sdiv-i32-use2" +4: "add-shl-sdiv-i32-use2" has unsupported operation: llvm.call + +1: "add-shl-sdiv-i32-use3" +4: "add-shl-sdiv-i32-use3" has unsupported operation: llvm.call + +4: "add-shl-sdiv-i32-use3" has unsupported operation: llvm.call + +1: "use3xi8" +5: "use3xi8" is empty + +1: "add-shl-sdiv-use4" +4: "add-shl-sdiv-use4" has unsupported operation: llvm.call + +1: "add-shl-sdiv-negative0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add-shl-sdiv-negative1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.add +2: llvm.return + +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 + +1: "add-shl-sdiv-negative4" +4: "add-shl-sdiv-negative4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "add-shl-sdiv-3xi8-undef0" +4: "add-shl-sdiv-3xi8-undef0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "add-shl-sdiv-3xi8-undef1" +4: "add-shl-sdiv-3xi8-undef1" has unsupported operation: llvm.mlir.undef + +4: "add-shl-sdiv-3xi8-undef1" has unsupported operation: llvm.mlir.undef + +4: "add-shl-sdiv-3xi8-undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add-shl-sdiv-3xi8-undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add-shl-sdiv-3xi8-undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add-shl-sdiv-nonsplat0" +7: "add-shl-sdiv-nonsplat0" is unchanged by InstCombine + +1: "add-shl-sdiv-nonsplat1" +7: "add-shl-sdiv-nonsplat1" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/add-sitofp.txt b/SSA/Projects/InstCombine/tests/logs/add-sitofp.txt new file mode 100644 index 000000000..8e6fae173 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add-sitofp.txt @@ -0,0 +1,34 @@ +1: "x" +4: "x" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_neg" +4: "test_neg" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_neg" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_2" +4: "test_2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_2_neg" +4: "test_2_neg" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_2_neg" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_2_neg" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_3" +4: "test_3" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_4" +4: "test_4" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_4_neg" +4: "test_4_neg" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_4_neg" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_4_neg" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/add.txt b/SSA/Projects/InstCombine/tests/logs/add.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/add2.txt b/SSA/Projects/InstCombine/tests/logs/add2.txt new file mode 100644 index 000000000..94b8b13c9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add2.txt @@ -0,0 +1,304 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.add +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.add +2: llvm.return + +1: "test5" +"test5" contains vectors which are unsupported + +1: "test6" +"test6" contains vectors which are unsupported + +1: "test7" +"test7" contains vectors which are unsupported + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test14" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test15" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test16" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test17" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test18" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "add_nsw_mul_nsw" +2: llvm.func +2: llvm.add +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "mul_add_to_mul_9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "add_cttz" +4: "add_cttz" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "add_cttz_2" +4: "add_cttz_2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "add_or_and" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_or_and_commutative" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_and_or" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_and_or_commutative" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_nsw_or_and" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_nuw_or_and" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_nuw_nsw_or_and" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.add +2: llvm.return + +1: "add_of_mul" +2: llvm.func +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "add_of_selects" +4: "add_of_selects" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_undemanded_low_bits" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "sub_undemanded_low_bits" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.sub +2: llvm.lshr +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/add3.txt b/SSA/Projects/InstCombine/tests/logs/add3.txt new file mode 100644 index 000000000..9956cf416 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add3.txt @@ -0,0 +1,18 @@ +1: "test2" +4: "test2" has unsupported operation: llvm.inttoptr + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: llvm.inttoptr + +4: "test2" has unsupported operation: llvm.getelementptr + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.return + +1: "callee" +5: "callee" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/add4.txt b/SSA/Projects/InstCombine/tests/logs/add4.txt new file mode 100644 index 000000000..e6622cc9f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add4.txt @@ -0,0 +1,97 @@ +1: "use" +5: "use" is empty + +1: "match_unsigned" +4: "match_unsigned" has unsupported operation after optimization: llvm.udiv + +1: "match_unsigned_vector" +"match_unsigned_vector" contains vectors which are unsupported + +1: "match_andAsRem_lshrAsDiv_shlAsMul" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.urem +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "match_signed" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.sdiv +2: llvm.srem +2: llvm.sdiv +2: llvm.srem +2: llvm.mul +2: llvm.add +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "match_signed_vector" +"match_signed_vector" contains vectors which are unsupported + +1: "not_match_inconsistent_signs" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.urem +2: llvm.sdiv +2: llvm.urem +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "not_match_inconsistent_values" +4: "not_match_inconsistent_values" has unsupported operation: llvm.udiv + +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 + +1: "fold_add_sdiv_srem" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.shl +2: llvm.srem +2: llvm.add +2: llvm.return + +1: "fold_add_udiv_urem_to_mul" +4: "fold_add_udiv_urem_to_mul" has unsupported operation after optimization: llvm.udiv + +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 + +1: "fold_add_udiv_urem_or_disjoint" +4: "fold_add_udiv_urem_or_disjoint" has unsupported operation: llvm.udiv + +1: "fold_add_udiv_urem_without_noundef" +4: "fold_add_udiv_urem_without_noundef" has unsupported operation: llvm.udiv + +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 + +1: "fold_add_udiv_urem_non_constant" +4: "fold_add_udiv_urem_non_constant" has unsupported operation: llvm.udiv + diff --git a/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt b/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt new file mode 100644 index 000000000..724156b4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/add_or_sub.txt @@ -0,0 +1,96 @@ +1: "use19" +5: "use19" is empty + +1: "use12" +5: "use12" is empty + +1: "use2" +5: "use2" is empty + +1: "add_or_sub_comb_i32_commuted1_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i8_commuted2_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i128_commuted3_nuw_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i64_commuted4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i32vec" +"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 + +1: "add_or_sub_comb_i12_multiuse_only_sub" +4: "add_or_sub_comb_i12_multiuse_only_sub" has unsupported operation: llvm.call + +1: "add_or_sub_comb_i8_negative_y_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i8_negative_y_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i8_negative_y_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.or +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i8_negative_xor_instead_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "add_or_sub_comb_i16_negative_sub_no_negate" +7: "add_or_sub_comb_i16_negative_sub_no_negate" is unchanged by InstCombine + +1: "add_or_sub_comb_i2_negative_multiuse_only_or" +4: "add_or_sub_comb_i2_negative_multiuse_only_or" has unsupported operation: llvm.call + +1: "add_or_sub_comb_i19_negative_multiuse_both" +4: "add_or_sub_comb_i19_negative_multiuse_both" has unsupported operation: llvm.call + +4: "add_or_sub_comb_i19_negative_multiuse_both" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/addnegneg.txt b/SSA/Projects/InstCombine/tests/logs/addnegneg.txt new file mode 100644 index 000000000..aa9cdbaa7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/addnegneg.txt @@ -0,0 +1,9 @@ +1: "l" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.add +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/addrspacecast.txt b/SSA/Projects/InstCombine/tests/logs/addrspacecast.txt new file mode 100644 index 000000000..f2df1bbc9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/addrspacecast.txt @@ -0,0 +1,2 @@ +3: addrspacecast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt b/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt new file mode 100644 index 000000000..11fc32ee1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/addsub-constant-folding.txt @@ -0,0 +1,387 @@ +1: "use" +5: "use" is empty + +1: "vec_use" +5: "vec_use" is empty + +1: "add_const_add_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + +1: "add_const_add_const_extrause" +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 + +1: "vec_add_const_add_const_extrause" +4: "vec_add_const_add_const_extrause" has unsupported operation: llvm.call + +1: "vec_add_const_add_const_nonsplat" +4: "vec_add_const_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_const_sub_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_const_sub_const_extrause" +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 + +1: "vec_add_const_sub_const_extrause" +4: "vec_add_const_sub_const_extrause" has unsupported operation: llvm.call + +1: "vec_add_const_sub_const_nonsplat" +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_const_const_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_nsw_const_const_sub_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_nsw_const_const_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_const_const_sub_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_nsw_const_const_sub_nsw_ov" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_nuw_const_const_sub_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_nuw_const_const_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "add_const_const_sub_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +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 + +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 + +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 + +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 + +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 + +1: "vec_add_const_const_sub_extrause" +4: "vec_add_const_const_sub_extrause" has unsupported operation: llvm.call + +1: "vec_add_const_const_sub_nonsplat" +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_add_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_const_add_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "sub_const_add_const_extrause" +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 + +1: "vec_sub_const_add_const_extrause" +4: "vec_sub_const_add_const_extrause" has unsupported operation: llvm.call + +1: "vec_sub_const_add_const_nonsplat" +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_const_sub_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_const_sub_const_extrause" +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 + +1: "vec_sub_const_sub_const_extrause" +4: "vec_sub_const_sub_const_extrause" has unsupported operation: llvm.call + +1: "vec_sub_const_sub_const_nonsplat" +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_const_const_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_const_const_sub_extrause" +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 + +1: "vec_sub_const_const_sub_extrause" +4: "vec_sub_const_const_sub_extrause" has unsupported operation: llvm.call + +1: "vec_sub_const_const_sub_nonsplat" +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_sub_const_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "const_sub_add_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "const_sub_add_const_extrause" +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 + +1: "vec_const_sub_add_const_extrause" +4: "vec_const_sub_add_const_extrause" has unsupported operation: llvm.call + +1: "vec_const_sub_add_const_nonsplat" +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_add_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "const_sub_sub_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "const_sub_sub_const_extrause" +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 + +1: "vec_const_sub_sub_const_extrause" +4: "vec_const_sub_sub_const_extrause" has unsupported operation: llvm.call + +1: "vec_const_sub_sub_const_nonsplat" +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_sub_const_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "const_sub_const_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "const_sub_const_sub_extrause" +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 + +1: "vec_const_sub_const_sub_extrause" +4: "vec_const_sub_const_sub_extrause" has unsupported operation: llvm.call + +1: "vec_const_sub_const_sub_nonsplat" +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_const_sub_const_sub_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "addsub_combine_constants" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "addsub_combine_constants_use1" +4: "addsub_combine_constants_use1" has unsupported operation: llvm.call + +1: "addsub_combine_constants_use2" +4: "addsub_combine_constants_use2" has unsupported operation: llvm.call + +1: "addsub_combine_constants_use3" +4: "addsub_combine_constants_use3" has unsupported operation: llvm.call + +4: "addsub_combine_constants_use3" has unsupported operation: llvm.call + +1: "sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "sub_from_constant_commute" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "sub_from_constant_vec" +"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 + +4: "sub_from_constant_extra_use" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt b/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt new file mode 100644 index 000000000..cc4a71bb2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/adjust-for-minmax.txt @@ -0,0 +1,145 @@ +1: "smax1" +4: "smax1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin1" +4: "smin1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smax2" +4: "smax2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin2" +4: "smin2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smax3" +4: "smax3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax3_vec" +4: "smax3_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin3" +4: "smin3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin3_vec" +4: "smin3_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax3" +4: "umax3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax3_vec" +4: "umax3_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin3" +4: "umin3" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin3_vec" +4: "umin3_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax4" +4: "smax4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax4_vec" +4: "smax4_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin4" +4: "smin4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin4_vec" +4: "smin4_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax4" +4: "umax4" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax4_vec" +4: "umax4_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin4" +4: "umin4" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin4_vec" +4: "umin4_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_sext" +4: "smax_sext" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "smax_sext_vec" +4: "smax_sext_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_sext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "smin_sext" +4: "smin_sext" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smin_sext_vec" +4: "smin_sext_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umax_sext" +4: "umax_sext" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umax_sext_vec" +4: "umax_sext_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umin_sext" +4: "umin_sext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_sext_vec" +4: "umin_sext_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umax_sext2" +4: "umax_sext2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umax_sext2_vec" +4: "umax_sext2_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext2_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umin_sext2" +4: "umin_sext2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_sext2_vec" +4: "umin_sext2_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umax_zext" +4: "umax_zext" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umax_zext_vec" +4: "umax_zext_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext" +4: "umin_zext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext_vec" +4: "umin_zext_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +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/aggregate-reconstruction.txt b/SSA/Projects/InstCombine/tests/logs/aggregate-reconstruction.txt new file mode 100644 index 000000000..df7333751 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/aggregate-reconstruction.txt @@ -0,0 +1,2 @@ +3: aggregate-reconstruction.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/alias-recursion.txt b/SSA/Projects/InstCombine/tests/logs/alias-recursion.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/align-addr.txt b/SSA/Projects/InstCombine/tests/logs/align-addr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/align-attr.txt b/SSA/Projects/InstCombine/tests/logs/align-attr.txt new file mode 100644 index 000000000..a523f0181 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/align-attr.txt @@ -0,0 +1,11 @@ +1: "foo1" +4: "foo1" has unsupported operation: llvm.load + +1: "foo2" +4: "foo2" has unsupported operation: llvm.call + +4: "foo2" has unsupported operation: llvm.load + +1: "func1" +5: "func1" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/align-external.txt b/SSA/Projects/InstCombine/tests/logs/align-external.txt new file mode 100644 index 000000000..d14dd74a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/align-external.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "bar" +4: "bar" has unsupported operation: llvm.mlir.addressof + +4: "bar" has unsupported operation: llvm.load + +1: "vec_store" +4: "vec_store" has unsupported operation: llvm.mlir.addressof + +4: "vec_store" has unsupported operation: llvm.store + +4: "vec_store" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/all-bits-shift.txt b/SSA/Projects/InstCombine/tests/logs/all-bits-shift.txt new file mode 100644 index 000000000..d18b8bcb5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/all-bits-shift.txt @@ -0,0 +1,7 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/alloc-realloc-free.txt b/SSA/Projects/InstCombine/tests/logs/alloc-realloc-free.txt new file mode 100644 index 000000000..f6c3bee89 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloc-realloc-free.txt @@ -0,0 +1,12 @@ +1: "test" +4: "test" has unsupported operation: llvm.return + +1: "malloc" +5: "malloc" is empty + +1: "realloc" +5: "realloc" is empty + +1: "free" +5: "free" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/alloca-big.txt b/SSA/Projects/InstCombine/tests/logs/alloca-big.txt new file mode 100644 index 000000000..cb7d71ef9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloca-big.txt @@ -0,0 +1,7 @@ +1: "test_bigalloc" +4: "test_bigalloc" has unsupported operation: llvm.alloca + +4: "test_bigalloc" has unsupported operation: llvm.store + +4: "test_bigalloc" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/alloca-cast-debuginfo.txt b/SSA/Projects/InstCombine/tests/logs/alloca-cast-debuginfo.txt new file mode 100644 index 000000000..2a30985b1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloca-cast-debuginfo.txt @@ -0,0 +1,16 @@ +1: "f" +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: builtin.unregistered: llvm.intr.dbg.declare + +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: llvm.return + +1: "escape" +5: "escape" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/alloca-in-non-alloca-as.txt b/SSA/Projects/InstCombine/tests/logs/alloca-in-non-alloca-as.txt new file mode 100644 index 000000000..f4be20436 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloca-in-non-alloca-as.txt @@ -0,0 +1,2 @@ +3: alloca-in-non-alloca-as.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/alloca-intptr-not-sizet.txt b/SSA/Projects/InstCombine/tests/logs/alloca-intptr-not-sizet.txt new file mode 100644 index 000000000..eeb39bb0f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloca-intptr-not-sizet.txt @@ -0,0 +1,9 @@ +1: "test_array_alloca_intptr_not_sizet" +4: "test_array_alloca_intptr_not_sizet" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_array_alloca_intptr_not_sizet" has unsupported operation: llvm.alloca + +4: "test_array_alloca_intptr_not_sizet" has unsupported operation: llvm.store + +4: "test_array_alloca_intptr_not_sizet" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/alloca.txt b/SSA/Projects/InstCombine/tests/logs/alloca.txt new file mode 100644 index 000000000..09968eaec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/alloca.txt @@ -0,0 +1,2 @@ +3: alloca.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/allocsize-32.txt b/SSA/Projects/InstCombine/tests/logs/allocsize-32.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/allocsize.txt b/SSA/Projects/InstCombine/tests/logs/allocsize.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/allow-checks.txt b/SSA/Projects/InstCombine/tests/logs/allow-checks.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/and-add-shl.txt b/SSA/Projects/InstCombine/tests/logs/and-add-shl.txt new file mode 100644 index 000000000..bd1c4ea0c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-add-shl.txt @@ -0,0 +1,15 @@ +1: "and_add_shl" +4: "and_add_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_add_shl" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "and_not_shl" +4: "and_not_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_not_shl" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "and_add_shl_overlap" +4: "and_add_shl_overlap" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_add_shl_overlap" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/and-compare.txt b/SSA/Projects/InstCombine/tests/logs/and-compare.txt new file mode 100644 index 000000000..c400e3a75 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-compare.txt @@ -0,0 +1,59 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1vec" +4: "test1vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2vec" +4: "test2vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3vec" +4: "test3vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2" +4: "test_ne_cp2" has unsupported operation: llvm.call + +4: "test_ne_cp2" has unsupported operation: llvm.call + +4: "test_ne_cp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2_2" +4: "test_ne_cp2_2" has unsupported operation: llvm.call + +4: "test_ne_cp2_2" has unsupported operation: llvm.call + +4: "test_ne_cp2_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2_other_okay_all_ones" +4: "test_ne_cp2_other_okay_all_ones" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_okay_all_ones" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_okay_all_ones" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2_other_fail2" +4: "test_ne_cp2_other_fail2" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_fail2" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_fail2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2_other_okay" +4: "test_ne_cp2_other_okay" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_okay" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ne_cp2_other_okay2" +4: "test_ne_cp2_other_okay2" has unsupported operation: llvm.call + +4: "test_ne_cp2_other_okay2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt new file mode 100644 index 000000000..8de5f19b3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-fcmp.txt @@ -0,0 +1,1965 @@ +1: "PR1738" +4: "PR1738" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR1738_logical" +4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "PR1738_vec_undef" +4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR1738_vec_poison" +4: "PR1738_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069" +4: "PR41069" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "PR41069_commute_logical" +4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "PR41069_vec" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_vec_commute" +4: "PR41069_vec_commute" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec_commute" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR15737" +4: "PR15737" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR15737" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR15737_logical" +4: "PR15737_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "t9" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_nonzero" +4: "fcmp_ord_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_nonzero_logical" +4: "fcmp_ord_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "auto_gen_0" +4: "auto_gen_0" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_0" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_0_logical" +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.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 + +4: "auto_gen_1" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_1_logical" +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.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 + +1: "auto_gen_2_logical" +4: "auto_gen_2_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_2_logical_fmf" +4: "auto_gen_2_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_3" +4: "auto_gen_3" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_3" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_3_logical" +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.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 + +4: "auto_gen_4" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_4_logical" +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.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 + +1: "auto_gen_5_logical" +4: "auto_gen_5_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_5_logical_fmf" +4: "auto_gen_5_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_6" +4: "auto_gen_6" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_6" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_6_logical" +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.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 + +1: "auto_gen_7_logical" +4: "auto_gen_7_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_7_logical_fmf" +4: "auto_gen_7_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8" +4: "auto_gen_8" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8_logical" +4: "auto_gen_8_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8_logical_fmf" +4: "auto_gen_8_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9" +4: "auto_gen_9" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9_logical" +4: "auto_gen_9_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9_logical_fmf" +4: "auto_gen_9_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_10" +4: "auto_gen_10" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_10" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_10_logical" +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.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 + +4: "auto_gen_11" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_11_logical" +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.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 + +4: "auto_gen_12" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_12_logical" +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.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 + +4: "auto_gen_13" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_13_logical" +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.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 + +1: "auto_gen_14_logical" +4: "auto_gen_14_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_14_logical_fmf" +4: "auto_gen_14_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_15" +4: "auto_gen_15" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_15" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_15_logical" +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.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 + +1: "auto_gen_16_logical" +4: "auto_gen_16_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_16_logical_fmf" +4: "auto_gen_16_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_17" +4: "auto_gen_17" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_17" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_17_logical" +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.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 + +1: "auto_gen_18_logical" +4: "auto_gen_18_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_18_logical_fmf" +4: "auto_gen_18_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19" +4: "auto_gen_19" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19_logical" +4: "auto_gen_19_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19_logical_fmf" +4: "auto_gen_19_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20" +4: "auto_gen_20" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20_logical" +4: "auto_gen_20_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20_logical_fmf" +4: "auto_gen_20_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_21" +4: "auto_gen_21" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_21" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_21_logical" +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.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 + +4: "auto_gen_22" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_22_logical" +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.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 + +1: "auto_gen_23_logical" +4: "auto_gen_23_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_23_logical_fmf" +4: "auto_gen_23_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24" +4: "auto_gen_24" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24_logical" +4: "auto_gen_24_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24_logical_fmf" +4: "auto_gen_24_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25" +4: "auto_gen_25" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25_logical" +4: "auto_gen_25_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25_logical_fmf" +4: "auto_gen_25_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26" +4: "auto_gen_26" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26_logical" +4: "auto_gen_26_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26_logical_fmf" +4: "auto_gen_26_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27" +4: "auto_gen_27" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27_logical" +4: "auto_gen_27_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27_logical_fmf" +4: "auto_gen_27_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_28" +4: "auto_gen_28" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_28" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_28_logical" +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.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 + +1: "auto_gen_29_logical" +4: "auto_gen_29_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_29_logical_fmf" +4: "auto_gen_29_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_30" +4: "auto_gen_30" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_30_logical" +4: "auto_gen_30_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_30_logical_fmf" +4: "auto_gen_30_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31" +4: "auto_gen_31" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31_logical" +4: "auto_gen_31_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31_logical_fmf" +4: "auto_gen_31_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_32" +4: "auto_gen_32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_32_logical" +4: "auto_gen_32_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_32_logical_fmf" +4: "auto_gen_32_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33" +4: "auto_gen_33" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33_logical" +4: "auto_gen_33_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33_logical_fmf" +4: "auto_gen_33_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_34" +4: "auto_gen_34" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_34_logical" +4: "auto_gen_34_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_34_logical_fmf" +4: "auto_gen_34_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35" +4: "auto_gen_35" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35_logical" +4: "auto_gen_35_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35_logical_fmf" +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.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 + +4: "auto_gen_36" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_36_logical" +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.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 + +1: "auto_gen_37_logical" +4: "auto_gen_37_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_37_logical_fmf" +4: "auto_gen_37_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_38" +4: "auto_gen_38" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_38" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_38_logical" +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.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 + +1: "auto_gen_39_logical" +4: "auto_gen_39_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_39_logical_fmf" +4: "auto_gen_39_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_40" +4: "auto_gen_40" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_40" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_40_logical" +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.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 + +1: "auto_gen_41_logical" +4: "auto_gen_41_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_41_logical_fmf" +4: "auto_gen_41_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_42" +4: "auto_gen_42" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_42" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_42_logical" +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.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 + +1: "auto_gen_43_logical" +4: "auto_gen_43_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_43_logical_fmf" +4: "auto_gen_43_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_44" +4: "auto_gen_44" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_44_logical" +4: "auto_gen_44_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_44_logical_fmf" +4: "auto_gen_44_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_45" +4: "auto_gen_45" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_45" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_45_logical" +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.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 + +4: "auto_gen_46" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_46_logical" +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.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 + +1: "auto_gen_47_logical" +4: "auto_gen_47_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_47_logical_fmf" +4: "auto_gen_47_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48" +4: "auto_gen_48" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48_logical" +4: "auto_gen_48_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48_logical_fmf" +4: "auto_gen_48_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_49" +4: "auto_gen_49" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_49" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_49_logical" +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.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 + +4: "auto_gen_50" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_50_logical" +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.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 + +1: "auto_gen_51_logical" +4: "auto_gen_51_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_51_logical_fmf" +4: "auto_gen_51_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_52" +4: "auto_gen_52" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_52_logical" +4: "auto_gen_52_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_52_logical_fmf" +4: "auto_gen_52_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_53" +4: "auto_gen_53" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_53_logical" +4: "auto_gen_53_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_53_logical_fmf" +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.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 + +1: "auto_gen_54_logical" +4: "auto_gen_54_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_54_logical_fmf" +4: "auto_gen_54_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_55" +4: "auto_gen_55" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_55" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_55_logical" +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.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 + +1: "auto_gen_56_logical" +4: "auto_gen_56_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_56_logical_fmf" +4: "auto_gen_56_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57" +4: "auto_gen_57" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57_logical" +4: "auto_gen_57_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57_logical_fmf" +4: "auto_gen_57_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58" +4: "auto_gen_58" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58_logical" +4: "auto_gen_58_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58_logical_fmf" +4: "auto_gen_58_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_59" +4: "auto_gen_59" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_59" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_59_logical" +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.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 + +1: "auto_gen_60_logical" +4: "auto_gen_60_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_60_logical_fmf" +4: "auto_gen_60_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_61" +4: "auto_gen_61" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_61_logical" +4: "auto_gen_61_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_61_logical_fmf" +4: "auto_gen_61_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_62" +4: "auto_gen_62" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_62_logical" +4: "auto_gen_62_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_62_logical_fmf" +4: "auto_gen_62_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_63" +4: "auto_gen_63" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_63_logical" +4: "auto_gen_63_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_63_logical_fmf" +4: "auto_gen_63_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64" +4: "auto_gen_64" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64_logical" +4: "auto_gen_64_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64_logical_fmf" +4: "auto_gen_64_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65" +4: "auto_gen_65" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65_logical" +4: "auto_gen_65_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65_logical_fmf" +4: "auto_gen_65_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_66" +4: "auto_gen_66" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_66" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_66_logical" +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.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 + +4: "auto_gen_67" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_67_logical" +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.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 + +4: "auto_gen_68" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_68_logical" +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.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 + +4: "auto_gen_69" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_69_logical" +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.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 + +1: "auto_gen_70_logical" +4: "auto_gen_70_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_70_logical_fmf" +4: "auto_gen_70_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71" +4: "auto_gen_71" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71_logical" +4: "auto_gen_71_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71_logical_fmf" +4: "auto_gen_71_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72" +4: "auto_gen_72" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72_logical" +4: "auto_gen_72_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72_logical_fmf" +4: "auto_gen_72_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_73" +4: "auto_gen_73" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_73_logical" +4: "auto_gen_73_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_73_logical_fmf" +4: "auto_gen_73_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_74" +4: "auto_gen_74" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_74_logical" +4: "auto_gen_74_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_74_logical_fmf" +4: "auto_gen_74_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75" +4: "auto_gen_75" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75_logical" +4: "auto_gen_75_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75_logical_fmf" +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.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 + +1: "auto_gen_76_logical" +4: "auto_gen_76_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_76_logical_fmf" +4: "auto_gen_76_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_77" +4: "auto_gen_77" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_77_logical" +4: "auto_gen_77_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_77_logical_fmf" +4: "auto_gen_77_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_78" +4: "auto_gen_78" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_78" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_78_logical" +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.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 + +1: "auto_gen_79_logical" +4: "auto_gen_79_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_79_logical_fmf" +4: "auto_gen_79_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_80" +4: "auto_gen_80" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_80" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_80_logical" +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.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 + +1: "auto_gen_81_logical" +4: "auto_gen_81_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_81_logical_fmf" +4: "auto_gen_81_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_82" +4: "auto_gen_82" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_82_logical" +4: "auto_gen_82_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_82_logical_fmf" +4: "auto_gen_82_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83" +4: "auto_gen_83" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83_logical" +4: "auto_gen_83_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83_logical_fmf" +4: "auto_gen_83_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_84" +4: "auto_gen_84" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_84_logical" +4: "auto_gen_84_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_84_logical_fmf" +4: "auto_gen_84_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_85" +4: "auto_gen_85" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_85_logical" +4: "auto_gen_85_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_85_logical_fmf" +4: "auto_gen_85_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_86" +4: "auto_gen_86" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_86_logical" +4: "auto_gen_86_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_86_logical_fmf" +4: "auto_gen_86_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_87" +4: "auto_gen_87" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_87_logical" +4: "auto_gen_87_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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: builtin.unregistered: llvm.fcmp + +1: "auto_gen_88_logical" +4: "auto_gen_88_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_88_logical_fmf" +4: "auto_gen_88_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_89" +4: "auto_gen_89" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_89_logical" +4: "auto_gen_89_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_89_logical_fmf" +4: "auto_gen_89_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90" +4: "auto_gen_90" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90_logical" +4: "auto_gen_90_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90_logical_fmf" +4: "auto_gen_90_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_91" +4: "auto_gen_91" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_91" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_91_logical" +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.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 + +4: "auto_gen_92" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_92_logical" +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.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 + +1: "auto_gen_93_logical" +4: "auto_gen_93_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_93_logical_fmf" +4: "auto_gen_93_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_94" +4: "auto_gen_94" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_94_logical" +4: "auto_gen_94_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_94_logical_fmf" +4: "auto_gen_94_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_95" +4: "auto_gen_95" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_95_logical" +4: "auto_gen_95_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_95_logical_fmf" +4: "auto_gen_95_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_96" +4: "auto_gen_96" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_96_logical" +4: "auto_gen_96_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_96_logical_fmf" +4: "auto_gen_96_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_97" +4: "auto_gen_97" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_97_logical" +4: "auto_gen_97_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_97_logical_fmf" +4: "auto_gen_97_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_98" +4: "auto_gen_98" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_98_logical" +4: "auto_gen_98_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_98_logical_fmf" +4: "auto_gen_98_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_99" +4: "auto_gen_99" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_99_logical" +4: "auto_gen_99_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "auto_gen_100_logical" +4: "auto_gen_100_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_100_logical_fmf" +4: "auto_gen_100_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_101" +4: "auto_gen_101" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_101_logical" +4: "auto_gen_101_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_101_logical_fmf" +4: "auto_gen_101_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_102" +4: "auto_gen_102" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_102_logical" +4: "auto_gen_102_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_102_logical_fmf" +4: "auto_gen_102_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_103" +4: "auto_gen_103" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_103_logical" +4: "auto_gen_103_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_103_logical_fmf" +4: "auto_gen_103_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_104" +4: "auto_gen_104" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_104_logical" +4: "auto_gen_104_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_104_logical_fmf" +4: "auto_gen_104_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_105" +4: "auto_gen_105" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_105" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_105_logical" +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.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 + +4: "auto_gen_106" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_106_logical" +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.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 + +4: "auto_gen_107" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_107_logical" +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.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 + +4: "auto_gen_108" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_108_logical" +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.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 + +4: "auto_gen_109" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_109_logical" +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.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 + +4: "auto_gen_110" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_110_logical" +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.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 + +4: "auto_gen_111" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_111_logical" +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.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 + +4: "auto_gen_112" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_112_logical" +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.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 + +1: "auto_gen_113" +4: "auto_gen_113" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_113_logical" +4: "auto_gen_113_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_113_logical_fmf" +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.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 + +1: "auto_gen_114_logical" +4: "auto_gen_114_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_114_logical_fmf" +4: "auto_gen_114_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115" +4: "auto_gen_115" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115_logical" +4: "auto_gen_115_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115_logical_fmf" +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.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 + +1: "auto_gen_116_logical" +4: "auto_gen_116_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_116_logical_fmf" +4: "auto_gen_116_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117" +4: "auto_gen_117" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117_logical" +4: "auto_gen_117_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117_logical_fmf" +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.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 + +1: "auto_gen_118_logical" +4: "auto_gen_118_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_118_logical_fmf" +4: "auto_gen_118_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119" +4: "auto_gen_119" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119_logical" +4: "auto_gen_119_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119_logical_fmf" +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.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 + +4: "auto_gen_120" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_120_logical" +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.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 + +1: "auto_gen_121_logical" +4: "auto_gen_121_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_121_logical_fmf" +4: "auto_gen_121_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_122" +4: "auto_gen_122" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_122_logical" +4: "auto_gen_122_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_122_logical_fmf" +4: "auto_gen_122_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_123" +4: "auto_gen_123" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_123_logical" +4: "auto_gen_123_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_123_logical_fmf" +4: "auto_gen_123_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_124" +4: "auto_gen_124" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_124_logical" +4: "auto_gen_124_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_124_logical_fmf" +4: "auto_gen_124_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_125" +4: "auto_gen_125" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_125_logical" +4: "auto_gen_125_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_125_logical_fmf" +4: "auto_gen_125_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_126" +4: "auto_gen_126" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_126_logical" +4: "auto_gen_126_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_126_logical_fmf" +4: "auto_gen_126_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_127" +4: "auto_gen_127" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_127_logical" +4: "auto_gen_127_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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: builtin.unregistered: llvm.fcmp + +1: "auto_gen_128_logical" +4: "auto_gen_128_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_128_logical_fmf" +4: "auto_gen_128_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_129" +4: "auto_gen_129" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_129_logical" +4: "auto_gen_129_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_129_logical_fmf" +4: "auto_gen_129_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_130" +4: "auto_gen_130" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_130_logical" +4: "auto_gen_130_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_130_logical_fmf" +4: "auto_gen_130_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_131" +4: "auto_gen_131" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_131_logical" +4: "auto_gen_131_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_131_logical_fmf" +4: "auto_gen_131_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_132" +4: "auto_gen_132" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_132_logical" +4: "auto_gen_132_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_132_logical_fmf" +4: "auto_gen_132_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_133" +4: "auto_gen_133" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_133_logical" +4: "auto_gen_133_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_133_logical_fmf" +4: "auto_gen_133_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_134" +4: "auto_gen_134" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_134_logical" +4: "auto_gen_134_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "auto_gen_135" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_135_logical" +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.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 + +1: "intersect_fmf_2" +4: "intersect_fmf_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "intersect_fmf_3" +4: "intersect_fmf_3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "intersect_fmf_4" +4: "intersect_fmf_4" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check" +4: "clang_builtin_isnormal_inf_check" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_vector" +4: "clang_builtin_isnormal_inf_check_vector" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_commute" +4: "clang_builtin_isnormal_inf_check_commute" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_commute_nsz_rhs" +4: "clang_builtin_isnormal_inf_check_commute_nsz_rhs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_commute_nsz_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_commute_nsz_lhs" +4: "clang_builtin_isnormal_inf_check_commute_nsz_lhs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_commute_nsz_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_commute_nofabs_ueq" +4: "clang_builtin_isnormal_inf_check_commute_nofabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_commute_nsz" +4: "clang_builtin_isnormal_inf_check_commute_nsz" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_commute_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ugt" +4: "clang_builtin_isnormal_inf_check_ugt" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_ugt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "clang_builtin_isnormal_inf_check_ugt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ult" +4: "clang_builtin_isnormal_inf_check_ult" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ule" +4: "clang_builtin_isnormal_inf_check_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ueq" +4: "clang_builtin_isnormal_inf_check_ueq" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_une" +4: "clang_builtin_isnormal_inf_check_une" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_uno" +4: "clang_builtin_isnormal_inf_check_uno" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_uno" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "clang_builtin_isnormal_inf_check_uno" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ord" +4: "clang_builtin_isnormal_inf_check_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_oge" +4: "clang_builtin_isnormal_inf_check_oge" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_olt" +4: "clang_builtin_isnormal_inf_check_olt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_ole" +4: "clang_builtin_isnormal_inf_check_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_oeq" +4: "clang_builtin_isnormal_inf_check_oeq" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_unnececcary_fabs" +4: "clang_builtin_isnormal_inf_check_unnececcary_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_unnececcary_fabs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_not_ord" +4: "clang_builtin_isnormal_inf_check_not_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_missing_fabs" +4: "clang_builtin_isnormal_inf_check_missing_fabs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_neg_inf" +4: "clang_builtin_isnormal_inf_check_neg_inf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_not_inf" +4: "clang_builtin_isnormal_inf_check_not_inf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_not_inf" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "clang_builtin_isnormal_inf_check_not_inf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_nsz_lhs" +4: "clang_builtin_isnormal_inf_check_nsz_lhs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_nsz_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_nsz_rhs" +4: "clang_builtin_isnormal_inf_check_nsz_rhs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_nsz_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_nsz" +4: "clang_builtin_isnormal_inf_check_nsz" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "clang_builtin_isnormal_inf_check_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_fneg" +4: "clang_builtin_isnormal_inf_check_fneg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "clang_builtin_isnormal_inf_check_copysign" +4: "clang_builtin_isnormal_inf_check_copysign" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "clang_builtin_isnormal_inf_check_copysign" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "isnormal_logical_select_0" +4: "isnormal_logical_select_0" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "isnormal_logical_select_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "isnormal_logical_select_1" +4: "isnormal_logical_select_1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "isnormal_logical_select_1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "isnormal_logical_select_0_fmf0" +4: "isnormal_logical_select_0_fmf0" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "isnormal_logical_select_0_fmf0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "isnormal_logical_select_0_fmf1" +4: "isnormal_logical_select_0_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "isnormal_logical_select_0_fmf1" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/and-narrow.txt b/SSA/Projects/InstCombine/tests/logs/and-narrow.txt new file mode 100644 index 000000000..8b02f0ebb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-narrow.txt @@ -0,0 +1,48 @@ +1: "zext_add" +4: "zext_add" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_sub" +4: "zext_sub" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_mul" +4: "zext_mul" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_lshr" +4: "zext_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_ashr" +4: "zext_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_shl" +4: "zext_shl" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_add_vec" +4: "zext_add_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_sub_vec" +4: "zext_sub_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_mul_vec" +4: "zext_mul_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_lshr_vec" +4: "zext_lshr_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_ashr_vec" +4: "zext_ashr_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_shl_vec" +4: "zext_shl_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_lshr_vec_overshift" +4: "zext_lshr_vec_overshift" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_lshr_vec_undef" +4: "zext_lshr_vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "zext_shl_vec_overshift" +4: "zext_shl_vec_overshift" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_shl_vec_undef" +4: "zext_shl_vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-and.txt b/SSA/Projects/InstCombine/tests/logs/and-or-and.txt new file mode 100644 index 000000000..ecc8411d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-and.txt @@ -0,0 +1,45 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.or +2: llvm.and +2: llvm.return + +1: "or_test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-icmp-const-icmp.txt b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-const-icmp.txt new file mode 100644 index 000000000..8a5470450 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-const-icmp.txt @@ -0,0 +1,73 @@ +1: "eq_basic" +4: "eq_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_basic_equal_5" +4: "ne_basic_equal_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_basic_equal_minus_1" +4: "eq_basic_equal_minus_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_basic_equal_minus_7" +4: "ne_basic_equal_minus_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_basic_unequal" +4: "eq_basic_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_basic_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_basic_unequal" +4: "ne_basic_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_basic_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_multi_c1" +4: "eq_multi_c1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_multi_c1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_multi_c1" has unsupported operation: llvm.call + +1: "ne_multi_c2" +4: "ne_multi_c2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_multi_c2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_multi_c2" has unsupported operation: llvm.call + +1: "eq_vector" +4: "eq_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_vector_equal_5" +4: "ne_vector_equal_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_vector_equal_minus_1" +4: "eq_vector_equal_minus_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_vector_equal_minus_7" +4: "ne_vector_equal_minus_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_vector_unequal1" +4: "eq_vector_unequal1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_vector_unequal1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_vector_unequal2" +4: "ne_vector_unequal2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_vector_unequal2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_vector_poison_icmp" +4: "eq_vector_poison_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_vector_poison_add" +4: "eq_vector_poison_add" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_commuted" +4: "eq_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_commuted_equal_minus_1" +4: "ne_commuted_equal_minus_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + 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 new file mode 100644 index 000000000..6b6e5b826 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-min-max.txt @@ -0,0 +1,823 @@ +1: "slt_and_max" +4: "slt_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "slt_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "slt_and_max_logical" +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.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 + +1: "slt_swap_and_max" +4: "slt_swap_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "slt_swap_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "slt_swap_and_max_logical" +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.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 + +4: "slt_swap_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "slt_swap_and_max_commute_logical" +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.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 + +4: "ult_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_and_max_logical" +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.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 + +4: "ult_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_and_max_commute_logical" +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.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 + +4: "ult_swap_and_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_swap_and_max_logical" +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.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 + +4: "ult_swap_and_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_swap_and_max_commute_logical" +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.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 + +4: "sgt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sgt_and_min_logical" +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.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 + +4: "sgt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sgt_and_min_commute_logical" +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.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 + +4: "sgt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sgt_swap_and_min_logical" +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.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 + +4: "sgt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sgt_swap_and_min_commute_logical" +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.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 + +4: "ugt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_and_min_logical" +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.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 + +4: "ugt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_and_min_commute_logical" +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.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 + +4: "ugt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_min_logical" +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.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 + +4: "ugt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_min_commute_logical" +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.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 + +4: "sge_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sge_or_not_max_logical" +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.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 + +4: "sge_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sge_or_not_max_commute_logical" +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.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 + +4: "sge_swap_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sge_swap_or_not_max_logical" +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.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 + +4: "sge_swap_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sge_swap_or_not_max_commute_logical" +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.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 + +4: "uge_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "uge_or_not_max_logical" +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.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 + +4: "uge_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "uge_or_not_max_commute_logical" +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.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 + +4: "uge_swap_or_not_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "uge_swap_or_not_max_logical" +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.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 + +4: "uge_swap_or_not_max_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "uge_swap_or_not_max_commute_logical" +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.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 + +4: "sle_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sle_or_not_min_logical" +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.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 + +4: "sle_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sle_or_not_min_commute_logical" +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.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 + +4: "sle_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sle_swap_or_not_min_logical" +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.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 + +4: "sle_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sle_swap_or_not_min_commute_logical" +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.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 + +4: "ule_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_or_not_min_logical" +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.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 + +4: "ule_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_or_not_min_commute_logical" +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.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 + +4: "ule_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_not_min_logical" +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.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 + +4: "ule_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_not_min_commute_logical" +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.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 + +1: "sge_and_max_logical" +4: "sge_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_and_max_commute" +4: "sge_and_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_and_max_commute_logical" +4: "sge_and_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_and_max" +4: "sge_swap_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_and_max_logical" +4: "sge_swap_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_and_max_commute" +4: "sge_swap_and_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_and_max_commute_logical" +4: "sge_swap_and_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_and_max" +4: "uge_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_and_max_logical" +4: "uge_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_and_max_commute" +4: "uge_and_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_and_max_commute_logical" +4: "uge_and_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_and_max" +4: "uge_swap_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_and_max_logical" +4: "uge_swap_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_and_max_commute" +4: "uge_swap_and_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_and_max_commute_logical" +4: "uge_swap_and_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min" +4: "sle_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min_logical" +4: "sle_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min_commute" +4: "sle_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min_commute_logical" +4: "sle_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_and_min" +4: "sle_swap_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_and_min_logical" +4: "sle_swap_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_and_min_commute" +4: "sle_swap_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_and_min_commute_logical" +4: "sle_swap_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min" +4: "ule_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_logical" +4: "ule_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_commute" +4: "ule_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_commute_logical" +4: "ule_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min" +4: "ule_swap_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_logical" +4: "ule_swap_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_commute" +4: "ule_swap_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_commute_logical" +4: "ule_swap_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_or_max" +4: "sge_or_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_or_max_logical" +4: "sge_or_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_or_max_commute" +4: "sge_or_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_or_max_commute_logical" +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.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 + +1: "sge_swap_or_max_logical" +4: "sge_swap_or_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_or_max_commute" +4: "sge_swap_or_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_swap_or_max_commute_logical" +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.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 + +1: "uge_or_max_logical" +4: "uge_or_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_or_max_commute" +4: "uge_or_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_or_max_commute_logical" +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.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 + +1: "uge_swap_or_max_logical" +4: "uge_swap_or_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_or_max_commute" +4: "uge_swap_or_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_swap_or_max_commute_logical" +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.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 + +1: "sle_or_min_logical" +4: "sle_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_or_min_commute" +4: "sle_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_or_min_commute_logical" +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.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 + +1: "sle_swap_or_min_logical" +4: "sle_swap_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_or_min_commute" +4: "sle_swap_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_swap_or_min_commute_logical" +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.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 + +1: "ule_or_min_logical" +4: "ule_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min_commute" +4: "ule_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min_commute_logical" +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.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 + +1: "ule_swap_or_min_logical" +4: "ule_swap_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_min_commute" +4: "ule_swap_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_min_commute_logical" +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.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 + +1: "slt_and_not_max_logical" +4: "slt_and_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_and_not_max_commute" +4: "slt_and_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_and_not_max_commute_logical" +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.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 + +1: "slt_swap_and_not_max_logical" +4: "slt_swap_and_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_and_not_max_commute" +4: "slt_swap_and_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_and_not_max_commute_logical" +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.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 + +1: "ult_and_not_max_logical" +4: "ult_and_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_and_not_max_commute" +4: "ult_and_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_and_not_max_commute_logical" +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.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 + +1: "ult_swap_and_not_max_logical" +4: "ult_swap_and_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_and_not_max_commute" +4: "ult_swap_and_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_and_not_max_commute_logical" +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.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 + +1: "sgt_and_not_min_logical" +4: "sgt_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_not_min_commute" +4: "sgt_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_not_min_commute_logical" +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.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 + +1: "sgt_swap_and_not_min_logical" +4: "sgt_swap_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_and_not_min_commute" +4: "sgt_swap_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_and_not_min_commute_logical" +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.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 + +1: "ugt_and_not_min_logical" +4: "ugt_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_and_not_min_commute" +4: "ugt_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_and_not_min_commute_logical" +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.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 + +1: "ugt_swap_and_not_min_logical" +4: "ugt_swap_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_not_min_commute" +4: "ugt_swap_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_not_min_commute_logical" +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.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 + +1: "slt_or_not_max_logical" +4: "slt_or_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_or_not_max_commute" +4: "slt_or_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_or_not_max_commute_logical" +4: "slt_or_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_or_not_max" +4: "slt_swap_or_not_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_or_not_max_logical" +4: "slt_swap_or_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_or_not_max_commute" +4: "slt_swap_or_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_swap_or_not_max_commute_logical" +4: "slt_swap_or_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_or_not_max" +4: "ult_or_not_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_or_not_max_logical" +4: "ult_or_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_or_not_max_commute" +4: "ult_or_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_or_not_max_commute_logical" +4: "ult_or_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_or_not_max" +4: "ult_swap_or_not_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_or_not_max_logical" +4: "ult_swap_or_not_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_or_not_max_commute" +4: "ult_swap_or_not_max_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_swap_or_not_max_commute_logical" +4: "ult_swap_or_not_max_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min" +4: "sgt_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min_logical" +4: "sgt_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min_commute" +4: "sgt_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min_commute_logical" +4: "sgt_or_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_or_not_min" +4: "sgt_swap_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_or_not_min_logical" +4: "sgt_swap_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_or_not_min_commute" +4: "sgt_swap_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_swap_or_not_min_commute_logical" +4: "sgt_swap_or_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min" +4: "ugt_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_logical" +4: "ugt_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_commute" +4: "ugt_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_commute_logical" +4: "ugt_or_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min" +4: "ugt_swap_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_logical" +4: "ugt_swap_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_commute" +4: "ugt_swap_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_commute_logical" +4: "ugt_swap_or_not_min_commute_logical" 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 new file mode 100644 index 000000000..cccfc505a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmp-nullptr.txt @@ -0,0 +1,366 @@ +1: "ugt_and_min" +4: "ugt_and_min" has unsupported operation after optimization: llvm.mlir.zero + +4: "ugt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ugt_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_and_min_logical" +4: "ugt_and_min_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ugt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ugt_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_and_min_commute_logical" +4: "ugt_and_min_commute_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ugt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ugt_swap_and_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_min_logical" +4: "ugt_swap_and_min_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ugt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ugt_swap_and_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_min_commute_logical" +4: "ugt_swap_and_min_commute_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ule_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ule_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_or_not_min_logical" +4: "ule_or_not_min_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ule_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ule_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_or_not_min_commute_logical" +4: "ule_or_not_min_commute_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ule_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ule_swap_or_not_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_not_min_logical" +4: "ule_swap_or_not_min_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ule_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "ule_swap_or_not_min_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_not_min_commute_logical" +4: "ule_swap_or_not_min_commute_logical" has unsupported operation after optimization: llvm.mlir.zero + +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.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 + +4: "ule_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_logical" +4: "ule_and_min_logical" has unsupported operation: llvm.mlir.zero + +4: "ule_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_commute" +4: "ule_and_min_commute" has unsupported operation: llvm.mlir.zero + +4: "ule_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_and_min_commute_logical" +4: "ule_and_min_commute_logical" has unsupported operation: llvm.mlir.zero + +4: "ule_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min" +4: "ule_swap_and_min" has unsupported operation: llvm.mlir.zero + +4: "ule_swap_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_logical" +4: "ule_swap_and_min_logical" has unsupported operation: llvm.mlir.zero + +4: "ule_swap_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_commute" +4: "ule_swap_and_min_commute" has unsupported operation: llvm.mlir.zero + +4: "ule_swap_and_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_and_min_commute_logical" +4: "ule_swap_and_min_commute_logical" has unsupported operation: llvm.mlir.zero + +4: "ule_swap_and_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min" +4: "ule_or_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min_logical" +4: "ule_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min_commute" +4: "ule_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_or_min_commute_logical" +4: "ule_or_min_commute_logical" has unsupported operation: llvm.mlir.zero + +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.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 + +1: "ule_swap_or_min_logical" +4: "ule_swap_or_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_min_commute" +4: "ule_swap_or_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_swap_or_min_commute_logical" +4: "ule_swap_or_min_commute_logical" has unsupported operation: llvm.mlir.zero + +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.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 + +1: "ugt_and_not_min_logical" +4: "ugt_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_and_not_min_commute" +4: "ugt_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_and_not_min_commute_logical" +4: "ugt_and_not_min_commute_logical" has unsupported operation: llvm.mlir.zero + +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.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 + +1: "ugt_swap_and_not_min_logical" +4: "ugt_swap_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_not_min_commute" +4: "ugt_swap_and_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_and_not_min_commute_logical" +4: "ugt_swap_and_not_min_commute_logical" has unsupported operation: llvm.mlir.zero + +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.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 + +4: "ugt_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_logical" +4: "ugt_or_not_min_logical" has unsupported operation: llvm.mlir.zero + +4: "ugt_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_commute" +4: "ugt_or_not_min_commute" has unsupported operation: llvm.mlir.zero + +4: "ugt_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_or_not_min_commute_logical" +4: "ugt_or_not_min_commute_logical" has unsupported operation: llvm.mlir.zero + +4: "ugt_or_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min" +4: "ugt_swap_or_not_min" has unsupported operation: llvm.mlir.zero + +4: "ugt_swap_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_logical" +4: "ugt_swap_or_not_min_logical" has unsupported operation: llvm.mlir.zero + +4: "ugt_swap_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_commute" +4: "ugt_swap_or_not_min_commute" has unsupported operation: llvm.mlir.zero + +4: "ugt_swap_or_not_min_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_swap_or_not_min_commute_logical" +4: "ugt_swap_or_not_min_commute_logical" has unsupported operation: llvm.mlir.zero + +4: "ugt_swap_or_not_min_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_min" +4: "sgt_and_min" has unsupported operation: llvm.mlir.zero + +4: "sgt_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_min_logical" +4: "sgt_and_min_logical" has unsupported operation: llvm.mlir.zero + +4: "sgt_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_or_not_min" +4: "sle_or_not_min" has unsupported operation: llvm.mlir.zero + +4: "sle_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_or_not_min_logical" +4: "sle_or_not_min_logical" has unsupported operation: llvm.mlir.zero + +4: "sle_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min" +4: "sle_and_min" has unsupported operation: llvm.mlir.zero + +4: "sle_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_and_min_logical" +4: "sle_and_min_logical" has unsupported operation: llvm.mlir.zero + +4: "sle_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_not_min" +4: "sgt_and_not_min" has unsupported operation: llvm.mlir.zero + +4: "sgt_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_and_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_and_not_min_logical" +4: "sgt_and_not_min_logical" has unsupported operation: llvm.mlir.zero + +4: "sgt_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_and_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min" +4: "sgt_or_not_min" has unsupported operation: llvm.mlir.zero + +4: "sgt_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_or_not_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_or_not_min_logical" +4: "sgt_or_not_min_logical" has unsupported operation: llvm.mlir.zero + +4: "sgt_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_or_not_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_and_min" +4: "slt_and_min" has unsupported operation: llvm.mlir.zero + +4: "slt_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_and_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_and_min_logical" +4: "slt_and_min_logical" has unsupported operation: llvm.mlir.zero + +4: "slt_and_min_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..59593d6e5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-icmps.txt @@ -0,0 +1,1184 @@ +1: "use" +5: "use" is empty + +1: "use32" +5: "use32" is empty + +1: "PR1817_1" +4: "PR1817_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR1817_1_logical" +4: "PR1817_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR1817_2" +4: "PR1817_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR1817_2_logical" +4: "PR1817_2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR2330" +4: "PR2330" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR2330_logical" +4: "PR2330_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "or_eq_with_one_bit_diff_constants1_logical" +4: "or_eq_with_one_bit_diff_constants1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants1" +4: "and_ne_with_one_bit_diff_constants1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants1_logical" +4: "and_ne_with_one_bit_diff_constants1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_one_bit_diff_constants2" +4: "or_eq_with_one_bit_diff_constants2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_one_bit_diff_constants2_logical" +4: "or_eq_with_one_bit_diff_constants2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants2" +4: "and_ne_with_one_bit_diff_constants2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants2_logical" +4: "and_ne_with_one_bit_diff_constants2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_one_bit_diff_constants3" +4: "or_eq_with_one_bit_diff_constants3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_one_bit_diff_constants3_logical" +4: "or_eq_with_one_bit_diff_constants3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants3" +4: "and_ne_with_one_bit_diff_constants3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_one_bit_diff_constants3_logical" +4: "and_ne_with_one_bit_diff_constants3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_diff_one" +4: "or_eq_with_diff_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_diff_one_logical" +4: "or_eq_with_diff_one_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_diff_one" +4: "and_ne_with_diff_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_diff_one_logical" +4: "and_ne_with_diff_one_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_diff_one_signed" +4: "or_eq_with_diff_one_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_diff_one_signed_logical" +4: "or_eq_with_diff_one_signed_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_diff_one_signed" +4: "and_ne_with_diff_one_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_diff_one_signed_logical" +4: "and_ne_with_diff_one_signed_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_with_one_bit_diff_constants2_splatvec" +4: "or_eq_with_one_bit_diff_constants2_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ne_with_diff_one_splatvec" +4: "and_ne_with_diff_one_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "simplify_before_foldAndOfICmps" +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.mlir.zero + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.alloca + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.load + +4: "simplify_before_foldAndOfICmps" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "simplify_before_foldAndOfICmps" has unsupported operation: builtin.unregistered: llvm.zext + +4: "simplify_before_foldAndOfICmps" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "simplify_before_foldAndOfICmps" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "simplify_before_foldAndOfICmps" has unsupported operation: builtin.unregistered: llvm.sext + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.getelementptr + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.store + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.store + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.store + +4: "simplify_before_foldAndOfICmps" has unsupported operation: llvm.return + +1: "PR42691_1" +4: "PR42691_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_1_logical" +4: "PR42691_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_2" +4: "PR42691_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_2_logical" +4: "PR42691_2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_3" +4: "PR42691_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_3_logical" +4: "PR42691_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_4" +4: "PR42691_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_4_logical" +4: "PR42691_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_5" +4: "PR42691_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_5_logical" +4: "PR42691_5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_6" +4: "PR42691_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_6_logical" +4: "PR42691_6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_7" +4: "PR42691_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_7_logical" +4: "PR42691_7_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_8" +4: "PR42691_8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_8_logical" +4: "PR42691_8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_9" +4: "PR42691_9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_9_logical" +4: "PR42691_9_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_10" +4: "PR42691_10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR42691_10_logical" +4: "PR42691_10_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_eq" +4: "substitute_constant_and_eq_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_eq_logical" +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.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 + +4: "substitute_constant_and_eq_eq_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_eq_commute_logical" +4: "substitute_constant_and_eq_eq_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_eq_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_ugt_swap" +4: "substitute_constant_and_eq_ugt_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_ugt_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_ugt_swap_logical" +4: "substitute_constant_and_eq_ugt_swap_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_ugt_swap_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_ne_vec" +4: "substitute_constant_and_eq_ne_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_ne_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_ne_vec_logical" +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.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 + +4: "substitute_constant_and_eq_sgt_use" has unsupported operation: llvm.call + +4: "substitute_constant_and_eq_sgt_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_sgt_use_logical" +4: "substitute_constant_and_eq_sgt_use_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_sgt_use_logical" has unsupported operation: llvm.call + +4: "substitute_constant_and_eq_sgt_use_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_eq_sgt_use2" +4: "substitute_constant_and_eq_sgt_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_sgt_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_sgt_use2" has unsupported operation: llvm.call + +1: "substitute_constant_and_eq_sgt_use2_logical" +4: "substitute_constant_and_eq_sgt_use2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_sgt_use2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_eq_sgt_use2_logical" has unsupported operation: llvm.call + +1: "slt_and_max" +4: "slt_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_and_max" has unsupported operation: llvm.call + +1: "slt_and_max_logical" +4: "slt_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_and_max_logical" has unsupported operation: llvm.call + +1: "sge_and_max" +4: "sge_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_and_max" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_and_max" has unsupported operation: llvm.call + +1: "sge_and_max_logical" +4: "sge_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_and_max_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_and_max_logical" has unsupported operation: llvm.call + +1: "substitute_constant_and_ne_ugt_swap" +4: "substitute_constant_and_ne_ugt_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_ne_ugt_swap" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_and_ne_ugt_swap_logical" +4: "substitute_constant_and_ne_ugt_swap_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_and_ne_ugt_swap_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_swap_sle" +4: "substitute_constant_or_ne_swap_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_swap_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_swap_sle_logical" +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.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 + +4: "substitute_constant_or_ne_uge_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_uge_commute_logical" +4: "substitute_constant_or_ne_uge_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_uge_commute_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_slt_swap_vec_undef" +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_slt_swap_vec_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_slt_swap_vec_poison" +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_slt_swap_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_slt_swap_vec_logical" +4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: llvm.mlir.undef + +4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "substitute_constant_or_ne_slt_swap_vec_logical" has unsupported operation: builtin.unregistered: llvm.insertelement + +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.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 + +4: "substitute_constant_or_eq_swap_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_eq_swap_ne_logical" +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.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 + +4: "substitute_constant_or_ne_sge_use" has unsupported operation: llvm.call + +4: "substitute_constant_or_ne_sge_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_sge_use_logical" +4: "substitute_constant_or_ne_sge_use_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_sge_use_logical" has unsupported operation: llvm.call + +4: "substitute_constant_or_ne_sge_use_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "substitute_constant_or_ne_ule_use2" +4: "substitute_constant_or_ne_ule_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_ule_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_ule_use2" has unsupported operation: llvm.call + +1: "substitute_constant_or_ne_ule_use2_logical" +4: "substitute_constant_or_ne_ule_use2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_ule_use2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "substitute_constant_or_ne_ule_use2_logical" has unsupported operation: llvm.call + +1: "or_ranges_overlap" +4: "or_ranges_overlap" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ranges_adjacent" +4: "or_ranges_adjacent" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ranges_separated" +4: "or_ranges_separated" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_ranges_separated" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ranges_single_elem_right" +4: "or_ranges_single_elem_right" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ranges_single_elem_left" +4: "or_ranges_single_elem_left" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ranges_overlap" +4: "and_ranges_overlap" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ranges_overlap_single" +4: "and_ranges_overlap_single" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ranges_no_overlap" +4: "and_ranges_no_overlap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "and_ranges_no_overlap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "and_ranges_no_overlap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "and_ranges_no_overlap" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "and_ranges_signed_pred" +4: "and_ranges_signed_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_two_ranges_to_mask_and_range" +4: "and_two_ranges_to_mask_and_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_two_ranges_to_mask_and_range_not_pow2_diff" +4: "and_two_ranges_to_mask_and_range_not_pow2_diff" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_two_ranges_to_mask_and_range_not_pow2_diff" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_two_ranges_to_mask_and_range_different_sizes" +4: "and_two_ranges_to_mask_and_range_different_sizes" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_two_ranges_to_mask_and_range_different_sizes" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_two_ranges_to_mask_and_range_no_add_on_one_range" +4: "and_two_ranges_to_mask_and_range_no_add_on_one_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_ascii_alphabetic" +4: "is_ascii_alphabetic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_ascii_alphabetic_inverted" +4: "is_ascii_alphabetic_inverted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_and_bitwise_and_icmps" +4: "bitwise_and_bitwise_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_and_bitwise_and_icmps" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_and_bitwise_and_icmps_comm1" +4: "bitwise_and_bitwise_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_and_bitwise_and_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_and_bitwise_and_icmps_comm2" +4: "bitwise_and_bitwise_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_and_bitwise_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_and_bitwise_and_icmps_comm3" +4: "bitwise_and_bitwise_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_and_bitwise_and_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_and_logical_and_icmps" +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.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 + +4: "bitwise_and_logical_and_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.freeze + +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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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 + +4: "bitwise_or_bitwise_or_icmps" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_or_bitwise_or_icmps_comm1" +4: "bitwise_or_bitwise_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_or_bitwise_or_icmps_comm1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_or_bitwise_or_icmps_comm2" +4: "bitwise_or_bitwise_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_or_bitwise_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_or_bitwise_or_icmps_comm3" +4: "bitwise_or_bitwise_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bitwise_or_bitwise_or_icmps_comm3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitwise_or_logical_or_icmps" +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.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 + +4: "bitwise_or_logical_or_icmps_comm2" has unsupported operation: builtin.unregistered: llvm.freeze + +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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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 + +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.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" +4: "samesign" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_different_sign_bittest1" +4: "samesign_different_sign_bittest1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_different_sign_bittest2" +4: "samesign_different_sign_bittest2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_commute1" +4: "samesign_commute1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_commute2" +4: "samesign_commute2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_commute3" +4: "samesign_commute3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_violate_constraint1" +4: "samesign_violate_constraint1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_violate_constraint1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_violate_constraint2" +4: "samesign_violate_constraint2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_violate_constraint2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_mult_use" +4: "samesign_mult_use" has unsupported operation: llvm.call + +4: "samesign_mult_use" has unsupported operation: llvm.call + +4: "samesign_mult_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_mult_use2" +4: "samesign_mult_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_mult_use2" has unsupported operation: llvm.call + +4: "samesign_mult_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_mult_use3" +4: "samesign_mult_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_mult_use3" has unsupported operation: llvm.call + +4: "samesign_mult_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_mult_use3" has unsupported operation: llvm.call + +1: "samesign_wrong_cmp" +4: "samesign_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted" +4: "samesign_inverted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_different_sign_bittest1" +4: "samesign_inverted_different_sign_bittest1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_different_sign_bittest2" +4: "samesign_inverted_different_sign_bittest2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_commute1" +4: "samesign_inverted_commute1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_commute2" +4: "samesign_inverted_commute2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_commute3" +4: "samesign_inverted_commute3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_violate_constraint1" +4: "samesign_inverted_violate_constraint1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_inverted_violate_constraint1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_violate_constraint2" +4: "samesign_inverted_violate_constraint2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_inverted_violate_constraint2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_mult_use" +4: "samesign_inverted_mult_use" has unsupported operation: llvm.call + +4: "samesign_inverted_mult_use" has unsupported operation: llvm.call + +4: "samesign_inverted_mult_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "samesign_inverted_mult_use2" +4: "samesign_inverted_mult_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_inverted_mult_use2" has unsupported operation: llvm.call + +4: "samesign_inverted_mult_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_inverted_mult_use2" has unsupported operation: llvm.call + +1: "samesign_inverted_wrong_cmp" +4: "samesign_inverted_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "samesign_inverted_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_m1_and_eq_m1" +4: "icmp_eq_m1_and_eq_m1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_m1_and_eq_poison_m1" +4: "icmp_eq_m1_and_eq_poison_m1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_poison_and_eq_m1_m2" +4: "icmp_eq_poison_and_eq_m1_m2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "icmp_ne_m1_and_ne_m1_fail" +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: llvm.mlir.undef + +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_m1_and_ne_m1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_m1_or_eq_m1_fail" +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: llvm.mlir.undef + +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_m1_or_eq_m1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_m1_or_ne_m1" +4: "icmp_ne_m1_or_ne_m1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_0_or_icmp_sgt_0_i32" +4: "icmp_slt_0_or_icmp_sgt_0_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64" +4: "icmp_slt_0_or_icmp_sgt_0_i64" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64_fail0" +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail0" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64_fail1" +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64_fail2" +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64_fail3" +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64_fail3" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64x2" +4: "icmp_slt_0_or_icmp_sgt_0_i64x2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64x2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sgt_0_i64x2_fail" +4: "icmp_slt_0_or_icmp_sgt_0_i64x2_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sgt_0_i64x2_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sge_neg1_i32" +4: "icmp_slt_0_and_icmp_sge_neg1_i32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg1_i32" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sge_neg1_i32" +4: "icmp_slt_0_or_icmp_sge_neg1_i32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sge_neg1_i32" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_sge_100_i32" +4: "icmp_slt_0_or_icmp_sge_100_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_sge_100_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sge_neg1_i64" +4: "icmp_slt_0_and_icmp_sge_neg1_i64" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg1_i64" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sge_neg2_i64" +4: "icmp_slt_0_and_icmp_sge_neg2_i64" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg2_i64" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_and_icmp_sge_neg1_i64" +4: "ashr_and_icmp_sge_neg1_i64" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_and_icmp_sge_neg1_i64" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sgt_neg1_i64" +4: "icmp_slt_0_and_icmp_sgt_neg1_i64" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sgt_neg1_i64" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +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 + +4: "icmp_slt_0_and_icmp_sge_neg1_i32x2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sge_neg2_i32x2" +4: "icmp_slt_0_and_icmp_sge_neg2_i32x2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg2_i32x2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_x_slt_0_xor_icmp_y_sgt_neg1_i32" +4: "icmp_x_slt_0_xor_icmp_y_sgt_neg1_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_x_slt_0_xor_icmp_y_sgt_neg1_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_xor_icmp_sgt_neg2_i32" +4: "icmp_slt_0_xor_icmp_sgt_neg2_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_xor_icmp_sgt_neg2_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_sge_neg1_i32_multiuse0" +4: "icmp_slt_0_and_icmp_sge_neg1_i32_multiuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg1_i32_multiuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg1_i32_multiuse0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_slt_0_and_icmp_sge_neg1_i32_multiuse0" has unsupported operation: llvm.call + +1: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse1" +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse1" has unsupported operation: llvm.call + +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" +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse_fail0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse_fail0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse_fail0" has unsupported operation: llvm.call + +4: "icmp_slt_0_and_icmp_sge_neg2_i32_multiuse_fail0" has unsupported operation: llvm.call + +1: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail1" +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail1" has unsupported operation: llvm.call + +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" +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_slt_0_or_icmp_eq_100_i32_multiuse_fail3" has unsupported operation: llvm.call + +1: "icmp_slt_0_or_icmp_eq_100_i32_fail" +4: "icmp_slt_0_or_icmp_eq_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_eq_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_eq_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_and_icmp_ne_neg2_i32_fail" +4: "icmp_slt_0_and_icmp_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_and_icmp_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_fail" +4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_x_slt_0_and_icmp_y_ne_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_x_slt_0_and_icmp_y_sgt_neg1_i32_fail" +4: "icmp_x_slt_0_and_icmp_y_sgt_neg1_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_x_slt_0_and_icmp_y_sgt_neg1_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_x_slt_0_and_icmp_y_sgt_neg1_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_xor_icmp_sge_neg2_i32_fail" +4: "icmp_slt_0_xor_icmp_sge_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_xor_icmp_sge_neg2_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_slt_0_or_icmp_add_1_sge_100_i32_fail" +4: "icmp_slt_0_or_icmp_add_1_sge_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_add_1_sge_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_0_or_icmp_add_1_sge_100_i32_fail" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "icmp_eq_or_z_or_pow2orz_logical" +4: "icmp_eq_or_z_or_pow2orz_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_or_z_or_pow2orz_fail_multiuse" +4: "icmp_eq_or_z_or_pow2orz_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_or_z_or_pow2orz_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_or_z_or_pow2orz_fail_multiuse" has unsupported operation: llvm.call + +1: "icmp_eq_or_z_or_pow2orz_fail_logic_or" +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.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 + +1: "icmp_ne_and_z_and_onefail" +4: "icmp_ne_and_z_and_onefail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_and_z_and_pow2orz_fail_multiuse1" +4: "icmp_ne_and_z_and_pow2orz_fail_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_z_and_pow2orz_fail_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_z_and_pow2orz_fail_multiuse1" has unsupported operation: llvm.call + +1: "icmp_ne_and_z_and_pow2orz_fail_logic_and" +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.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 + +4: "icmp_eq_or_z_or_pow2orz_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_or_z_or_pow2orz_fail_nonzero_const" +4: "icmp_eq_or_z_or_pow2orz_fail_nonzero_const" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_or_z_or_pow2orz_fail_nonzero_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_and_z_and_pow2orz_fail_bad_pred" +4: "icmp_ne_and_z_and_pow2orz_fail_bad_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_or_z_or_pow2orz_fail_bad_pred2" +4: "icmp_eq_or_z_or_pow2orz_fail_bad_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_or_z_or_pow2orz_fail_bad_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_slt_to_mask" +4: "and_slt_to_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_slt_to_mask_off_by_one" +4: "and_slt_to_mask_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_slt_to_mask_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_sgt_to_mask" +4: "and_sgt_to_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_sgt_to_mask_off_by_one" +4: "and_sgt_to_mask_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_sgt_to_mask_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ugt_to_mask" +4: "and_ugt_to_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ugt_to_mask_off_by_one" +4: "and_ugt_to_mask_off_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_ugt_to_mask_off_by_one" 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 new file mode 100644 index 000000000..93165e740 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-implied-cond-not.txt @@ -0,0 +1,42 @@ +1: "test_imply_not1" +4: "test_imply_not1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_imply_not1" has unsupported operation: llvm.call + +4: "test_imply_not1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_imply_not1" has unsupported operation: llvm.call + +4: "test_imply_not1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_imply_not1" has unsupported operation: llvm.call + +4: "test_imply_not1" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_imply_not1" has unsupported operation: llvm.call + +4: "test_imply_not1" has unsupported operation: builtin.unregistered: llvm.unreachable + +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 + +4: "test_imply_not3" has unsupported operation: llvm.call + +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 + +1: "func2" +5: "func2" is empty + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/and-or-not.txt b/SSA/Projects/InstCombine/tests/logs/and-or-not.txt new file mode 100644 index 000000000..b45d37896 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or-not.txt @@ -0,0 +1,317 @@ +1: "use" +5: "use" is empty + +1: "and_to_xor1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_to_xor2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_to_xor3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_to_xor4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_to_xor1_vec" +"and_to_xor1_vec" contains vectors which are unsupported + +1: "and_to_nxor1" +4: "and_to_nxor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "and_to_nxor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "and_to_nxor2" +4: "and_to_nxor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "and_to_nxor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "and_to_nxor3" +4: "and_to_nxor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "and_to_nxor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "and_to_nxor4" +4: "and_to_nxor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "and_to_nxor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_xor1" +4: "or_to_xor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "or_to_xor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_xor2" +4: "or_to_xor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "or_to_xor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_xor3" +4: "or_to_xor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "or_to_xor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_xor4" +4: "or_to_xor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "or_to_xor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_nxor1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_to_nxor2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_to_nxor3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_to_nxor4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "xor_to_xor1" +2: llvm.func +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_to_xor2" +2: llvm.func +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_to_xor3" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "xor_to_xor4" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "xor_to_xor5" +4: "xor_to_xor5" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor5" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor6" +4: "xor_to_xor6" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor6" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor7" +4: "xor_to_xor7" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor7" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor8" +4: "xor_to_xor8" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor8" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor9" +4: "xor_to_xor9" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor9" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor10" +4: "xor_to_xor10" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor10" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor11" +4: "xor_to_xor11" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor11" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xor12" +4: "xor_to_xor12" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xor12" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "PR32830" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_to_nxor_multiuse" +4: "and_to_nxor_multiuse" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "and_to_nxor_multiuse" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "or_to_nxor_multiuse" +7: "or_to_nxor_multiuse" is unchanged by InstCombine + +1: "xor_to_xnor1" +4: "xor_to_xnor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xnor1" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xnor2" +4: "xor_to_xnor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xnor2" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xnor3" +4: "xor_to_xnor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xnor3" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "xor_to_xnor4" +4: "xor_to_xnor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "xor_to_xnor4" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "simplify_or_common_op_commute0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "simplify_or_common_op_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "simplify_or_common_op_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.and +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "simplify_or_common_op_commute3" +"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 + +1: "simplify_and_common_op_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "simplify_and_common_op_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "simplify_and_common_op_commute3" +"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 + +1: "simplify_and_common_op_use2" +4: "simplify_and_common_op_use2" has unsupported operation: llvm.call + +1: "simplify_and_common_op_use3" +4: "simplify_and_common_op_use3" has unsupported operation: llvm.call + +1: "reduce_xor_common_op_commute0" +2: llvm.func +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "reduce_xor_common_op_commute1" +2: llvm.func +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "annihilate_xor_common_op_commute2" +2: llvm.func +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "reduce_xor_common_op_commute3" +"reduce_xor_common_op_commute3" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/and-or.txt b/SSA/Projects/InstCombine/tests/logs/and-or.txt new file mode 100644 index 000000000..7da9ab650 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-or.txt @@ -0,0 +1,2 @@ +3: and-or.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/and-xor-merge.txt b/SSA/Projects/InstCombine/tests/logs/and-xor-merge.txt new file mode 100644 index 000000000..1d307e9d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-xor-merge.txt @@ -0,0 +1,34 @@ +1: "test1" +2: llvm.func +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "PR38781" +4: "PR38781" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR38781" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR75692_1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "PR75692_2" +7: "PR75692_2" is unchanged by InstCombine + +1: "PR75692_3" +7: "PR75692_3" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt b/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt new file mode 100644 index 000000000..57a92c12a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and-xor-or.txt @@ -0,0 +1,1840 @@ +1: "use" +5: "use" is empty + +1: "use_i8" +5: "use_i8" is empty + +1: "use_i1" +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 + +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 + +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 + +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 + +1: "and_xor_common_op_constant" +"and_xor_common_op_constant" contains vectors which are unsupported + +1: "and_xor_not_common_op" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_xor_not_common_op_extrause" +4: "and_xor_not_common_op_extrause" has unsupported operation: llvm.store + +1: "and_not_xor_common_op" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "gen32" +5: "gen32" is empty + +1: "and_not_xor_common_op_commutative" +4: "and_not_xor_common_op_commutative" has unsupported operation: llvm.call + +1: "or" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "or2" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.or +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 + +1: "and_xor_or2" +4: "and_xor_or2" has unsupported operation: llvm.udiv + +4: "and_xor_or2" has unsupported operation: llvm.udiv + +1: "and_xor_or3" +4: "and_xor_or3" has unsupported operation: llvm.udiv + +4: "and_xor_or3" has unsupported operation: llvm.udiv + +1: "and_xor_or4" +4: "and_xor_or4" has unsupported operation: llvm.udiv + +4: "and_xor_or4" has unsupported operation: llvm.udiv + +1: "and_xor_or5" +4: "and_xor_or5" has unsupported operation: llvm.udiv + +4: "and_xor_or5" has unsupported operation: llvm.udiv + +1: "and_xor_or6" +4: "and_xor_or6" has unsupported operation: llvm.udiv + +4: "and_xor_or6" has unsupported operation: llvm.udiv + +1: "and_xor_or7" +4: "and_xor_or7" has unsupported operation: llvm.udiv + +4: "and_xor_or7" has unsupported operation: llvm.udiv + +1: "and_xor_or8" +4: "and_xor_or8" has unsupported operation: llvm.udiv + +4: "and_xor_or8" has unsupported operation: llvm.udiv + +1: "and_xor_or_negative" +7: "and_xor_or_negative" is unchanged by InstCombine + +1: "and_shl" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.and +2: llvm.return + +1: "or_shl" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.or +2: llvm.or +2: llvm.return + +1: "xor_shl" +7: "xor_shl" is unchanged by InstCombine + +1: "and_lshr" +7: "and_lshr" is unchanged by InstCombine + +1: "or_lshr" +2: llvm.func +2: llvm.lshr +2: llvm.lshr +2: llvm.or +2: llvm.or +2: llvm.return + +1: "xor_lshr" +2: llvm.func +2: llvm.lshr +2: llvm.lshr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "and_ashr" +7: "and_ashr" is unchanged by InstCombine + +1: "or_ashr" +7: "or_ashr" is unchanged by InstCombine + +1: "xor_ashr" +7: "xor_ashr" is unchanged by InstCombine + +1: "or_and_shl" +7: "or_and_shl" is unchanged by InstCombine + +1: "or_lshr_shl" +7: "or_lshr_shl" is unchanged by InstCombine + +1: "or_lshr_shamt2" +7: "or_lshr_shamt2" is unchanged by InstCombine + +1: "xor_lshr_multiuse" +2: llvm.func +2: llvm.lshr +2: llvm.lshr +2: llvm.xor +2: llvm.xor +2: llvm.sdiv +2: llvm.return + +1: "sext_or_chain" +4: "sext_or_chain" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_or_chain" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_or_chain" +4: "zext_or_chain" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_or_chain" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_and_chain" +4: "sext_and_chain" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_and_chain" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_and_chain" +4: "zext_and_chain" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_and_chain" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_xor_chain" +4: "sext_xor_chain" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_xor_chain" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_xor_chain" +4: "zext_xor_chain" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_xor_chain" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_or_chain_two_uses1" +4: "sext_or_chain_two_uses1" has unsupported operation: builtin.unregistered: llvm.sext + +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 +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.return + +1: "not_and_and_not_4i64" +"not_and_and_not_4i64" contains vectors which are unsupported + +1: "not_and_and_not_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.return + +1: "not_and_and_not_commute2_extra_not_use" +4: "not_and_and_not_commute2_extra_not_use" has unsupported operation: llvm.call + +1: "not_and_and_not_extra_and1_use" +4: "not_and_and_not_extra_and1_use" has unsupported operation: llvm.call + +1: "not_or_or_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "not_or_or_not_2i6" +"not_or_or_not_2i6" contains vectors which are unsupported + +1: "not_or_or_not_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "not_or_or_not_commute2_extra_not_use" +4: "not_or_or_not_commute2_extra_not_use" has unsupported operation: llvm.call + +1: "not_or_or_not_extra_or1_use" +4: "not_or_or_not_extra_or1_use" has unsupported operation: llvm.call + +1: "or_not_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_commute9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_extra_not_use1" +4: "or_not_and_extra_not_use1" has unsupported operation: llvm.call + +1: "or_not_and_extra_not_use2" +4: "or_not_and_extra_not_use2" has unsupported operation: llvm.call + +1: "or_not_and_extra_and_use1" +4: "or_not_and_extra_and_use1" has unsupported operation: llvm.call + +1: "or_not_and_extra_and_use2" +4: "or_not_and_extra_and_use2" has unsupported operation: llvm.call + +1: "or_not_and_extra_or_use1" +4: "or_not_and_extra_or_use1" has unsupported operation: llvm.call + +1: "or_not_and_extra_or_use2" +4: "or_not_and_extra_or_use2" has unsupported operation: llvm.call + +1: "or_not_and_wrong_c" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_not_and_wrong_b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "and_not_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_commute9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sdiv +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_extra_not_use1" +4: "and_not_or_extra_not_use1" has unsupported operation: llvm.call + +1: "and_not_or_extra_not_use2" +4: "and_not_or_extra_not_use2" has unsupported operation: llvm.call + +1: "and_not_or_extra_and_use1" +4: "and_not_or_extra_and_use1" has unsupported operation: llvm.call + +1: "and_not_or_extra_and_use2" +4: "and_not_or_extra_and_use2" has unsupported operation: llvm.call + +1: "and_not_or_extra_or_use1" +4: "and_not_or_extra_or_use1" has unsupported operation: llvm.call + +1: "and_not_or_extra_or_use2" +4: "and_not_or_extra_or_use2" has unsupported operation: llvm.call + +1: "and_not_or_wrong_c" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_wrong_b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "or_and_not_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_commute7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_extra_not_use1" +4: "or_and_not_not_extra_not_use1" has unsupported operation: llvm.call + +1: "or_and_not_not_extra_not_use2" +4: "or_and_not_not_extra_not_use2" has unsupported operation: llvm.call + +1: "or_and_not_not_extra_and_use" +4: "or_and_not_not_extra_and_use" has unsupported operation: llvm.call + +1: "or_and_not_not_extra_or_use1" +4: "or_and_not_not_extra_or_use1" has unsupported operation: llvm.call + +1: "or_and_not_not_extra_or_use2" +4: "or_and_not_not_extra_or_use2" has unsupported operation: llvm.call + +1: "or_and_not_not_2_extra_uses" +4: "or_and_not_not_2_extra_uses" has unsupported operation: llvm.call + +4: "or_and_not_not_2_extra_uses" has unsupported operation: llvm.call + +1: "or_and_not_not_wrong_a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_not_not_wrong_b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "and_or_not_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_commute7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_extra_not_use1" +4: "and_or_not_not_extra_not_use1" has unsupported operation: llvm.call + +1: "and_or_not_not_extra_not_use2" +4: "and_or_not_not_extra_not_use2" has unsupported operation: llvm.call + +1: "and_or_not_not_extra_and_use" +4: "and_or_not_not_extra_and_use" has unsupported operation: llvm.call + +1: "and_or_not_not_extra_or_use1" +4: "and_or_not_not_extra_or_use1" has unsupported operation: llvm.call + +1: "and_or_not_not_extra_or_use2" +4: "and_or_not_not_extra_or_use2" has unsupported operation: llvm.call + +1: "and_or_not_not_2_extra_uses" +4: "and_or_not_not_2_extra_uses" has unsupported operation: llvm.call + +4: "and_or_not_not_2_extra_uses" has unsupported operation: llvm.call + +1: "and_or_not_not_wrong_a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_or_not_not_wrong_b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_not_or_or_not_or_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "and_not_or_or_not_or_xor_use1" +4: "and_not_or_or_not_or_xor_use1" has unsupported operation: llvm.call + +1: "and_not_or_or_not_or_xor_use2" +4: "and_not_or_or_not_or_xor_use2" has unsupported operation: llvm.call + +1: "and_not_or_or_not_or_xor_use3" +4: "and_not_or_or_not_or_xor_use3" has unsupported operation: llvm.call + +1: "and_not_or_or_not_or_xor_use4" +4: "and_not_or_or_not_or_xor_use4" has unsupported operation: llvm.call + +1: "and_not_or_or_not_or_xor_use5" +4: "and_not_or_or_not_or_xor_use5" has unsupported operation: llvm.call + +1: "and_not_or_or_not_or_xor_use6" +4: "and_not_or_or_not_or_xor_use6" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "or_not_and_and_not_and_xor_use1" +4: "or_not_and_and_not_and_xor_use1" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor_use2" +4: "or_not_and_and_not_and_xor_use2" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor_use3" +4: "or_not_and_and_not_and_xor_use3" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor_use4" +4: "or_not_and_and_not_and_xor_use4" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor_use5" +4: "or_not_and_and_not_and_xor_use5" has unsupported operation: llvm.call + +1: "or_not_and_and_not_and_xor_use6" +4: "or_not_and_and_not_and_xor_use6" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute1_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute2_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute1_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute2_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_not_or_or_use1" +4: "not_and_and_or_not_or_or_use1" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or_use2" +4: "not_and_and_or_not_or_or_use2" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or_use3" +4: "not_and_and_or_not_or_or_use3" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or_use4" +4: "not_and_and_or_not_or_or_use4" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or_use5" +4: "not_and_and_or_not_or_or_use5" has unsupported operation: llvm.call + +1: "not_and_and_or_not_or_or_use6" +4: "not_and_and_or_not_or_or_use6" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute1_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute2_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute1_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute2_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_commute4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_not_and_and_use1" +4: "not_or_or_and_not_and_and_use1" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and_use2" +4: "not_or_or_and_not_and_and_use2" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and_use3" +4: "not_or_or_and_not_and_and_use3" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and_use4" +4: "not_or_or_and_not_and_and_use4" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and_use5" +4: "not_or_or_and_not_and_and_use5" has unsupported operation: llvm.call + +1: "not_or_or_and_not_and_and_use6" +4: "not_or_or_and_not_and_and_use6" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_commute1_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_commute2_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "not_and_and_or_no_or_use1" +4: "not_and_and_or_no_or_use1" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use2" +4: "not_and_and_or_no_or_use2" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use3" +4: "not_and_and_or_no_or_use3" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use4" +4: "not_and_and_or_no_or_use4" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use5" +4: "not_and_and_or_no_or_use5" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use6" +4: "not_and_and_or_no_or_use6" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use7" +4: "not_and_and_or_no_or_use7" has unsupported operation: llvm.call + +1: "not_and_and_or_no_or_use8" +4: "not_and_and_or_no_or_use8" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_commute1_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_commute2_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "not_or_or_and_no_and_use1" +4: "not_or_or_and_no_and_use1" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use2" +4: "not_or_or_and_no_and_use2" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use3" +4: "not_or_or_and_no_and_use3" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use4" +4: "not_or_or_and_no_and_use4" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use5" +4: "not_or_or_and_no_and_use5" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use6" +4: "not_or_or_and_no_and_use6" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use7" +4: "not_or_or_and_no_and_use7" has unsupported operation: llvm.call + +1: "not_or_or_and_no_and_use8" +4: "not_or_or_and_no_and_use8" has unsupported operation: llvm.call + +1: "and_orn_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_orn_xor_commute1" +"and_orn_xor_commute1" contains vectors which are unsupported + +1: "and_orn_xor_commute2" +4: "and_orn_xor_commute2" has unsupported operation: llvm.call + +1: "and_orn_xor_commute3" +4: "and_orn_xor_commute3" has unsupported operation: llvm.call + +1: "and_orn_xor_commute5" +4: "and_orn_xor_commute5" has unsupported operation: llvm.call + +1: "and_orn_xor_commute6" +4: "and_orn_xor_commute6" has unsupported operation: llvm.call + +4: "and_orn_xor_commute6" has unsupported operation: llvm.call + +1: "and_orn_xor_commute7" +4: "and_orn_xor_commute7" has unsupported operation: llvm.call + +4: "and_orn_xor_commute7" has unsupported operation: llvm.call + +4: "and_orn_xor_commute7" has unsupported operation: llvm.call + +1: "and_orn_xor_commute8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "zext_zext_and_uses" +4: "zext_zext_and_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_and_uses" has unsupported operation: llvm.call + +4: "zext_zext_and_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_and_uses" has unsupported operation: llvm.call + +1: "sext_sext_or_uses" +4: "sext_sext_or_uses" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_or_uses" has unsupported operation: llvm.call + +4: "sext_sext_or_uses" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_or_uses" has unsupported operation: llvm.call + +1: "trunc_trunc_xor_uses" +4: "trunc_trunc_xor_uses" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_trunc_xor_uses" has unsupported operation: llvm.call + +4: "trunc_trunc_xor_uses" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_trunc_xor_uses" has unsupported operation: llvm.call + +1: "and_zext_zext" +4: "and_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "and_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "or_zext_zext" +4: "or_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "or_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "xor_zext_zext" +4: "xor_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "xor_zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_sext_sext" +4: "and_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "and_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "or_sext_sext" +4: "or_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "or_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "xor_sext_sext" +4: "xor_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "xor_sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "and_zext_sext" +4: "and_zext_sext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "and_zext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "and_zext_zext_use1" +4: "and_zext_zext_use1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "and_zext_zext_use1" has unsupported operation: llvm.call + +4: "and_zext_zext_use1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "or_sext_sext_use1" +4: "or_sext_sext_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "or_sext_sext_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "or_sext_sext_use1" has unsupported operation: llvm.call + +1: "PR56294" +4: "PR56294" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "PR56294" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "PR56294" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "PR56294" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "canonicalize_logic_first_or0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.return + +1: "canonicalize_logic_first_or0_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.return + +1: "canonicalize_logic_first_or0_nswnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.return + +1: "canonicalize_logic_first_or_vector0" +"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 + +1: "canonicalize_logic_first_or_vector0_nswnuw" +"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 + +1: "canonicalize_logic_first_or_vector1_nsw" +"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 + +1: "canonicalize_logic_first_or_vector2" +"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 + +1: "canonicalize_logic_first_or_bad_constraints2" +7: "canonicalize_logic_first_or_bad_constraints2" is unchanged by InstCombine + +1: "canonicalize_logic_first_and0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.return + +1: "canonicalize_logic_first_and0_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.return + +1: "canonicalize_logic_first_and0_nswnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.return + +1: "canonicalize_logic_first_and_vector0" +"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 + +1: "canonicalize_logic_first_and_vector0_nswnuw" +"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 + +1: "canonicalize_logic_first_and_vector2" +"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 + +1: "canonicalize_logic_first_and_mult_use1" +4: "canonicalize_logic_first_and_mult_use1" has unsupported operation: llvm.call + +1: "canonicalize_logic_first_and_bad_constraints2" +7: "canonicalize_logic_first_and_bad_constraints2" is unchanged by InstCombine + +1: "canonicalize_logic_first_xor_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "canonicalize_logic_first_xor_0_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "canonicalize_logic_first_xor_0_nswnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "canonicalize_logic_first_xor_vector0" +"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 + +1: "canonicalize_logic_first_xor_vector0_nswnuw" +"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 + +1: "canonicalize_logic_first_xor_vector2" +"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 + +1: "canonicalize_logic_first_xor_bad_constants2" +7: "canonicalize_logic_first_xor_bad_constants2" is unchanged by InstCombine + +1: "canonicalize_logic_first_constexpr" +4: "canonicalize_logic_first_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "canonicalize_logic_first_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "canonicalize_logic_first_constexpr_nuw" +4: "canonicalize_logic_first_constexpr_nuw" has unsupported operation: llvm.mlir.addressof + +4: "canonicalize_logic_first_constexpr_nuw" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test_and_xor_freely_invertable" +4: "test_and_xor_freely_invertable" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_and_xor_freely_invertable_multiuse" +4: "test_and_xor_freely_invertable_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_and_xor_freely_invertable_multiuse" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/and.txt b/SSA/Projects/InstCombine/tests/logs/and.txt new file mode 100644 index 000000000..b0d53d1fd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and.txt @@ -0,0 +1,1132 @@ +1: "use8" +5: "use8" is empty + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "test_with_1" +4: "test_with_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_with_1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_with_3" +4: "test_with_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_with_3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_with_5" +4: "test_with_5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_with_5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_with_neg_5" +4: "test_with_neg_5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_with_neg_5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_with_even" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "test_vec" +4: "test_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_with_neg_even" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "test_with_more_one_use" +4: "test_with_more_one_use" has unsupported operation: llvm.call + +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test3_logical" +4: "test3_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test4_logical" +4: "test4_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "test5" +2: llvm.func +2: llvm.and +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.and +2: llvm.return + +1: "test6_logical" +4: "test6_logical" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.return + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9a" +4: "test9a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11" +4: "test11" has unsupported operation: llvm.store + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12_logical" +4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test13" +4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test13_logical" +4: "test13_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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 + +1: "test15" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "test16" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test18_vec" +4: "test18_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test18a" +4: "test18a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test18a_vec" +4: "test18a_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test19" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "test20" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "test23" +4: "test23" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test23_logical" +4: "test23_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test23vec" +4: "test23vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test24" +4: "test24" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test24_logical" +4: "test24_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25" +4: "test25" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25_logical" +4: "test25_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25vec" +4: "test25vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test27" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.and +2: llvm.add +2: llvm.return + +1: "ashr_lowmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.return + +1: "ashr_lowmask_use" +4: "ashr_lowmask_use" has unsupported operation: llvm.call + +1: "ashr_lowmask_use_splat" +4: "ashr_lowmask_use_splat" has unsupported operation: llvm.store + +1: "ashr_not_lowmask1_use" +4: "ashr_not_lowmask1_use" has unsupported operation: llvm.call + +1: "ashr_not_lowmask2_use" +4: "ashr_not_lowmask2_use" has unsupported operation: llvm.call + +1: "ashr_not_lowmask3_use" +4: "ashr_not_lowmask3_use" has unsupported operation: llvm.call + +1: "test29" +4: "test29" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test30" +4: "test30" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test31" +4: "test31" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_demanded_bits_splat_vec" +"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 + +1: "test32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "test33" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "test33b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "test33vec" +"test33vec" contains vectors which are unsupported + +1: "test33vecb" +"test33vecb" contains vectors which are unsupported + +1: "test34" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.return + +1: "PR24942" +"PR24942" contains vectors which are unsupported + +1: "test35" +4: "test35" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test35_uniform" +4: "test35_uniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test36" +4: "test36" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test36_uniform" +4: "test36_uniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test36_poison" +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test36_poison" has unsupported operation: llvm.mlir.undef + +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test36_poison" has unsupported operation: llvm.mlir.undef + +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test36_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test37" +4: "test37" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test37_uniform" +4: "test37_uniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test37_nonuniform" +4: "test37_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test38" +4: "test38" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test39" +4: "test39" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_add_zext" +4: "lowmask_add_zext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_add_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_add_zext_commute" +4: "lowmask_add_zext_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_add_zext_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_add_zext_wrong_mask" +4: "lowmask_add_zext_wrong_mask" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_add_zext_use1" +4: "lowmask_add_zext_use1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lowmask_add_zext_use1" has unsupported operation: llvm.call + +1: "lowmask_add_zext_use2" +4: "lowmask_add_zext_use2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lowmask_add_zext_use2" has unsupported operation: llvm.call + +1: "lowmask_sub_zext" +4: "lowmask_sub_zext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_sub_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_sub_zext_commute" +4: "lowmask_sub_zext_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_sub_zext_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_mul_zext" +4: "lowmask_mul_zext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_mul_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_xor_zext_commute" +4: "lowmask_xor_zext_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_xor_zext_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lowmask_or_zext_commute" +4: "lowmask_or_zext_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lowmask_or_zext_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test40" +4: "test40" has unsupported operation: builtin.unregistered: llvm.select + +1: "test40vec" +4: "test40vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "test40vec2" +4: "test40vec2" has unsupported operation: builtin.unregistered: llvm.select + +1: "test41" +4: "test41" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test41" has unsupported operation: builtin.unregistered: llvm.br + +1: "test41vec" +4: "test41vec" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test41vec" has unsupported operation: builtin.unregistered: llvm.br + +1: "test41vec2" +4: "test41vec2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test41vec2" has unsupported operation: builtin.unregistered: llvm.br + +1: "test42" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test43" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test44" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test45" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test46" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test47" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "and_orn_cmp_1" +4: "and_orn_cmp_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_orn_cmp_1" has unsupported operation: builtin.unregistered: llvm.icmp + +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.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 + +4: "and_orn_cmp_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_orn_cmp_3" +4: "and_orn_cmp_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_orn_cmp_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_orn_cmp_3_logical" +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.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 + +4: "or_andn_cmp_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "andn_or_cmp_1" +4: "andn_or_cmp_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "andn_or_cmp_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "andn_or_cmp_1_logical" +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.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 + +4: "andn_or_cmp_2" has unsupported operation: builtin.unregistered: llvm.icmp + +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.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 + +4: "andn_or_cmp_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "andn_or_cmp_4" +4: "andn_or_cmp_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "andn_or_cmp_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "andn_or_cmp_4_logical" +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.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 + +1: "lowbitmask_casted_shift_wrong_mask1" +4: "lowbitmask_casted_shift_wrong_mask1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lowbitmask_casted_shift_wrong_mask2" +4: "lowbitmask_casted_shift_wrong_mask2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lowbitmask_casted_shift_use1" +4: "lowbitmask_casted_shift_use1" has unsupported operation: llvm.call + +4: "lowbitmask_casted_shift_use1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lowbitmask_casted_shift_use2" +4: "lowbitmask_casted_shift_use2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "lowbitmask_casted_shift_use2" has unsupported operation: llvm.call + +1: "lowbitmask_casted_shift_vec_splat" +4: "lowbitmask_casted_shift_vec_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lowmask_sext_in_reg" +4: "lowmask_sext_in_reg" has unsupported operation: llvm.call + +1: "lowmask_not_sext_in_reg" +4: "lowmask_not_sext_in_reg" has unsupported operation: llvm.call + +1: "not_lowmask_sext_in_reg" +4: "not_lowmask_sext_in_reg" has unsupported operation: llvm.call + +1: "not_lowmask_sext_in_reg2" +4: "not_lowmask_sext_in_reg2" has unsupported operation: llvm.call + +1: "lowmask_sext_in_reg_splat" +4: "lowmask_sext_in_reg_splat" has unsupported operation: llvm.store + +1: "lowmask_add" +4: "lowmask_add" has unsupported operation: llvm.call + +1: "lowmask_add_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.return + +1: "lowmask_add_2_uses" +4: "lowmask_add_2_uses" has unsupported operation: llvm.call + +1: "lowmask_add_2_splat" +4: "lowmask_add_2_splat" has unsupported operation: llvm.store + +1: "not_lowmask_add" +4: "not_lowmask_add" has unsupported operation: llvm.call + +1: "not_lowmask_add2" +4: "not_lowmask_add2" has unsupported operation: llvm.call + +1: "lowmask_add_splat" +4: "lowmask_add_splat" has unsupported operation: llvm.store + +1: "lowmask_add_splat_poison" +4: "lowmask_add_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lowmask_add_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "lowmask_add_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lowmask_add_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lowmask_add_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "lowmask_add_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lowmask_add_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lowmask_add_splat_poison" has unsupported operation: llvm.store + +1: "lowmask_add_vec" +4: "lowmask_add_vec" has unsupported operation: llvm.store + +1: "flip_masked_bit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.return + +1: "flip_masked_bit_uniform" +"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 + +4: "flip_masked_bit_poison" has unsupported operation: llvm.mlir.undef + +4: "flip_masked_bit_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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 + +1: "ashr_not_bitwidth_mask" +7: "ashr_not_bitwidth_mask" is unchanged by InstCombine + +1: "lshr_bitwidth_mask" +7: "lshr_bitwidth_mask" is unchanged by InstCombine + +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 + +4: "signbit_splat_mask_use2" has unsupported operation: llvm.call + +1: "not_signbit_splat_mask1" +4: "not_signbit_splat_mask1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_signbit_splat_mask2" +4: "not_signbit_splat_mask2" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "not_ashr_bitwidth_mask_use2" has unsupported operation: builtin.unregistered: llvm.sext + +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 +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "not_lshr_bitwidth_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.xor +2: llvm.and +2: llvm.return + +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 + +4: "invert_signbit_splat_mask_use2" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "invert_signbit_splat_mask_use3" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "not_invert_signbit_splat_mask1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "not_invert_signbit_splat_mask1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_invert_signbit_splat_mask2" +4: "not_invert_signbit_splat_mask2" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +1: "shl_lshr_pow2_const_case1_non_uniform_vec_negative" +7: "shl_lshr_pow2_const_case1_non_uniform_vec_negative" is unchanged by InstCombine + +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 + +4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "shl_lshr_pow2_const_case1_poison3_vec" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "shl_lshr_pow2_const_negative_overflow2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "shl_lshr_pow2_const_negative_oneuse" +4: "shl_lshr_pow2_const_negative_oneuse" has unsupported operation: llvm.call + +1: "shl_lshr_pow2_const_negative_nopow2_1" +7: "shl_lshr_pow2_const_negative_nopow2_1" is unchanged by InstCombine + +1: "shl_lshr_pow2_const_negative_nopow2_2" +7: "shl_lshr_pow2_const_negative_nopow2_2" is unchanged by InstCombine + +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 + +1: "lshr_lshr_pow2_const_negative_nopow2_1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "lshr_lshr_pow2_const_negative_nopow2_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "lshr_lshr_pow2_const_negative_overflow" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.and +2: llvm.return + +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 +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "lshr_shl_pow2_const_negative_oneuse" +4: "lshr_shl_pow2_const_negative_oneuse" has unsupported operation: llvm.call + +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 + +1: "lshr_shl_pow2_const_case1_non_uniform_vec_negative" +7: "lshr_shl_pow2_const_case1_non_uniform_vec_negative" is unchanged by InstCombine + +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 + +4: "lshr_shl_pow2_const_case1_poison2_vec" has unsupported operation: llvm.mlir.undef + +4: "lshr_shl_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_pow2_const_case1_poison2_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shl_pow2_const_case1_poison3_vec" +4: "lshr_shl_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_shl_pow2_const_case1_poison3_vec" has unsupported operation: llvm.mlir.undef + +4: "lshr_shl_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_pow2_const_case1_poison3_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "negate_lowbitmask_commute" has unsupported operation: llvm.mlir.undef + +4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_lowbitmask_commute" has unsupported operation: llvm.mlir.undef + +4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_lowbitmask_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_and_or_constexpr_infloop" +4: "test_and_or_constexpr_infloop" has unsupported operation: llvm.mlir.addressof + +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 + +1: "and_zext_commuted" +4: "and_zext_commuted" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_zext_multiuse" +4: "and_zext_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "and_zext_multiuse" has unsupported operation: llvm.call + +1: "and_zext_vec" +4: "and_zext_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_zext_eq_even" +4: "and_zext_eq_even" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "and_zext_eq_even" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "and_zext_eq_even_commuted" +4: "and_zext_eq_even_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "and_zext_eq_even_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "and_zext_eq_odd" +4: "and_zext_eq_odd" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_zext_eq_odd" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_zext_eq_odd_commuted" +4: "and_zext_eq_odd_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_zext_eq_odd_commuted" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_zext_eq_zero" +4: "and_zext_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_zext_eq_zero" has unsupported operation: builtin.unregistered: llvm.zext + +1: "canonicalize_and_add_power2_or_zero" +4: "canonicalize_and_add_power2_or_zero" has unsupported operation: llvm.call + +1: "canonicalize_and_sub_power2_or_zero" +4: "canonicalize_and_sub_power2_or_zero" has unsupported operation: llvm.call + +1: "canonicalize_and_add_power2_or_zero_commuted1" +4: "canonicalize_and_add_power2_or_zero_commuted1" has unsupported operation: llvm.call + +1: "canonicalize_and_add_power2_or_zero_commuted2" +4: "canonicalize_and_add_power2_or_zero_commuted2" has unsupported operation: llvm.call + +1: "canonicalize_and_add_power2_or_zero_commuted3" +4: "canonicalize_and_add_power2_or_zero_commuted3" has unsupported operation: llvm.call + +1: "canonicalize_and_sub_power2_or_zero_commuted_nofold" +4: "canonicalize_and_sub_power2_or_zero_commuted_nofold" has unsupported operation: llvm.call + +1: "canonicalize_and_add_non_power2_or_zero_nofold" +7: "canonicalize_and_add_non_power2_or_zero_nofold" is unchanged by InstCombine + +1: "canonicalize_and_add_power2_or_zero_multiuse_nofold" +4: "canonicalize_and_add_power2_or_zero_multiuse_nofold" has unsupported operation: llvm.call + +4: "canonicalize_and_add_power2_or_zero_multiuse_nofold" has unsupported operation: llvm.call + +1: "canonicalize_and_sub_power2_or_zero_multiuse_nofold" +4: "canonicalize_and_sub_power2_or_zero_multiuse_nofold" has unsupported operation: llvm.call + +4: "canonicalize_and_sub_power2_or_zero_multiuse_nofold" has unsupported operation: llvm.call + +1: "add_constant_equal_with_the_top_bit_of_demandedbits_pass" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +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 + +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 + +1: "add_constant_equal_with_the_top_bit_of_demandedbits_fail2" +7: "add_constant_equal_with_the_top_bit_of_demandedbits_fail2" is unchanged by InstCombine + +1: "add_constant_equal_with_the_top_bit_of_demandedbits_insertpt" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.or +2: llvm.and +2: llvm.return + +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 new file mode 100644 index 000000000..a0331beec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/and2.txt @@ -0,0 +1,142 @@ +1: "test2" +2: llvm.func +2: llvm.and +2: llvm.and +2: llvm.return + +1: "test2_logical" +4: "test2_logical" has unsupported operation: builtin.unregistered: llvm.select + +1: "test3" +2: llvm.func +2: llvm.and +2: llvm.and +2: llvm.return + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test8_logical" +4: "test8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test8vec" +4: "test8vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.return + +1: "test9vec" +"test9vec" contains vectors which are unsupported + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.add +2: llvm.return + +1: "and1_shl1_is_cmp_eq_0" +4: "and1_shl1_is_cmp_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and1_shl1_is_cmp_eq_0" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and1_shl1_is_cmp_eq_0_multiuse" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.return + +1: "and1_shl1_is_cmp_eq_0_vec" +4: "and1_shl1_is_cmp_eq_0_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and1_shl1_is_cmp_eq_0_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and1_shl1_is_cmp_eq_0_vec_poison" +4: "and1_shl1_is_cmp_eq_0_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and1_shl1_is_cmp_eq_0_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and1_lshr1_is_cmp_eq_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "and1_lshr1_is_cmp_eq_0_multiuse" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.return + +1: "and1_lshr1_is_cmp_eq_0_vec" +"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 + +4: "and1_lshr1_is_cmp_eq_0_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "and1_lshr1_is_cmp_eq_0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and1_lshr1_is_cmp_eq_0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.and +2: llvm.mul +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.and +2: llvm.mul +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.and +2: llvm.mul +2: llvm.return + +1: "test14" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.and +2: llvm.mul +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/annotation-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/annotation-intrinsic.txt new file mode 100644 index 000000000..97cb70bca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/annotation-intrinsic.txt @@ -0,0 +1,9 @@ +1: "annotated" +4: "annotated" has unsupported operation: llvm.mlir.undef + +4: "annotated" has unsupported operation: llvm.mlir.undef + +4: "annotated" has unsupported operation: llvm.load + +4: "annotated" has unsupported operation: builtin.unregistered: llvm.intr.annotation + diff --git a/SSA/Projects/InstCombine/tests/logs/annotations.txt b/SSA/Projects/InstCombine/tests/logs/annotations.txt new file mode 100644 index 000000000..9dcd98710 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/annotations.txt @@ -0,0 +1,88 @@ +1: "fold_to_new_instruction" +4: "fold_to_new_instruction" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_to_new_instruction2" +4: "fold_to_new_instruction2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "do_not_add_annotation_to_existing_instr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + +1: "copy_1_byte" +4: "copy_1_byte" has unsupported operation: llvm.load + +4: "copy_1_byte" has unsupported operation: llvm.store + +4: "copy_1_byte" has unsupported operation: llvm.return + +1: "memcpy" +5: "memcpy" is empty + +1: "libcallcopy_1_byte" +4: "libcallcopy_1_byte" has unsupported operation: llvm.load + +4: "libcallcopy_1_byte" has unsupported operation: llvm.store + +4: "libcallcopy_1_byte" has unsupported operation: llvm.return + +1: "__memcpy_chk" +5: "__memcpy_chk" is empty + +1: "libcallcopy_1_byte_chk" +4: "libcallcopy_1_byte_chk" has unsupported operation: llvm.load + +4: "libcallcopy_1_byte_chk" has unsupported operation: llvm.store + +4: "libcallcopy_1_byte_chk" has unsupported operation: llvm.return + +1: "move_1_byte" +4: "move_1_byte" has unsupported operation: llvm.load + +4: "move_1_byte" has unsupported operation: llvm.store + +4: "move_1_byte" has unsupported operation: llvm.return + +1: "memmove" +5: "memmove" is empty + +1: "libcallmove_1_byte" +4: "libcallmove_1_byte" has unsupported operation: llvm.load + +4: "libcallmove_1_byte" has unsupported operation: llvm.store + +4: "libcallmove_1_byte" has unsupported operation: llvm.return + +1: "__memmove_chk" +5: "__memmove_chk" is empty + +1: "libcallmove_1_byte_chk" +4: "libcallmove_1_byte_chk" has unsupported operation: llvm.load + +4: "libcallmove_1_byte_chk" has unsupported operation: llvm.store + +4: "libcallmove_1_byte_chk" has unsupported operation: llvm.return + +1: "set_1_byte" +4: "set_1_byte" has unsupported operation: llvm.store + +4: "set_1_byte" has unsupported operation: llvm.return + +1: "memset" +5: "memset" is empty + +1: "libcall_set_1_byte" +4: "libcall_set_1_byte" has unsupported operation: llvm.store + +4: "libcall_set_1_byte" has unsupported operation: llvm.return + +1: "__memset_chk" +5: "__memset_chk" is empty + +1: "libcall_set_1_byte_chk" +4: "libcall_set_1_byte_chk" has unsupported operation: llvm.store + +4: "libcall_set_1_byte_chk" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-add.txt b/SSA/Projects/InstCombine/tests/logs/apint-add.txt new file mode 100644 index 000000000..62180765b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-add.txt @@ -0,0 +1,91 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test3vec" +"test3vec" contains vectors which are unsupported + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.return + +1: "sext" +4: "sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_vec" +4: "sext_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_multiuse" +4: "sext_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_multiuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_multiuse" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.ashr +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-and-compare.txt b/SSA/Projects/InstCombine/tests/logs/apint-and-compare.txt new file mode 100644 index 000000000..bc5f037ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-and-compare.txt @@ -0,0 +1,6 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-and-or-and.txt b/SSA/Projects/InstCombine/tests/logs/apint-and-or-and.txt new file mode 100644 index 000000000..cdd359360 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-and-or-and.txt @@ -0,0 +1,42 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.or +2: llvm.and +2: llvm.return + +1: "or_test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-and-xor-merge.txt b/SSA/Projects/InstCombine/tests/logs/apint-and-xor-merge.txt new file mode 100644 index 000000000..e62c9f901 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-and-xor-merge.txt @@ -0,0 +1,14 @@ +1: "test1" +2: llvm.func +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-and.txt b/SSA/Projects/InstCombine/tests/logs/apint-and.txt new file mode 100644 index 000000000..ae415ae33 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-and.txt @@ -0,0 +1,68 @@ +1: "test0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.return + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation: llvm.store + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.return + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.return + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12" +4: "test12" has unsupported operation: llvm.store + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-call-cast-target.txt b/SSA/Projects/InstCombine/tests/logs/apint-call-cast-target.txt new file mode 100644 index 000000000..df587469e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-call-cast-target.txt @@ -0,0 +1,18 @@ +1: "main2" +7: "main2" is unchanged by InstCombine + +1: "ctime2" +7: "ctime2" is unchanged by InstCombine + +1: "ctime" +4: "ctime" has unsupported operation: llvm.call + +4: "ctime" has unsupported operation: llvm.inttoptr + +1: "main" +4: "main" has unsupported operation: llvm.mlir.zero + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-cast-and-cast.txt b/SSA/Projects/InstCombine/tests/logs/apint-cast-and-cast.txt new file mode 100644 index 000000000..977148ed6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-cast-and-cast.txt @@ -0,0 +1,6 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-cast-cast-to-and.txt b/SSA/Projects/InstCombine/tests/logs/apint-cast-cast-to-and.txt new file mode 100644 index 000000000..ab3aae746 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-cast-cast-to-and.txt @@ -0,0 +1,5 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-cast.txt b/SSA/Projects/InstCombine/tests/logs/apint-cast.txt new file mode 100644 index 000000000..9cbad1e08 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-cast.txt @@ -0,0 +1,10 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-div1.txt b/SSA/Projects/InstCombine/tests/logs/apint-div1.txt new file mode 100644 index 000000000..741d69fa8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-div1.txt @@ -0,0 +1,9 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.udiv + +1: "test2" +4: "test2" has unsupported operation after optimization: llvm.udiv + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-div2.txt b/SSA/Projects/InstCombine/tests/logs/apint-div2.txt new file mode 100644 index 000000000..741d69fa8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-div2.txt @@ -0,0 +1,9 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.udiv + +1: "test2" +4: "test2" has unsupported operation after optimization: llvm.udiv + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt b/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt new file mode 100644 index 000000000..4fd70ad41 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-mul1.txt @@ -0,0 +1,12 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.return + +1: "test2" +"test2" contains vectors which are unsupported + +1: "test3" +"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 new file mode 100644 index 000000000..da0e9eeee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-mul2.txt @@ -0,0 +1,14 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.mul +2: llvm.return + +1: "test2" +"test2" contains vectors which are unsupported + +1: "test3" +"test3" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-not.txt b/SSA/Projects/InstCombine/tests/logs/apint-not.txt new file mode 100644 index 000000000..b6badd4ab --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-not.txt @@ -0,0 +1,10 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-or.txt b/SSA/Projects/InstCombine/tests/logs/apint-or.txt new file mode 100644 index 000000000..ff0b94b4c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-or.txt @@ -0,0 +1,40 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt b/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt new file mode 100644 index 000000000..5a46b048d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-rem1.txt @@ -0,0 +1,17 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.urem +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.urem +2: llvm.return + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt b/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt new file mode 100644 index 000000000..5a46b048d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-rem2.txt @@ -0,0 +1,17 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.urem +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.urem +2: llvm.return + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-select.txt b/SSA/Projects/InstCombine/tests/logs/apint-select.txt new file mode 100644 index 000000000..fd4c35313 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-select.txt @@ -0,0 +1,37 @@ +1: "zext" +4: "zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext" +4: "sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "not_zext" +4: "not_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_sext" +4: "not_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_vec" +4: "zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_vec" +4: "sext_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "not_zext_vec" +4: "not_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_sext_vec" +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 + +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-simplify.txt b/SSA/Projects/InstCombine/tests/logs/apint-shift-simplify.txt new file mode 100644 index 000000000..67bf39d75 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-shift-simplify.txt @@ -0,0 +1,21 @@ +1: "test0" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "test1" +2: llvm.func +2: llvm.lshr +2: llvm.lshr +2: llvm.or +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-shift.txt b/SSA/Projects/InstCombine/tests/logs/apint-shift.txt new file mode 100644 index 000000000..ec1028774 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-shift.txt @@ -0,0 +1,242 @@ +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.mul +2: llvm.return + +1: "test6a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.shl +2: llvm.return + +1: "use" +5: "use" is empty + +1: "test6a_negative_oneuse" +4: "test6a_negative_oneuse" has unsupported operation: llvm.call + +1: "test6a_vec" +"test6a_vec" contains vectors which are unsupported + +1: "test7" +4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "lshr_lshr_splat_vec" +"lshr_lshr_splat_vec" contains vectors which are unsupported + +1: "multiuse_lshr_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.mul +2: llvm.return + +1: "multiuse_lshr_lshr_splat" +"multiuse_lshr_lshr_splat" contains vectors which are unsupported + +1: "shl_shl_splat_vec" +"shl_shl_splat_vec" contains vectors which are unsupported + +1: "multiuse_shl_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.mul +2: llvm.return + +1: "multiuse_shl_shl_splat" +"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 + +1: "eq_lshr_shl_splat_vec" +"eq_lshr_shl_splat_vec" contains vectors which are unsupported + +1: "lshr_shl_splat_vec" +"lshr_shl_splat_vec" contains vectors which are unsupported + +1: "shl_lshr_splat_vec" +4: "shl_lshr_splat_vec" has unsupported operation: llvm.udiv + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "test12_splat_vec" +"test12_splat_vec" contains vectors which are unsupported + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "test14" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "test14a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.select + +1: "test15a" +4: "test15a" has unsupported operation: builtin.unregistered: llvm.select + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test16vec" +4: "test16vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test16vec_nonuniform" +4: "test16vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test16vec_undef" +4: "test16vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test16vec_undef" has unsupported operation: llvm.mlir.undef + +4: "test16vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test16vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test16vec_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test17vec" +4: "test17vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test18" +4: "test18" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test19vec" +4: "test19vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test19a" +4: "test19a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test19a_vec" +4: "test19a_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test20" +4: "test20" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test21" +4: "test21" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test22" +4: "test22" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test23" +4: "test23" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_eq_amt_multi_use" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.add +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 + +1: "lshr_shl_eq_amt_multi_use" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.mul +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 + +1: "test25" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "test26" +4: "test26" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +1: "ossfuzz_9880" +4: "ossfuzz_9880" has unsupported operation after optimization: llvm.alloca + +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/apint-shl-trunc.txt b/SSA/Projects/InstCombine/tests/logs/apint-shl-trunc.txt new file mode 100644 index 000000000..12d278778 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-shl-trunc.txt @@ -0,0 +1,9 @@ +1: "test0" +4: "test0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test0vec" +4: "test0vec" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-sub.txt b/SSA/Projects/InstCombine/tests/logs/apint-sub.txt new file mode 100644 index 000000000..beb96dd82 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-sub.txt @@ -0,0 +1,110 @@ +1: "test1" +2: llvm.func +2: llvm.sub +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.sub +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "test14" +4: "test14" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +1: "test16" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sub +2: llvm.return + +1: "test17" +7: "test17" is unchanged by InstCombine + +1: "test18" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "test19" +2: llvm.func +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "test20" +4: "test20" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test21" +4: "test21" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-xor1.txt b/SSA/Projects/InstCombine/tests/logs/apint-xor1.txt new file mode 100644 index 000000000..d1d492c04 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-xor1.txt @@ -0,0 +1,49 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.xor +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/apint-xor2.txt b/SSA/Projects/InstCombine/tests/logs/apint-xor2.txt new file mode 100644 index 000000000..d1d492c04 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/apint-xor2.txt @@ -0,0 +1,49 @@ +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.xor +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/array.txt b/SSA/Projects/InstCombine/tests/logs/array.txt new file mode 100644 index 000000000..406743879 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/array.txt @@ -0,0 +1,153 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +1: "test_add_res_moreoneuse" +4: "test_add_res_moreoneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_add_res_moreoneuse" has unsupported operation: llvm.getelementptr + +4: "test_add_res_moreoneuse" has unsupported operation: llvm.store + +1: "test_addop_nonsw_flag" +4: "test_addop_nonsw_flag" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_addop_nonsw_flag" has unsupported operation: llvm.getelementptr + +4: "test_addop_nonsw_flag" has unsupported operation: llvm.store + +4: "test_addop_nonsw_flag" has unsupported operation: llvm.return + +1: "test_add_op2_not_constant" +4: "test_add_op2_not_constant" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_add_op2_not_constant" has unsupported operation: llvm.getelementptr + +4: "test_add_op2_not_constant" has unsupported operation: llvm.store + +4: "test_add_op2_not_constant" has unsupported operation: llvm.return + +1: "test_zext_nneg" +4: "test_zext_nneg" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_zext_nneg" has unsupported operation: llvm.getelementptr + +4: "test_zext_nneg" has unsupported operation: llvm.getelementptr + +4: "test_zext_nneg" has unsupported operation: llvm.store + +4: "test_zext_nneg" has unsupported operation: llvm.return + +1: "test_zext_missing_nneg" +4: "test_zext_missing_nneg" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_zext_missing_nneg" has unsupported operation: llvm.getelementptr + +4: "test_zext_missing_nneg" has unsupported operation: llvm.store + +4: "test_zext_missing_nneg" has unsupported operation: llvm.return + +1: "gep_inbounds_add_nsw_nonneg" +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_add_nsw_nonneg" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_add_nsw_not_nonneg1" +4: "gep_inbounds_add_nsw_not_nonneg1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_nsw_not_nonneg1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_nsw_not_nonneg1" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_add_nsw_not_nonneg1" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_add_nsw_not_nonneg2" +4: "gep_inbounds_add_nsw_not_nonneg2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_nsw_not_nonneg2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_nsw_not_nonneg2" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_add_nsw_not_nonneg2" has unsupported operation: llvm.getelementptr + +1: "gep_not_inbounds_add_nsw_nonneg" +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: llvm.getelementptr + +4: "gep_not_inbounds_add_nsw_nonneg" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_add_not_nsw_nonneg" +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_add_not_nsw_nonneg" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_sext_add_nonneg" +4: "gep_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.zext + +4: "gep_inbounds_sext_add_nonneg" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_sext_add_nonneg" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_sext_add_not_nonneg_1" +4: "gep_inbounds_sext_add_not_nonneg_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_inbounds_sext_add_not_nonneg_1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_inbounds_sext_add_not_nonneg_1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "gep_inbounds_sext_add_not_nonneg_1" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_sext_add_not_nonneg_1" has unsupported operation: llvm.getelementptr + +1: "gep_inbounds_sext_add_not_nonneg_2" +4: "gep_inbounds_sext_add_not_nonneg_2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "gep_inbounds_sext_add_not_nonneg_2" has unsupported operation: llvm.getelementptr + +4: "gep_inbounds_sext_add_not_nonneg_2" has unsupported operation: llvm.getelementptr + +1: "gep_not_inbounds_sext_add_nonneg" +4: "gep_not_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "gep_not_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "gep_not_inbounds_sext_add_nonneg" has unsupported operation: builtin.unregistered: llvm.zext + +4: "gep_not_inbounds_sext_add_nonneg" has unsupported operation: llvm.getelementptr + +4: "gep_not_inbounds_sext_add_nonneg" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt b/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt new file mode 100644 index 000000000..7f179cae4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ashr-demand.txt @@ -0,0 +1,28 @@ +1: "srem2_ashr_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.ashr +2: llvm.and +2: llvm.return + +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 + +1: "srem2_ashr_mask_vector_nonconstant" +"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 + +1: "ashr_can_be_lshr_2" +4: "ashr_can_be_lshr_2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "ashr_can_be_lshr_2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-icmp-minmax-idiom-break.txt b/SSA/Projects/InstCombine/tests/logs/ashr-icmp-minmax-idiom-break.txt new file mode 100644 index 000000000..caaada24a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ashr-icmp-minmax-idiom-break.txt @@ -0,0 +1,3 @@ +1: "dont_break_minmax_i64" +4: "dont_break_minmax_i64" has unsupported operation: builtin.unregistered: llvm.intr.smin + diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt b/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt new file mode 100644 index 000000000..a5d65d862 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ashr-lshr.txt @@ -0,0 +1,402 @@ +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 + +1: "ashr_lshr_splat_vec2" +"ashr_lshr_splat_vec2" contains vectors which are unsupported + +1: "ashr_lshr_splat_vec3" +"ashr_lshr_splat_vec3" contains vectors which are unsupported + +1: "ashr_lshr_splat_vec4" +"ashr_lshr_splat_vec4" contains vectors which are unsupported + +1: "ashr_lshr_nonsplat_vec" +"ashr_lshr_nonsplat_vec" contains vectors which are unsupported + +1: "ashr_lshr_nonsplat_vec2" +"ashr_lshr_nonsplat_vec2" contains vectors which are unsupported + +1: "ashr_lshr_nonsplat_vec3" +"ashr_lshr_nonsplat_vec3" contains vectors which are unsupported + +1: "ashr_lshr_nonsplat_vec4" +"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 + +1: "ashr_lshr_inv_nonsplat_vec" +"ashr_lshr_inv_nonsplat_vec" contains vectors which are unsupported + +1: "ashr_lshr_vec_poison" +"ashr_lshr_vec_poison" contains vectors which are unsupported + +1: "ashr_lshr_vec_poison2" +"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 + +4: "lshr_sub_nsw" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_sub_wrong_amount" +7: "lshr_sub_wrong_amount" is unchanged by InstCombine + +1: "lshr_sub" +7: "lshr_sub" is unchanged by InstCombine + +1: "lshr_sub_nsw_extra_use" +4: "lshr_sub_nsw_extra_use" has unsupported operation: llvm.store + +1: "lshr_sub_nsw_splat" +4: "lshr_sub_nsw_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_sub_nsw_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_sub_nsw_splat_poison" +4: "lshr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_sub_nsw_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_sub_nsw" +4: "ashr_sub_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_sub_nsw" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashr_sub_wrong_amount" +7: "ashr_sub_wrong_amount" is unchanged by InstCombine + +1: "ashr_sub" +7: "ashr_sub" is unchanged by InstCombine + +1: "ashr_sub_nsw_extra_use" +4: "ashr_sub_nsw_extra_use" has unsupported operation: llvm.store + +1: "ashr_sub_nsw_splat" +4: "ashr_sub_nsw_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_sub_nsw_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashr_sub_nsw_splat_poison" +4: "ashr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_sub_nsw_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "ashr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_sub_nsw_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_known_pos_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.ashr +2: llvm.return + +1: "ashr_known_pos_exact_vec" +"ashr_known_pos_exact_vec" contains vectors which are unsupported + +1: "lshr_mul_times_3_div_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_times_3_div_2_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_times_3_div_2_no_flags" +7: "lshr_mul_times_3_div_2_no_flags" is unchanged by InstCombine + +1: "mul_times_3_div_2_multiuse_lshr" +4: "mul_times_3_div_2_multiuse_lshr" has unsupported operation: llvm.call + +1: "lshr_mul_times_3_div_2_exact_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_times_5_div_4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_times_5_div_4_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_times_5_div_4_no_flags" +7: "lshr_mul_times_5_div_4_no_flags" is unchanged by InstCombine + +1: "mul_times_5_div_4_multiuse_lshr" +4: "mul_times_5_div_4_multiuse_lshr" has unsupported operation: llvm.call + +1: "lshr_mul_times_5_div_4_exact_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "ashr_mul_times_3_div_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "ashr_mul_times_3_div_2_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "ashr_mul_times_3_div_2_no_flags" +7: "ashr_mul_times_3_div_2_no_flags" is unchanged by InstCombine + +1: "ashr_mul_times_3_div_2_no_nsw" +7: "ashr_mul_times_3_div_2_no_nsw" is unchanged by InstCombine + +1: "mul_times_3_div_2_multiuse_ashr" +4: "mul_times_3_div_2_multiuse_ashr" has unsupported operation: llvm.call + +1: "ashr_mul_times_3_div_2_exact_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "ashr_mul_times_5_div_4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "ashr_mul_times_5_div_4_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "ashr_mul_times_5_div_4_no_flags" +7: "ashr_mul_times_5_div_4_no_flags" is unchanged by InstCombine + +1: "mul_times_5_div_4_multiuse_ashr" +4: "mul_times_5_div_4_multiuse_ashr" has unsupported operation: llvm.call + +1: "ashr_mul_times_5_div_4_exact_2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.ashr +2: llvm.return + +1: "lsb_mask_sign_zext" +4: "lsb_mask_sign_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lsb_mask_sign_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lsb_mask_sign_zext_commuted" +4: "lsb_mask_sign_zext_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lsb_mask_sign_zext_commuted" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lsb_mask_sign_zext_wrong_cst1" +7: "lsb_mask_sign_zext_wrong_cst1" is unchanged by InstCombine + +1: "lsb_mask_sign_zext_wrong_cst2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "lsb_mask_sign_zext_wrong_cst3" +7: "lsb_mask_sign_zext_wrong_cst3" is unchanged by InstCombine + +1: "lsb_mask_sign_zext_multiuse" +4: "lsb_mask_sign_zext_multiuse" has unsupported operation: llvm.call + +1: "lsb_mask_sign_sext" +4: "lsb_mask_sign_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lsb_mask_sign_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lsb_mask_sign_sext_commuted" +4: "lsb_mask_sign_sext_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lsb_mask_sign_sext_commuted" has unsupported operation: builtin.unregistered: llvm.sext + +1: "lsb_mask_sign_sext_wrong_cst1" +7: "lsb_mask_sign_sext_wrong_cst1" is unchanged by InstCombine + +1: "lsb_mask_sign_sext_wrong_cst2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.and +2: llvm.ashr +2: llvm.return + +1: "lsb_mask_sign_sext_wrong_cst3" +7: "lsb_mask_sign_sext_wrong_cst3" is unchanged by InstCombine + +1: "lsb_mask_sign_sext_multiuse" +4: "lsb_mask_sign_sext_multiuse" has unsupported operation: llvm.call + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/ashr-or-mul-abs.txt b/SSA/Projects/InstCombine/tests/logs/ashr-or-mul-abs.txt new file mode 100644 index 000000000..daf20d79f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ashr-or-mul-abs.txt @@ -0,0 +1,27 @@ +1: "ashr_or_mul_to_abs" +4: "ashr_or_mul_to_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs2" +4: "ashr_or_mul_to_abs2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs3" +4: "ashr_or_mul_to_abs3" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs_vec" +4: "ashr_or_mul_to_abs_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs_vec2" +4: "ashr_or_mul_to_abs_vec2" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs_vec3_poison" +4: "ashr_or_mul_to_abs_vec3_poison" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "ashr_or_mul_to_abs_neg" +7: "ashr_or_mul_to_abs_neg" is unchanged by InstCombine + +1: "ashr_or_mul_to_abs_neg2" +7: "ashr_or_mul_to_abs_neg2" is unchanged by InstCombine + +1: "ashr_or_mul_to_abs_neg3" +7: "ashr_or_mul_to_abs_neg3" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/assoc-cast-assoc.txt b/SSA/Projects/InstCombine/tests/logs/assoc-cast-assoc.txt new file mode 100644 index 000000000..48ca41c5f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assoc-cast-assoc.txt @@ -0,0 +1,21 @@ +1: "XorZextXor" +4: "XorZextXor" has unsupported operation: builtin.unregistered: llvm.zext + +1: "XorZextXorVec" +4: "XorZextXorVec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "OrZextOr" +4: "OrZextOr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "OrZextOrVec" +4: "OrZextOrVec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "AndZextAnd" +4: "AndZextAnd" has unsupported operation: builtin.unregistered: llvm.zext + +1: "AndZextAndVec" +4: "AndZextAndVec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_nneg" +4: "zext_nneg" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/assume-align.txt b/SSA/Projects/InstCombine/tests/logs/assume-align.txt new file mode 100644 index 000000000..5646d2b72 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-align.txt @@ -0,0 +1,86 @@ +1: "f1" +4: "f1" has unsupported operation: llvm.getelementptr + +4: "f1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "f1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "f1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f1" has unsupported operation: llvm.store + +4: "f1" has unsupported operation: builtin.unregistered: llvm.br + +4: "f1" has unsupported operation: builtin.unregistered: llvm.br + +4: "f1" has unsupported operation: llvm.return + +1: "f2" +4: "f2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "f2" has unsupported operation: llvm.getelementptr + +4: "f2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "f2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f2" has unsupported operation: llvm.store + +4: "f2" has unsupported operation: builtin.unregistered: llvm.br + +4: "f2" has unsupported operation: llvm.store + +4: "f2" has unsupported operation: builtin.unregistered: llvm.br + +4: "f2" has unsupported operation: llvm.return + +1: "f3" +4: "f3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "f3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "f3" has unsupported operation: llvm.call + +4: "f3" has unsupported operation: llvm.return + +1: "g" +5: "g" is empty + +1: "assume_align_zero" +4: "assume_align_zero" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "assume_align_zero" has unsupported operation: llvm.load + +1: "assume_align_non_pow2" +4: "assume_align_non_pow2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "assume_align_non_pow2" has unsupported operation: llvm.load + +1: "fold_assume_align_pow2_of_loaded_pointer_into_align_metadata" +4: "fold_assume_align_pow2_of_loaded_pointer_into_align_metadata" has unsupported operation: llvm.load + +4: "fold_assume_align_pow2_of_loaded_pointer_into_align_metadata" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "dont_fold_assume_align_pow2_of_loaded_pointer_into_align_metadata_due_to_call" +4: "dont_fold_assume_align_pow2_of_loaded_pointer_into_align_metadata_due_to_call" has unsupported operation: llvm.load + +4: "dont_fold_assume_align_pow2_of_loaded_pointer_into_align_metadata_due_to_call" has unsupported operation: llvm.call + +4: "dont_fold_assume_align_pow2_of_loaded_pointer_into_align_metadata_due_to_call" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "dont_fold_assume_align_non_pow2_of_loaded_pointer_into_align_metadata" +4: "dont_fold_assume_align_non_pow2_of_loaded_pointer_into_align_metadata" has unsupported operation: llvm.load + +4: "dont_fold_assume_align_non_pow2_of_loaded_pointer_into_align_metadata" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "dont_fold_assume_align_zero_of_loaded_pointer_into_align_metadata" +4: "dont_fold_assume_align_zero_of_loaded_pointer_into_align_metadata" has unsupported operation: llvm.load + +4: "dont_fold_assume_align_zero_of_loaded_pointer_into_align_metadata" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt b/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt new file mode 100644 index 000000000..3845ec7bf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-icmp-null-select.txt @@ -0,0 +1,26 @@ +1: "example" +4: "example" has unsupported operation after optimization: llvm.mlir.zero + +4: "example" has unsupported operation after optimization: llvm.load + +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 + +1: "example2" +4: "example2" has unsupported operation: llvm.mlir.zero + +4: "example2" has unsupported operation: llvm.load + +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-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/assume-inseltpoison.txt new file mode 100644 index 000000000..d3a895186 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-inseltpoison.txt @@ -0,0 +1,11 @@ +1: "PR40940" +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/assume-loop-align.txt b/SSA/Projects/InstCombine/tests/logs/assume-loop-align.txt new file mode 100644 index 000000000..f5a3676ec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-loop-align.txt @@ -0,0 +1,31 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "foo" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/assume-redundant.txt b/SSA/Projects/InstCombine/tests/logs/assume-redundant.txt new file mode 100644 index 000000000..85ce9779e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-redundant.txt @@ -0,0 +1,48 @@ +1: "_Z3fooR1s" +4: "_Z3fooR1s" has unsupported operation: llvm.load + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z3fooR1s" has unsupported operation: llvm.getelementptr + +4: "_Z3fooR1s" has unsupported operation: llvm.load + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "_Z3fooR1s" has unsupported operation: llvm.store + +4: "_Z3fooR1s" has unsupported operation: llvm.getelementptr + +4: "_Z3fooR1s" has unsupported operation: llvm.load + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "_Z3fooR1s" has unsupported operation: llvm.store + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_Z3fooR1s" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z3fooR1s" has unsupported operation: llvm.return + +1: "get" +5: "get" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/assume-separate_storage.txt b/SSA/Projects/InstCombine/tests/logs/assume-separate_storage.txt new file mode 100644 index 000000000..95cef39d4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume-separate_storage.txt @@ -0,0 +1,13 @@ +1: "simple_folding" +4: "simple_folding" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "simple_folding" has unsupported operation: llvm.return + +1: "folds_removed_operands" +4: "folds_removed_operands" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "handles_globals" +4: "handles_globals" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "handles_globals" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/assume.txt b/SSA/Projects/InstCombine/tests/logs/assume.txt new file mode 100644 index 000000000..dd9aad940 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume.txt @@ -0,0 +1,402 @@ +1: "foo1" +4: "foo1" has unsupported operation: llvm.load + +4: "foo1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "foo1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "foo2" +4: "foo2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "foo2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "foo2" has unsupported operation: llvm.load + +1: "simple" +4: "simple" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "simple" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "can1" +4: "can1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "can1_logical" +4: "can1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "can2" +4: "can2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "can2_logical" +4: "can2_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "can2_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "bar1" +4: "bar1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bar1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "bar2" +4: "bar2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bar2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "bar3" +4: "bar3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "bar3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bar3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "bar3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "known_bits_recursion_via_assumes" +4: "known_bits_recursion_via_assumes" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "known_bits_recursion_via_assumes" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "known_bits_recursion_via_assumes" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "known_bits_recursion_via_assumes" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "icmp1" +4: "icmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp2" +4: "icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "assume_not" +4: "assume_not" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "escape" +5: "escape" is empty + +1: "bundle1" +4: "bundle1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "bundle1" has unsupported operation: llvm.load + +1: "bundle2" +4: "bundle2" has unsupported operation: llvm.load + +1: "nonnull1" +4: "nonnull1" has unsupported operation: llvm.load + +4: "nonnull1" has unsupported operation: llvm.call + +1: "nonnull2" +4: "nonnull2" has unsupported operation: llvm.load + +4: "nonnull2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "nonnull3" +4: "nonnull3" has unsupported operation: llvm.mlir.zero + +4: "nonnull3" has unsupported operation: llvm.load + +4: "nonnull3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nonnull3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "nonnull3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonnull4" +4: "nonnull4" has unsupported operation: llvm.mlir.zero + +4: "nonnull4" has unsupported operation: llvm.load + +4: "nonnull4" has unsupported operation: llvm.call + +4: "nonnull4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull4" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "nonnull5" +4: "nonnull5" has unsupported operation: llvm.mlir.zero + +4: "nonnull5" has unsupported operation: llvm.load + +4: "nonnull5" has unsupported operation: llvm.call + +4: "nonnull5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull5" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "assumption_conflicts_with_known_bits" +4: "assumption_conflicts_with_known_bits" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "assumption_conflicts_with_known_bits" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "assumption_conflicts_with_known_bits" has unsupported operation: llvm.store + +1: "debug_interference" +4: "debug_interference" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "debug_interference" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "debug_interference" has unsupported operation: llvm.store + +4: "debug_interference" has unsupported operation: llvm.return + +1: "PR40940" +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR40940" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "nonnull3A" +4: "nonnull3A" has unsupported operation: llvm.mlir.zero + +4: "nonnull3A" has unsupported operation: llvm.load + +4: "nonnull3A" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nonnull3A" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull3A" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "nonnull3A" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonnull3B" +4: "nonnull3B" has unsupported operation: llvm.mlir.zero + +4: "nonnull3B" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nonnull3B" has unsupported operation: llvm.load + +4: "nonnull3B" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull3B" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "tmp1" +5: "tmp1" is empty + +1: "nonnull3C" +4: "nonnull3C" has unsupported operation: llvm.mlir.zero + +4: "nonnull3C" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nonnull3C" has unsupported operation: llvm.load + +4: "nonnull3C" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull3C" has unsupported operation: llvm.call + +4: "nonnull3C" has unsupported operation: builtin.unregistered: llvm.br + +1: "nonnull3D" +4: "nonnull3D" has unsupported operation: llvm.mlir.zero + +4: "nonnull3D" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nonnull3D" has unsupported operation: llvm.load + +4: "nonnull3D" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nonnull3D" has unsupported operation: llvm.call + +4: "nonnull3D" has unsupported operation: builtin.unregistered: llvm.br + +1: "always_true_assumption" +4: "always_true_assumption" has unsupported operation: llvm.return + +1: "PR31809" +4: "PR31809" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR31809" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR31809" has unsupported operation: llvm.store + +1: "conflicting_assumptions" +4: "conflicting_assumptions" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "conflicting_assumptions" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "conflicting_assumptions" has unsupported operation: llvm.store + +1: "PR36270" +4: "PR36270" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "unreachable_assume" +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.br + +4: "unreachable_assume" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "unreachable_assume_logical" +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "unreachable_assume_logical" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "unreachable_assumes_and_store" +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.br + +4: "unreachable_assumes_and_store" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "unreachable_assumes_and_store_logical" +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.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 + +4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +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.intr.assume + +4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "unreachable_assumes_and_store_logical" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "canonicalize_assume" +4: "canonicalize_assume" has unsupported operation: llvm.getelementptr + +4: "canonicalize_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "canonicalize_assume" has unsupported operation: llvm.return + +1: "assume_makes_and_known_assume_on_arg" +4: "assume_makes_and_known_assume_on_arg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "assume_makes_and_known_assume_on_arg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "assume_makes_and_known_assume_on_arg" has unsupported operation: llvm.store + +4: "assume_makes_and_known_assume_on_arg" has unsupported operation: llvm.return + +1: "assume_makes_and_known_assume_on_mul" +4: "assume_makes_and_known_assume_on_mul" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "assume_makes_and_known_assume_on_mul" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "assume_makes_and_known_assume_on_mul" has unsupported operation: llvm.store + +4: "assume_makes_and_known_assume_on_mul" has unsupported operation: llvm.return + +1: "assume_makes_and_known_assume_on_bitwise" +4: "assume_makes_and_known_assume_on_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "assume_makes_and_known_assume_on_bitwise" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "assume_makes_and_known_assume_on_bitwise" has unsupported operation: llvm.store + +4: "assume_makes_and_known_assume_on_bitwise" has unsupported operation: llvm.return + +1: "range_16_31_top28" +4: "range_16_31_top28" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_31_top28" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_16_31_top29" +4: "range_16_31_top29" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_31_top29" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_16_30_top28" +4: "range_16_30_top28" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_30_top28" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_16_32_top28" +4: "range_16_32_top28" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_32_top28" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_16_32_top27" +4: "range_16_32_top27" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_32_top27" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_16_32_top26" +4: "range_16_32_top26" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_16_32_top26" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_15_31_top28" +4: "range_15_31_top28" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_15_31_top28" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "range_15_31_top27" +4: "range_15_31_top27" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "range_15_31_top27" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/assume2.txt b/SSA/Projects/InstCombine/tests/logs/assume2.txt new file mode 100644 index 000000000..20f79318d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/assume2.txt @@ -0,0 +1,55 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test9" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test10" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test11" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/assume_inevitable.txt b/SSA/Projects/InstCombine/tests/logs/assume_inevitable.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/atomic.txt b/SSA/Projects/InstCombine/tests/logs/atomic.txt new file mode 100644 index 000000000..3208397e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/atomic.txt @@ -0,0 +1,220 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.load + +1: "test2" +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.load + +1: "test3" +4: "test3" has unsupported operation: llvm.load + +1: "test4" +4: "test4" has unsupported operation: llvm.load + +1: "test5" +4: "test5" has unsupported operation: llvm.load + +1: "test6" +4: "test6" has unsupported operation: llvm.load + +1: "test7" +4: "test7" has unsupported operation: llvm.load + +4: "test7" has unsupported operation: llvm.load + +1: "test8" +4: "test8" has unsupported operation: llvm.load + +4: "test8" has unsupported operation: llvm.load + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test9" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test9" has unsupported operation: llvm.store + +1: "test9_no_null_opt" +4: "test9_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test9_no_null_opt" has unsupported operation: llvm.load + +1: "test10" +4: "test10" has unsupported operation: llvm.mlir.zero + +4: "test10" has unsupported operation: llvm.load + +1: "test10_no_null_opt" +4: "test10_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test10_no_null_opt" has unsupported operation: llvm.load + +1: "test11" +4: "test11" has unsupported operation: llvm.mlir.zero + +4: "test11" has unsupported operation: llvm.load + +1: "test11_no_null_opt" +4: "test11_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test11_no_null_opt" has unsupported operation: llvm.load + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test12" has unsupported operation: llvm.mlir.zero + +4: "test12" has unsupported operation: llvm.store + +1: "test12_no_null_opt" +4: "test12_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test12_no_null_opt" has unsupported operation: llvm.store + +1: "test13" +4: "test13" has unsupported operation: llvm.mlir.zero + +4: "test13" has unsupported operation: llvm.store + +1: "test13_no_null_opt" +4: "test13_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test13_no_null_opt" has unsupported operation: llvm.store + +1: "test14" +4: "test14" has unsupported operation: llvm.mlir.zero + +4: "test14" has unsupported operation: llvm.store + +1: "test14_no_null_opt" +4: "test14_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "test14_no_null_opt" has unsupported operation: llvm.store + +1: "test15" +4: "test15" has unsupported operation: llvm.mlir.addressof + +4: "test15" has unsupported operation: llvm.mlir.addressof + +4: "test15" has unsupported operation: llvm.load + +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" +4: "test17" has unsupported operation: llvm.mlir.addressof + +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" +4: "test22" has unsupported operation: llvm.mlir.addressof + +4: "test22" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test22" has unsupported operation: builtin.unregistered: llvm.br + +4: "test22" has unsupported operation: builtin.unregistered: llvm.br + +4: "test22" has unsupported operation: llvm.store + +1: "test23" +4: "test23" has unsupported operation: llvm.mlir.addressof + +4: "test23" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test23" has unsupported operation: llvm.store + +4: "test23" has unsupported operation: builtin.unregistered: llvm.br + +4: "test23" has unsupported operation: llvm.store + +4: "test23" has unsupported operation: builtin.unregistered: llvm.br + +1: "clobber" +5: "clobber" is empty + +1: "test18" +4: "test18" has unsupported operation: llvm.load + +4: "test18" has unsupported operation: llvm.call + +4: "test18" has unsupported operation: llvm.store + +1: "test19" +4: "test19" has unsupported operation: llvm.load + +4: "test19" has unsupported operation: llvm.call + +4: "test19" has unsupported operation: llvm.store + +1: "test20" +4: "test20" has unsupported operation: llvm.store + +1: "test21" +4: "test21" has unsupported operation: llvm.store + +1: "pr27490a" +4: "pr27490a" has unsupported operation: llvm.load + +4: "pr27490a" has unsupported operation: llvm.store + +4: "pr27490a" has unsupported operation: llvm.return + +1: "pr27490b" +4: "pr27490b" has unsupported operation: llvm.load + +4: "pr27490b" has unsupported operation: llvm.store + +4: "pr27490b" has unsupported operation: llvm.return + +1: "no_atomic_vector_load" +4: "no_atomic_vector_load" has unsupported operation: llvm.load + +4: "no_atomic_vector_load" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "no_atomic_vector_store" +4: "no_atomic_vector_store" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "no_atomic_vector_store" has unsupported operation: llvm.store + +4: "no_atomic_vector_store" has unsupported operation: llvm.return + +1: "atomic_load_from_constant_global" +4: "atomic_load_from_constant_global" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atomic_load_from_constant_global" has unsupported operation after optimization: llvm.load + +1: "atomic_load_from_constant_global_bitcast" +4: "atomic_load_from_constant_global_bitcast" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atomic_load_from_constant_global_bitcast" has unsupported operation after optimization: llvm.load + +1: "atomic_load_from_non_constant_global" +4: "atomic_load_from_non_constant_global" has unsupported operation: llvm.mlir.addressof + +4: "atomic_load_from_non_constant_global" has unsupported operation: llvm.load + +4: "atomic_load_from_non_constant_global" has unsupported operation: llvm.return + +1: "volatile_load_from_constant_global" +4: "volatile_load_from_constant_global" has unsupported operation: llvm.mlir.addressof + +4: "volatile_load_from_constant_global" has unsupported operation: llvm.load + +4: "volatile_load_from_constant_global" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/atomicrmw.txt b/SSA/Projects/InstCombine/tests/logs/atomicrmw.txt new file mode 100644 index 000000000..93e45afff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/atomicrmw.txt @@ -0,0 +1,290 @@ +1: "atomic_add_zero" +4: "atomic_add_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_or_zero" +4: "atomic_or_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_sub_zero" +4: "atomic_sub_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_and_allones" +4: "atomic_and_allones" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_umin_uint_max" +4: "atomic_umin_uint_max" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_umax_zero" +4: "atomic_umax_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_min_smax_char" +4: "atomic_min_smax_char" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_max_smin_char" +4: "atomic_max_smin_char" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fsub_zero" +4: "atomic_fsub_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fadd_zero" +4: "atomic_fadd_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fsub_canon" +4: "atomic_fsub_canon" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fadd_canon" +4: "atomic_fadd_canon" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_sub_zero_volatile" +4: "atomic_sub_zero_volatile" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_syncscope" +4: "atomic_syncscope" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_seq_cst" +4: "atomic_seq_cst" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_add_non_zero" +4: "atomic_add_non_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_xor_zero" +4: "atomic_xor_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_release" +4: "atomic_release" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_acq_rel" +4: "atomic_acq_rel" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_or_allones" +4: "sat_or_allones" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_and_zero" +4: "sat_and_zero" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_umin_uint_min" +4: "sat_umin_uint_min" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_umax_uint_max" +4: "sat_umax_uint_max" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_min_smin_char" +4: "sat_min_smin_char" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_max_smax_char" +4: "sat_max_smax_char" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fadd_nan" +4: "sat_fadd_nan" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fsub_nan" +4: "sat_fsub_nan" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fsub_nan_unused" +4: "sat_fsub_nan_unused" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "sat_fsub_nan_unused" has unsupported operation: llvm.return + +1: "xchg_unused_monotonic" +4: "xchg_unused_monotonic" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_monotonic" has unsupported operation: llvm.return + +1: "xchg_unused_release" +4: "xchg_unused_release" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_release" has unsupported operation: llvm.return + +1: "xchg_unused_under_aligned" +4: "xchg_unused_under_aligned" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_under_aligned" has unsupported operation: llvm.return + +1: "xchg_unused_over_aligned" +4: "xchg_unused_over_aligned" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_over_aligned" has unsupported operation: llvm.return + +1: "xchg_unused_seq_cst" +4: "xchg_unused_seq_cst" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_seq_cst" has unsupported operation: llvm.return + +1: "xchg_unused_volatile" +4: "xchg_unused_volatile" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_volatile" has unsupported operation: llvm.return + +1: "sat_or_allones_unused" +4: "sat_or_allones_unused" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "sat_or_allones_unused" has unsupported operation: llvm.return + +1: "undef_operand_unused" +4: "undef_operand_unused" has unsupported operation: llvm.mlir.undef + +4: "undef_operand_unused" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "undef_operand_unused" has unsupported operation: llvm.return + +1: "undef_operand_used" +4: "undef_operand_used" has unsupported operation: llvm.mlir.undef + +4: "undef_operand_used" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fmax_inf" +4: "sat_fmax_inf" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "no_sat_fmax_inf" +4: "no_sat_fmax_inf" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fmin_inf" +4: "sat_fmin_inf" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "no_sat_fmin_inf" +4: "no_sat_fmin_inf" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_add_zero_preserve_md" +4: "atomic_add_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_or_zero_preserve_md" +4: "atomic_or_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_sub_zero_preserve_md" +4: "atomic_sub_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_and_allones_preserve_md" +4: "atomic_and_allones_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_umin_uint_max_preserve_md" +4: "atomic_umin_uint_max_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_umax_zero_preserve_md" +4: "atomic_umax_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_min_smax_char_preserve_md" +4: "atomic_min_smax_char_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_max_smin_char_preserve_md" +4: "atomic_max_smin_char_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fsub_zero_preserve_md" +4: "atomic_fsub_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fadd_zero_preserve_md" +4: "atomic_fadd_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fsub_canon_preserve_md" +4: "atomic_fsub_canon_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_fadd_canon_preserve_md" +4: "atomic_fadd_canon_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_sub_zero_volatile_preserve_md" +4: "atomic_sub_zero_volatile_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_syncscope_preserve_md" +4: "atomic_syncscope_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_seq_cst_preserve_md" +4: "atomic_seq_cst_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_add_non_zero_preserve_md" +4: "atomic_add_non_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_xor_zero_preserve_md" +4: "atomic_xor_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_release_preserve_md" +4: "atomic_release_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "atomic_acq_rel_preserve_md" +4: "atomic_acq_rel_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_or_allones_preserve_md" +4: "sat_or_allones_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_and_zero_preserve_md" +4: "sat_and_zero_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_umin_uint_min_preserve_md" +4: "sat_umin_uint_min_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_umax_uint_max_preserve_md" +4: "sat_umax_uint_max_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_min_smin_char_preserve_md" +4: "sat_min_smin_char_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_max_smax_char_preserve_md" +4: "sat_max_smax_char_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fadd_nan_preserve_md" +4: "sat_fadd_nan_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fsub_nan_preserve_md" +4: "sat_fsub_nan_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fsub_nan_unused_preserve_md" +4: "sat_fsub_nan_unused_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "sat_fsub_nan_unused_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_monotonic_preserve_md" +4: "xchg_unused_monotonic_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_monotonic_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_release_preserve_md" +4: "xchg_unused_release_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_release_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_under_aligned_preserve_md" +4: "xchg_unused_under_aligned_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_under_aligned_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_over_aligned_preserve_md" +4: "xchg_unused_over_aligned_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_over_aligned_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_seq_cst_preserve_md" +4: "xchg_unused_seq_cst_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_seq_cst_preserve_md" has unsupported operation: llvm.return + +1: "xchg_unused_volatile_preserve_md" +4: "xchg_unused_volatile_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "xchg_unused_volatile_preserve_md" has unsupported operation: llvm.return + +1: "sat_or_allones_unused_preserve_md" +4: "sat_or_allones_unused_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "sat_or_allones_unused_preserve_md" has unsupported operation: llvm.return + +1: "undef_operand_unused_preserve_md" +4: "undef_operand_unused_preserve_md" has unsupported operation: llvm.mlir.undef + +4: "undef_operand_unused_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "undef_operand_unused_preserve_md" has unsupported operation: llvm.return + +1: "undef_operand_used_preserve_md" +4: "undef_operand_used_preserve_md" has unsupported operation: llvm.mlir.undef + +4: "undef_operand_used_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fmax_inf_preserve_md" +4: "sat_fmax_inf_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "no_sat_fmax_inf_preserve_md" +4: "no_sat_fmax_inf_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "sat_fmin_inf_preserve_md" +4: "sat_fmin_inf_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +1: "no_sat_fmin_inf_preserve_md" +4: "no_sat_fmin_inf_preserve_md" has unsupported operation: builtin.unregistered: llvm.atomicrmw + diff --git a/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt b/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt new file mode 100644 index 000000000..76e59435f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/avg-lsb.txt @@ -0,0 +1,15 @@ +1: "avg_lsb" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "avg_lsb_mismatch" +7: "avg_lsb_mismatch" is unchanged by InstCombine + +1: "avg_lsb_vector" +"avg_lsb_vector" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/badmalloc.txt b/SSA/Projects/InstCombine/tests/logs/badmalloc.txt new file mode 100644 index 000000000..0680905d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/badmalloc.txt @@ -0,0 +1,30 @@ +1: "malloc" +5: "malloc" is empty + +1: "free" +5: "free" is empty + +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.mlir.zero + +4: "test1" has unsupported operation after optimization: llvm.call + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation after optimization: llvm.store + +4: "test1" has unsupported operation after optimization: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.zero + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/bcmp-1.txt b/SSA/Projects/InstCombine/tests/logs/bcmp-1.txt new file mode 100644 index 000000000..76d047f39 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bcmp-1.txt @@ -0,0 +1,77 @@ +1: "bcmp" +5: "bcmp" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: llvm.call + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.call + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.alloca + +4: "test_simplify7" has unsupported operation: llvm.alloca + +4: "test_simplify7" has unsupported operation: llvm.store + +4: "test_simplify7" has unsupported operation: llvm.store + +4: "test_simplify7" has unsupported operation: llvm.call + +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.alloca + +4: "test_simplify8" has unsupported operation: llvm.alloca + +4: "test_simplify8" has unsupported operation: llvm.store + +4: "test_simplify8" has unsupported operation: llvm.store + +4: "test_simplify8" has unsupported operation: llvm.call + +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: llvm.alloca + +4: "test_simplify9" has unsupported operation: llvm.alloca + +4: "test_simplify9" has unsupported operation: llvm.store + +4: "test_simplify9" has unsupported operation: llvm.store + +4: "test_simplify9" has unsupported operation: llvm.call + +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: llvm.call + +4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/bcopy.txt b/SSA/Projects/InstCombine/tests/logs/bcopy.txt new file mode 100644 index 000000000..60dcddee1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bcopy.txt @@ -0,0 +1,13 @@ +1: "bcopy" +5: "bcopy" is empty + +1: "bcopy_memmove" +4: "bcopy_memmove" has unsupported operation: llvm.call + +4: "bcopy_memmove" has unsupported operation: llvm.return + +1: "bcopy_memmove2" +4: "bcopy_memmove2" has unsupported operation: llvm.call + +4: "bcopy_memmove2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt b/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt new file mode 100644 index 000000000..6235eb076 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-and-shifts.txt @@ -0,0 +1,416 @@ +1: "shl_and_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.and +2: llvm.return + +1: "shl_and_and_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.and +2: llvm.return + +1: "shl_add_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.add +2: llvm.return + +1: "shl_add_add_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.add +2: llvm.add +2: llvm.return + +1: "shl_and_and_fail2" +7: "shl_and_and_fail2" is unchanged by InstCombine + +1: "lshr_and_or" +"lshr_and_or" contains vectors which are unsupported + +1: "lshr_and_or_fail" +7: "lshr_and_or_fail" is unchanged by InstCombine + +1: "shl_and_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "shl_and_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.return + +1: "shl_xor_add_fail" +7: "shl_xor_add_fail" is unchanged by InstCombine + +1: "lshr_or_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.or +2: llvm.and +2: llvm.return + +1: "lshr_or_or_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.or +2: llvm.or +2: llvm.return + +1: "shl_xor_and" +4: "shl_xor_and" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_xor_and" has unsupported operation: llvm.mlir.undef + +4: "shl_xor_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and" has unsupported operation: llvm.mlir.undef + +4: "shl_xor_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_xor_and_fail" +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_xor_and_fail" has unsupported operation: llvm.mlir.undef + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and_fail" has unsupported operation: llvm.mlir.undef + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and_fail" has unsupported operation: llvm.mlir.undef + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_xor_and_fail" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_or_or_no_const" +2: llvm.func +2: llvm.lshr +2: llvm.lshr +2: llvm.or +2: llvm.or +2: llvm.return + +1: "lshr_or_or_no_const_fail" +7: "lshr_or_or_no_const_fail" is unchanged by InstCombine + +1: "shl_xor_xor_no_const" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "shl_xor_and_no_const_fail" +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 + +1: "shl_add_add_no_const" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.add +2: llvm.return + +1: "lshr_add_add_no_const_fail" +7: "lshr_add_add_no_const_fail" is unchanged by InstCombine + +1: "lshr_add_and" +"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 + +4: "lshr_add_or_fail_dif_masks" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_or_fail_dif_masks" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "shl_or_or_fail_bad_mask" +"shl_or_or_fail_bad_mask" contains vectors which are unsupported + +1: "lshr_xor_or_good_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "lshr_xor_or_fail_bad_mask" +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 + +1: "lshr_or_xor_fail_bad_mask" +7: "lshr_or_xor_fail_bad_mask" is unchanged by InstCombine + +1: "shl_xor_xor_good_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "shl_xor_xor_bad_mask_distribute" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "shl_add_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.and +2: llvm.return + +1: "lshr_and_add_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.return + +1: "lshr_add_or_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.add +2: llvm.or +2: llvm.return + +1: "lshr_add_xor_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "lshr_and_add" +"lshr_and_add" contains vectors which are unsupported + +1: "lshr_or_add_fail" +7: "lshr_or_add_fail" is unchanged by InstCombine + +1: "shl_add_and_fail_mismatch_shift" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.add +2: llvm.and +2: llvm.return + +1: "and_ashr_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_ashr_not_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "and_ashr_not_fail_lshr_ashr" +7: "and_ashr_not_fail_lshr_ashr" is unchanged by InstCombine + +1: "and_ashr_not_fail_ashr_lshr" +7: "and_ashr_not_fail_ashr_lshr" is unchanged by InstCombine + +1: "and_ashr_not_fail_invalid_xor_constant" +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 + +1: "and_ashr_not_vec_commuted" +"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 + +1: "and_ashr_not_vec_poison_2" +4: "and_ashr_not_vec_poison_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "or_ashr_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_ashr_not_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_ashr_not_fail_lshr_ashr" +7: "or_ashr_not_fail_lshr_ashr" is unchanged by InstCombine + +1: "or_ashr_not_fail_ashr_lshr" +7: "or_ashr_not_fail_ashr_lshr" is unchanged by InstCombine + +1: "or_ashr_not_fail_invalid_xor_constant" +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 + +1: "or_ashr_not_vec_commuted" +"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 + +1: "or_ashr_not_vec_poison_2" +4: "or_ashr_not_vec_poison_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "xor_ashr_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_ashr_not_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_ashr_not_fail_lshr_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.ashr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_ashr_not_fail_ashr_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.lshr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_ashr_not_fail_invalid_xor_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_ashr_not_vec" +"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 + +1: "xor_ashr_not_vec_poison_1" +"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 + +1: "binop_ashr_not_fail_invalid_binop" +7: "binop_ashr_not_fail_invalid_binop" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/binop-cast.txt b/SSA/Projects/InstCombine/tests/logs/binop-cast.txt new file mode 100644 index 000000000..13c5daf73 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-cast.txt @@ -0,0 +1,124 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "testAdd" +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 + +1: "and_sext_to_sel_constant_vec" +4: "and_sext_to_sel_constant_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_sext_to_sel_swap" +4: "and_sext_to_sel_swap" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "and_not_sext_to_sel_commute" has unsupported operation: llvm.call + +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 + +4: "and_xor_sext_to_sel" has unsupported operation: llvm.call + +1: "and_not_zext_to_sel" +4: "and_not_zext_to_sel" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "or_sext_to_sel_constant_vec" +4: "or_sext_to_sel_constant_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_sext_to_sel_swap" +4: "or_sext_to_sel_swap" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_sext_to_sel_multi_use" +4: "or_sext_to_sel_multi_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "or_sext_to_sel_multi_use" has unsupported operation: llvm.call + +1: "or_sext_to_sel_multi_use_constant_mask" +4: "or_sext_to_sel_multi_use_constant_mask" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +1: "xor_sext_to_sel_constant_vec" +4: "xor_sext_to_sel_constant_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "xor_sext_to_sel_swap" +4: "xor_sext_to_sel_swap" has unsupported operation: builtin.unregistered: llvm.sext + +1: "xor_sext_to_sel_multi_use" +4: "xor_sext_to_sel_multi_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "xor_sext_to_sel_multi_use" has unsupported operation: llvm.call + +1: "xor_sext_to_sel_multi_use_constant_mask" +4: "xor_sext_to_sel_multi_use_constant_mask" has unsupported operation: builtin.unregistered: llvm.sext + +4: "xor_sext_to_sel_multi_use_constant_mask" has unsupported operation: llvm.call + +1: "PR63321" +4: "PR63321" has unsupported operation: llvm.load + +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 + +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 + +1: "and_add_bool_to_select_multi_use" +4: "and_add_bool_to_select_multi_use" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt b/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt new file mode 100644 index 000000000..bff2b8f7f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-itofp.txt @@ -0,0 +1,386 @@ +1: "test_ui_ui_i8_add" +4: "test_ui_ui_i8_add" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_add_fail_overflow" +4: "test_ui_ui_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_ui_ui_i8_add_C" +4: "test_ui_ui_i8_add_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_add_C_fail_no_repr" +4: "test_ui_ui_i8_add_C_fail_no_repr" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i8_add_C_fail_no_repr" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_ui_ui_i8_add_C_fail_overflow" +4: "test_ui_ui_i8_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i8_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i8_add" +4: "test_si_si_i8_add" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i8_add_fail_overflow" +4: "test_si_si_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i8_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_ui_si_i8_add" +4: "test_ui_si_i8_add" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_si_i8_add_overflow" +4: "test_ui_si_i8_add_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_sub_C" +4: "test_ui_ui_i8_sub_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_sub_C_fail_overflow" +4: "test_ui_ui_i8_sub_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i8_sub" +4: "test_si_si_i8_sub" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_si_si_i8_sub_fail_overflow" +4: "test_si_si_i8_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i8_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i8_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test_si_si_i8_sub_C" +4: "test_si_si_i8_sub_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_si_si_i8_sub_C_fail_overflow" +4: "test_si_si_i8_sub_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_si_i8_sub" +4: "test_ui_si_i8_sub" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_ui_si_i8_sub_fail_maybe_sign" +4: "test_ui_si_i8_sub_fail_maybe_sign" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_mul" +4: "test_ui_ui_i8_mul" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_mul_C" +4: "test_ui_ui_i8_mul_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i8_mul_C_fail_overlow" +4: "test_ui_ui_i8_mul_C_fail_overlow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i8_mul_C_fail_overlow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i8_mul" +4: "test_si_si_i8_mul" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i8_mul_fail_maybe_zero" +4: "test_si_si_i8_mul_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i8_mul_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i8_mul_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i8_mul_C_fail_no_repr" +4: "test_si_si_i8_mul_C_fail_no_repr" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i8_mul_C_fail_no_repr" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i8_mul_C_fail_overflow" +4: "test_si_si_i8_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i8_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_ui_si_i8_mul" +4: "test_ui_si_i8_mul" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_si_i8_mul_fail_maybe_zero" +4: "test_ui_si_i8_mul_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_si_i8_mul_fail_signed" +4: "test_ui_si_i8_mul_fail_signed" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_si_i8_mul_fail_signed" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_si_i8_mul_fail_signed" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_ui_ui_i16_add" +4: "test_ui_ui_i16_add" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i16_add_fail_not_promotable" +4: "test_ui_ui_i16_add_fail_not_promotable" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i16_add_fail_not_promotable" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i16_add_fail_not_promotable" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_ui_ui_i16_add_C" +4: "test_ui_ui_i16_add_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i16_add_C_fail_overflow" +4: "test_ui_ui_i16_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i16_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i16_add" +4: "test_si_si_i16_add" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i16_add_fail_no_promotion" +4: "test_si_si_i16_add_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_add_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_add_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i16_add_C_overflow" +4: "test_si_si_i16_add_C_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_add_C_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i16_sub" +4: "test_si_si_i16_sub" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i16_sub_fail_no_promotion" +4: "test_si_si_i16_sub_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i16_sub_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_sub_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test_ui_si_i16_sub" +4: "test_ui_si_i16_sub" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_ui_si_i16_sub_fail_maybe_signed" +4: "test_ui_si_i16_sub_fail_maybe_signed" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_si_i16_sub_fail_maybe_signed" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_si_i16_sub_fail_maybe_signed" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test_ui_ui_i16_mul" +4: "test_ui_ui_i16_mul" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i16_mul_fail_no_promotion" +4: "test_ui_ui_i16_mul_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i16_mul_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i16_mul_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i16_mul" +4: "test_si_si_i16_mul" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i16_mul_fail_overflow" +4: "test_si_si_i16_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i16_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i16_mul_C_fail_overflow" +4: "test_si_si_i16_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i16_mul_C_fail_no_promotion" +4: "test_si_si_i16_mul_C_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i16_mul_C_fail_no_promotion" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_ui_si_i16_mul" +4: "test_ui_si_i16_mul" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i12_add" +4: "test_ui_ui_i12_add" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i12_add_fail_overflow" +4: "test_ui_ui_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_ui_ui_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i12_add" +4: "test_si_si_i12_add" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i12_add_fail_overflow" +4: "test_si_si_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_add_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_si_si_i12_add_C_fail_overflow" +4: "test_si_si_i12_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_add_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_ui_ui_i12_sub" +4: "test_ui_ui_i12_sub" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_ui_ui_i12_sub_fail_overflow" +4: "test_ui_ui_i12_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i12_sub" +4: "test_si_si_i12_sub" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_si_si_i12_sub_fail_overflow" +4: "test_si_si_i12_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_sub_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test_ui_ui_i12_mul" +4: "test_ui_ui_i12_mul" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i12_mul_fail_overflow" +4: "test_ui_ui_i12_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_ui_i12_mul_C" +4: "test_ui_ui_i12_mul_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_si_si_i12_mul" +4: "test_si_si_i12_mul" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "test_si_si_i12_mul_fail_overflow" +4: "test_si_si_i12_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i12_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_mul_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i12_mul_fail_maybe_non_zero" +4: "test_si_si_i12_mul_fail_maybe_non_zero" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test_si_si_i12_mul_fail_maybe_non_zero" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_mul_fail_maybe_non_zero" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_si_si_i12_mul_C" +4: "test_si_si_i12_mul_C" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_si_si_i12_mul_C_fail_overflow" +4: "test_si_si_i12_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_si_si_i12_mul_C_fail_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_ui_si_i12_mul_nsw" +4: "test_ui_si_i12_mul_nsw" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "test_ui_add_with_signed_constant" +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 + +4: "missed_nonzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "missed_nonzero_check_on_constant_for_si_fmul" has unsupported operation: llvm.store + +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 + +4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "missed_nonzero_check_on_constant_for_si_fmul_vec" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +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 + +4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "negzero_check_on_constant_for_si_fmul" has unsupported operation: llvm.store + +1: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: llvm.mlir.undef + +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.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 + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "nonzero_check_on_constant_for_si_fmul_vec_w_poison" has unsupported operation: llvm.store + +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 + +4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "nonzero_check_on_constant_for_si_fmul_nz_vec_w_poison" has unsupported operation: llvm.store + +1: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: llvm.mlir.undef + +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.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 + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "nonzero_check_on_constant_for_si_fmul_negz_vec_w_poison" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt b/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt new file mode 100644 index 000000000..ca77f3082 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-of-displaced-shifts.txt @@ -0,0 +1,204 @@ +1: "shl_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "lshr_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.or +2: llvm.return + +1: "ashr_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.add +2: llvm.ashr +2: llvm.or +2: llvm.return + +1: "shl_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.xor +2: llvm.return + +1: "lshr_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "ashr_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.add +2: llvm.ashr +2: llvm.xor +2: llvm.return + +1: "shl_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "lshr_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "ashr_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.add +2: llvm.ashr +2: llvm.and +2: llvm.return + +1: "shl_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "lshr_add_fail" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.add +2: llvm.return + +1: "ashr_add_fail" +7: "ashr_add_fail" is unchanged by InstCombine + +1: "shl_or_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_or_splat" +"shl_or_splat" contains vectors which are unsupported + +1: "shl_or_non_splat" +"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 + +4: "shl_or_poison_in_add" has unsupported operation: llvm.mlir.undef + +4: "shl_or_poison_in_add" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison_in_add" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_or_poison_in_shift1" +4: "shl_or_poison_in_shift1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_or_poison_in_shift1" has unsupported operation: llvm.mlir.undef + +4: "shl_or_poison_in_shift1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison_in_shift1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_or_poison_in_shift2" +4: "shl_or_poison_in_shift2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_or_poison_in_shift2" has unsupported operation: llvm.mlir.undef + +4: "shl_or_poison_in_shift2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison_in_shift2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "use" +5: "use" is empty + +1: "shl_or_multiuse" +4: "shl_or_multiuse" has unsupported operation: llvm.call + +4: "shl_or_multiuse" has unsupported operation: llvm.call + +4: "shl_or_multiuse" has unsupported operation: llvm.call + +1: "mismatched_shifts" +7: "mismatched_shifts" is unchanged by InstCombine + +1: "mismatched_ops" +7: "mismatched_ops" is unchanged by InstCombine + +1: "add_out_of_range" +7: "add_out_of_range" is unchanged by InstCombine + +1: "shl_or_non_splat_out_of_range" +7: "shl_or_non_splat_out_of_range" is unchanged by InstCombine + +1: "shl_or_with_or_disjoint_instead_of_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_or_with_or_instead_of_add" +7: "shl_or_with_or_instead_of_add" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/binop-phi-operands.txt b/SSA/Projects/InstCombine/tests/logs/binop-phi-operands.txt new file mode 100644 index 000000000..52c7c3b68 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-phi-operands.txt @@ -0,0 +1,2 @@ +3: binop-phi-operands.ll: parsing has failed + 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 new file mode 100644 index 000000000..6a96f93f4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-select-cast-of-select-cond.txt @@ -0,0 +1,72 @@ +1: "add_select_zext" +4: "add_select_zext" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_select_sext" +4: "add_select_sext" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_select_not_zext" +4: "add_select_not_zext" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_select_not_sext" +4: "add_select_not_sext" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_select_sext" +4: "sub_select_sext" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_select_not_zext" +4: "sub_select_not_zext" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_select_not_sext" +4: "sub_select_not_sext" has unsupported operation: builtin.unregistered: llvm.select + +1: "mul_select_zext" +4: "mul_select_zext" has unsupported operation: builtin.unregistered: llvm.select + +1: "mul_select_sext" +4: "mul_select_sext" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "vector_test" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "multiuse_add" +4: "multiuse_add" has unsupported operation: builtin.unregistered: llvm.select + +1: "multiuse_select" +4: "multiuse_select" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_non_const_sides" +4: "select_non_const_sides" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "vectorized_add" +4: "vectorized_add" has unsupported operation: builtin.unregistered: llvm.select + +1: "pr64669" +4: "pr64669" has unsupported operation: llvm.mlir.addressof + +4: "pr64669" has unsupported operation: llvm.getelementptr + +4: "pr64669" has unsupported operation: llvm.mlir.addressof + +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 new file mode 100644 index 000000000..0c2b51619 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/binop-select.txt @@ -0,0 +1,174 @@ +1: "use" +5: "use" is empty + +1: "use_f32" +5: "use_f32" is empty + +1: "use_v2f16" +5: "use_v2f16" is empty + +1: "use_v2i8" +5: "use_v2i8" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.select + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.select + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.select + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.select + +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" +4: "test_sub_deduce_false" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: llvm.mlir.undef + +4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_sub_dont_deduce_with_undef_cond_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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" +4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: llvm.mlir.undef + +4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_sub_dont_deduce_with_poison_cond_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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" +4: "test_sub_deduce_with_undef_val_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.select + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.select + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.select + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.select + +4: "test10" has unsupported operation: llvm.udiv + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.select + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +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 + +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 new file mode 100644 index 000000000..73f39d0f3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bit-checks.txt @@ -0,0 +1,482 @@ +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 + +4: "main2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main2_logical" +4: "main2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main2_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3" +4: "main3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3_logical" +4: "main3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3b" +4: "main3b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3b" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3b_logical" +4: "main3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3b_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3e_like" +4: "main3e_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3e_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3e_like_logical" +4: "main3e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main3c" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3c_logical" +4: "main3c_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3c_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3d" +4: "main3d" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3d" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3d_logical" +4: "main3d_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3d_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3f_like" +4: "main3f_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main3f_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main3f_like_logical" +4: "main3f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4_splat" +4: "main4_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4_logical" +4: "main4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4b" +4: "main4b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4b" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4b_logical" +4: "main4b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4b_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4e_like" +4: "main4e_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4e_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4e_like_logical" +4: "main4e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main4c" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4c_logical" +4: "main4c_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4c_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4d" +4: "main4d" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4d" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4d_logical" +4: "main4d_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4d_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4f_like" +4: "main4f_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main4f_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main4f_like_logical" +4: "main4f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main5_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main5_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main5_like_logical" +4: "main5_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main5e_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main5e_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main5e_like_logical" +4: "main5e_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main5c_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main5c_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main5c_like_logical" +4: "main5c_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main5f_like" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main5f_like" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main5f_like_logical" +4: "main5f_like_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6_logical" +4: "main6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6b" +4: "main6b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6b" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6b_logical" +4: "main6b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6b_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6c" +4: "main6c" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6c_logical" +4: "main6c_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6c_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6d" +4: "main6d" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6d" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main6d_logical" +4: "main6d_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main6d_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7a" +4: "main7a" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7a" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7a_logical" +4: "main7a_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7b" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7b_logical" +4: "main7b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7c" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7c_logical" +4: "main7c_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7d" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7d" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7d_logical" +4: "main7d_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7e" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7e" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7e_logical" +4: "main7e_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7f" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7f_logical" +4: "main7f_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "main7g" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main7g" has unsupported operation: builtin.unregistered: llvm.zext + +1: "main7g_logical" +4: "main7g_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "no_masks_with_logical_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +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.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 + +4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "no_masks_with_logical_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +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.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 new file mode 100644 index 000000000..b26794a2c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bit_ceil.txt @@ -0,0 +1,72 @@ +1: "bit_ceil_32" +4: "bit_ceil_32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_64" +4: "bit_ceil_64" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_32_minus_1" +4: "bit_ceil_32_minus_1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_32_plus_1" +4: "bit_ceil_32_plus_1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_plus_2" +4: "bit_ceil_plus_2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_32_neg" +4: "bit_ceil_32_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_not" +4: "bit_ceil_not" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_commuted_operands" +4: "bit_ceil_commuted_operands" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "bit_ceil_wrong_select_constant" +4: "bit_ceil_wrong_select_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +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" +4: "bit_ceil_32_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +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" +4: "bit_ceil_v4i32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "pr91691" +4: "pr91691" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "pr91691_keep_nsw" +4: "pr91691_keep_nsw" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + diff --git a/SSA/Projects/InstCombine/tests/logs/bit_floor.txt b/SSA/Projects/InstCombine/tests/logs/bit_floor.txt new file mode 100644 index 000000000..6782976f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bit_floor.txt @@ -0,0 +1,64 @@ +1: "bit_floor_32" +4: "bit_floor_32" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "bit_floor_ctlz_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "bit_floor_sub_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "bit_floor_shl_used_twice" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "bit_floor_v4i32" has unsupported operation: builtin.unregistered: llvm.icmp + +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/bitcast-bfloat-half-mixing.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-bfloat-half-mixing.txt new file mode 100644 index 000000000..f24ea1a8e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-bfloat-half-mixing.txt @@ -0,0 +1,30 @@ +1: "F0" +4: "F0" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F0" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "F1" +4: "F1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F1" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "F2" +4: "F2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F2" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "F3" +4: "F3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F3" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "F4" +4: "F4" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F4" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "F5" +4: "F5" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "F5" has unsupported operation: builtin.unregistered: llvm.fptosi + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-bigendian.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-bigendian.txt new file mode 100644 index 000000000..8a6a2f81b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-bigendian.txt @@ -0,0 +1,52 @@ +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test2" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test3" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test4" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test5" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test6" has unsupported operation: llvm.mlir.undef + +4: "test6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test6" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_bitcast_vec_to_vec" +4: "xor_bitcast_vec_to_vec" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "and_bitcast_vec_to_int" +4: "and_bitcast_vec_to_int" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "or_bitcast_int_to_vec" +4: "or_bitcast_int_to_vec" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-bitcast.txt new file mode 100644 index 000000000..46c870212 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-bitcast.txt @@ -0,0 +1,2 @@ +3: bitcast-bitcast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-function.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-function.txt new file mode 100644 index 000000000..1972e442c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-function.txt @@ -0,0 +1,2 @@ +3: bitcast-function.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-inselt-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-inselt-bitcast.txt new file mode 100644 index 000000000..85ad6f805 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-inselt-bitcast.txt @@ -0,0 +1,69 @@ +1: "use" +5: "use" is empty + +1: "insert0_v2i8" +4: "insert0_v2i8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "insert1_v2i8" +4: "insert1_v2i8" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert1_v2i8" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert1_v2i8" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert0_v4i8" +4: "insert0_v4i8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "insert0_v2half" +4: "insert0_v2half" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert0_v2half" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert0_v2half" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert0_v4i16" +4: "insert0_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert0_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert0_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert1_v4i16" +4: "insert1_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert1_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert1_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert3_v4i16" +4: "insert3_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert3_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert3_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert0_v4i32" +4: "insert0_v4i32" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert0_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert0_v4i32" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert0_v2i8_use1" +4: "insert0_v2i8_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert0_v2i8_use1" has unsupported operation: llvm.call + +4: "insert0_v2i8_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert0_v2i8_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert0_v2i8_use2" +4: "insert0_v2i8_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "insert0_v2i8_use2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert0_v2i8_use2" has unsupported operation: llvm.call + +4: "insert0_v2i8_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-inseltpoison.txt new file mode 100644 index 000000000..5c090fe05 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-inseltpoison.txt @@ -0,0 +1,2 @@ +3: bitcast-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-phi-uselistorder.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-phi-uselistorder.txt new file mode 100644 index 000000000..55923af5f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-phi-uselistorder.txt @@ -0,0 +1,11 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-sext-vector.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-sext-vector.txt new file mode 100644 index 000000000..5ab039a36 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-sext-vector.txt @@ -0,0 +1,7 @@ +1: "t" +4: "t" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t" has unsupported operation: builtin.unregistered: llvm.sext + +4: "t" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-store.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-store.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon-inseltpoison.txt new file mode 100644 index 000000000..d7be0c62b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon-inseltpoison.txt @@ -0,0 +1,2 @@ +3: bitcast-vec-canon-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon.txt b/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon.txt new file mode 100644 index 000000000..69d82a6d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast-vec-canon.txt @@ -0,0 +1,2 @@ +3: bitcast-vec-canon.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitcast.txt b/SSA/Projects/InstCombine/tests/logs/bitcast.txt new file mode 100644 index 000000000..1d2ba91ad --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitcast.txt @@ -0,0 +1,2 @@ +3: bitcast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/bitreverse-hang.txt b/SSA/Projects/InstCombine/tests/logs/bitreverse-hang.txt new file mode 100644 index 000000000..185f42694 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitreverse-hang.txt @@ -0,0 +1,15 @@ +1: "fn1" +4: "fn1" has unsupported operation: llvm.mlir.addressof + +4: "fn1" has unsupported operation: llvm.mlir.undef + +4: "fn1" has unsupported operation: llvm.load + +4: "fn1" has unsupported operation: builtin.unregistered: llvm.br + +4: "fn1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fn1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "fn1" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/bitreverse-known-bits.txt b/SSA/Projects/InstCombine/tests/logs/bitreverse-known-bits.txt new file mode 100644 index 000000000..bd70f5a17 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitreverse-known-bits.txt @@ -0,0 +1,20 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "add_bitreverse" +4: "add_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + diff --git a/SSA/Projects/InstCombine/tests/logs/bitreverse.txt b/SSA/Projects/InstCombine/tests/logs/bitreverse.txt new file mode 100644 index 000000000..3cffa16be --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitreverse.txt @@ -0,0 +1,136 @@ +1: "use_i32" +5: "use_i32" is empty + +1: "use_i64" +5: "use_i64" is empty + +1: "rev8" +4: "rev8" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev16" +4: "rev16" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev32" +4: "rev32" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev32_bswap" +4: "rev32_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev64" +4: "rev64" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev8_xor" +4: "rev8_xor" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev8_xor_vector" +4: "rev8_xor_vector" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev8_mul_and_urem" +4: "rev8_mul_and_urem" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rev8_mul_and_urem" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "rev8_mul_and_mul" +4: "rev8_mul_and_mul" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rev8_mul_and_mul" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "rev8_mul_and_lshr" +4: "rev8_mul_and_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rev8_mul_and_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shuf_4bits" +4: "shuf_4bits" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_4bits" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "shuf_load_4bits" +4: "shuf_load_4bits" has unsupported operation: llvm.load + +4: "shuf_load_4bits" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "shuf_bitcast_twice_4bits" +4: "shuf_bitcast_twice_4bits" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "shuf_4bits_not_reverse" +4: "shuf_4bits_not_reverse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_4bits_not_reverse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_4bits_not_reverse" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "use" +5: "use" is empty + +1: "shuf_4bits_extra_use" +4: "shuf_4bits_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_4bits_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_4bits_extra_use" has unsupported operation: llvm.call + +4: "shuf_4bits_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "rev_i1" +4: "rev_i1" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "rev_i2" +4: "rev_i2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rev_i2" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "PR59897" +4: "PR59897" has unsupported operation: builtin.unregistered: llvm.zext + +1: "rev_xor_lhs_rev16" +4: "rev_xor_lhs_rev16" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_and_rhs_rev32" +4: "rev_and_rhs_rev32" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_or_rhs_rev32" +4: "rev_or_rhs_rev32" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_or_rhs_rev64" +4: "rev_or_rhs_rev64" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_xor_rhs_rev64" +4: "rev_xor_rhs_rev64" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_xor_rhs_i32vec" +4: "rev_xor_rhs_i32vec" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_and_rhs_rev64_multiuse1" +4: "rev_and_rhs_rev64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_and_rhs_rev64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_and_rhs_rev64_multiuse2" +4: "rev_and_rhs_rev64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_and_rhs_rev64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_all_operand64" +4: "rev_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bitreverse + +1: "rev_all_operand64_multiuse_both" +4: "rev_all_operand64_multiuse_both" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_all_operand64_multiuse_both" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "rev_all_operand64_multiuse_both" has unsupported operation: llvm.call + +4: "rev_all_operand64_multiuse_both" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/bittest.txt b/SSA/Projects/InstCombine/tests/logs/bittest.txt new file mode 100644 index 000000000..93bbd8b48 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bittest.txt @@ -0,0 +1,18 @@ +1: "_Z12h000007_testv" +4: "_Z12h000007_testv" has unsupported operation: llvm.mlir.addressof + +4: "_Z12h000007_testv" has unsupported operation: llvm.load + +4: "_Z12h000007_testv" has unsupported operation: llvm.store + +4: "_Z12h000007_testv" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z12h000007_testv" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "_Z12h000007_testv" has unsupported operation: llvm.store + +4: "_Z12h000007_testv" has unsupported operation: llvm.return + +1: "abort" +5: "abort" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/bitwiselogic-bitmanip.txt b/SSA/Projects/InstCombine/tests/logs/bitwiselogic-bitmanip.txt new file mode 100644 index 000000000..89a1d7827 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bitwiselogic-bitmanip.txt @@ -0,0 +1,67 @@ +1: "test_or_fshl" +4: "test_or_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_and_fshl" +4: "test_and_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_xor_fshl" +4: "test_xor_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_or_fshr" +4: "test_or_fshr" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "test_or_fshl_cascade" +4: "test_or_fshl_cascade" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_or_bitreverse" +4: "test_or_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "test_or_bitreverse_constant" +4: "test_or_bitreverse_constant" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "test_or_bswap" +4: "test_or_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test_or_bswap_constant" +4: "test_or_bswap_constant" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test_or_fshl_fshr" +4: "test_or_fshl_fshr" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "test_or_fshl_fshr" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "test_or_bitreverse_bswap" +4: "test_or_bitreverse_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "test_or_bitreverse_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test_or_fshl_mismatched_shamt" +4: "test_or_fshl_mismatched_shamt" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "test_or_fshl_mismatched_shamt" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_add_fshl" +4: "test_add_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "test_add_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_or_fshl_multiuse" +4: "test_or_fshl_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "test_or_fshl_multiuse" has unsupported operation: llvm.call + +4: "test_or_fshl_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_or_bitreverse_multiuse" +4: "test_or_bitreverse_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "test_or_bitreverse_multiuse" has unsupported operation: llvm.call + +4: "test_or_bitreverse_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "test_or_fshl_constant" +4: "test_or_fshl_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/branch.txt b/SSA/Projects/InstCombine/tests/logs/branch.txt new file mode 100644 index 000000000..034eb387c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/branch.txt @@ -0,0 +1,91 @@ +1: "use" +5: "use" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pat" +4: "pat" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test01" +4: "test01" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test01" has unsupported operation: builtin.unregistered: llvm.br + +4: "test01" has unsupported operation: builtin.unregistered: llvm.br + +4: "test01" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test01" has unsupported operation: builtin.unregistered: llvm.br + +4: "test01" has unsupported operation: builtin.unregistered: llvm.br + +1: "test02" +4: "test02" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test02" has unsupported operation: builtin.unregistered: llvm.br + +4: "test02" has unsupported operation: builtin.unregistered: llvm.br + +4: "test02" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test02" has unsupported operation: builtin.unregistered: llvm.br + +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 + +1: "dom_true" +4: "dom_true" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "dom_false" +4: "dom_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "dom_true_phi" +4: "dom_true_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "dom_true_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "dom_true_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "dom_true_phi" has unsupported operation: builtin.unregistered: llvm.zext + +1: "same_dest" +4: "same_dest" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "same_dest" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_dom" +4: "not_dom" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "not_dom" has unsupported operation: builtin.unregistered: llvm.br + +4: "not_dom" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/broadcast-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/broadcast-inseltpoison.txt new file mode 100644 index 000000000..9d256a7ef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/broadcast-inseltpoison.txt @@ -0,0 +1,108 @@ +1: "good1" +4: "good1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good2" +4: "good2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good3" +4: "good3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good4" +4: "good4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "good4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good5" +4: "good5" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "good5" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "good5" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "splat_undef1" +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_undef2" +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bad3" +4: "bad3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bad4" +4: "bad4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad4" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "splat_undef3" +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "bad6" +4: "bad6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bad7" +4: "bad7" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/broadcast.txt b/SSA/Projects/InstCombine/tests/logs/broadcast.txt new file mode 100644 index 000000000..b659845e7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/broadcast.txt @@ -0,0 +1,188 @@ +1: "good1" +4: "good1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good2" +4: "good2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good3" +4: "good3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good4" +4: "good4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "good4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "good5" +4: "good5" has unsupported operation: llvm.mlir.undef + +4: "good5" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good5" has unsupported operation: llvm.mlir.undef + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "good5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "good5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "good5" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "good5" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "splat_undef1" +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef1" has unsupported operation: llvm.mlir.undef + +4: "splat_undef1" has unsupported operation: llvm.mlir.undef + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "splat_undef2" +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef2" has unsupported operation: llvm.mlir.undef + +4: "splat_undef2" has unsupported operation: llvm.mlir.undef + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bad3" +4: "bad3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad3" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bad4" +4: "bad4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad4" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "splat_undef3" +4: "splat_undef3" has unsupported operation: llvm.mlir.undef + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_undef3" has unsupported operation: llvm.mlir.undef + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_undef3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "bad6" +4: "bad6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad6" has unsupported operation: llvm.mlir.undef + +4: "bad6" has unsupported operation: llvm.mlir.undef + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad6" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bad7" +4: "bad7" has unsupported operation: llvm.mlir.undef + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bad7" has unsupported operation: llvm.mlir.undef + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bad7" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt b/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt new file mode 100644 index 000000000..d8d1010cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bswap-fold.txt @@ -0,0 +1,332 @@ +1: "test4" +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "lshr8_i32" +4: "lshr8_i32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "lshr16_v2i32" +4: "lshr16_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "lshr24_i32" +4: "lshr24_i32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "lshr12_i32" +4: "lshr12_i32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "lshr8_i32_use" +4: "lshr8_i32_use" has unsupported operation: llvm.store + +4: "lshr8_i32_use" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shl16_i64" +4: "shl16_i64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shl16_v2i64" +4: "shl16_v2i64" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl16_v2i64" has unsupported operation: llvm.mlir.undef + +4: "shl16_v2i64" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl16_v2i64" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl16_v2i64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shl56_i64" +4: "shl56_i64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "shl42_i64" +4: "shl42_i64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shl8_i32_use" +4: "shl8_i32_use" has unsupported operation: llvm.store + +4: "shl8_i32_use" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "swap_shl16_i64" +4: "swap_shl16_i64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "swap_shl16_i64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "variable_lshr_v2i32" +4: "variable_lshr_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "variable_shl_i64" +4: "variable_shl_i64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "variable_shl_i64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "variable_shl_not_masked_enough_i64" +4: "variable_shl_not_masked_enough_i64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test7_vector" +4: "test7_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test8_vector" +4: "test8_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.undef + +1: "bs_and16i" +4: "bs_and16i" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and16" +4: "bs_and16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or16" +4: "bs_or16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor16" +4: "bs_xor16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and32i" +4: "bs_and32i" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and32" +4: "bs_and32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or32" +4: "bs_or32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor32" +4: "bs_xor32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64i" +4: "bs_and64i" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64" +4: "bs_and64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or64" +4: "bs_or64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor64" +4: "bs_xor64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and32vec" +4: "bs_and32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or32vec" +4: "bs_or32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor32vec" +4: "bs_xor32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and32ivec" +4: "bs_and32ivec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or32ivec" +4: "bs_or32ivec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor32ivec" +4: "bs_xor32ivec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64_multiuse1" +4: "bs_and64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64_multiuse2" +4: "bs_and64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64_multiuse3" +4: "bs_and64_multiuse3" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and64_multiuse3" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and64i_multiuse" +4: "bs_and64i_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_lhs_bs16" +4: "bs_and_lhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or_lhs_bs16" +4: "bs_or_lhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor_lhs_bs16" +4: "bs_xor_lhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_bs16" +4: "bs_and_rhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or_rhs_bs16" +4: "bs_or_rhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor_rhs_bs16" +4: "bs_xor_rhs_bs16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_bs32" +4: "bs_and_rhs_bs32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or_rhs_bs32" +4: "bs_or_rhs_bs32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor_rhs_bs32" +4: "bs_xor_rhs_bs32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_bs64" +4: "bs_and_rhs_bs64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or_rhs_bs64" +4: "bs_or_rhs_bs64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor_rhs_bs64" +4: "bs_xor_rhs_bs64" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_i32vec" +4: "bs_and_rhs_i32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_or_rhs_i32vec" +4: "bs_or_rhs_i32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_xor_rhs_i32vec" +4: "bs_xor_rhs_i32vec" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_bs64_multiuse1" +4: "bs_and_rhs_bs64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and_rhs_bs64_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_and_rhs_bs64_multiuse2" +4: "bs_and_rhs_bs64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and_rhs_bs64_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_all_operand64" +4: "bs_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "bs_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "bs_all_operand64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_all_operand64_multiuse_both" +4: "bs_all_operand64_multiuse_both" has unsupported operation: llvm.mlir.addressof + +4: "bs_all_operand64_multiuse_both" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_all_operand64_multiuse_both" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_all_operand64_multiuse_both" has unsupported operation: llvm.call + +4: "bs_all_operand64_multiuse_both" has unsupported operation: llvm.call + +1: "bs_and_constexpr" +4: "bs_and_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "bs_and_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "bs_and_constexpr" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bs_and_constexpr" has unsupported operation: llvm.store + +4: "bs_and_constexpr" has unsupported operation: llvm.return + +1: "bs_and_bs_constexpr" +4: "bs_and_bs_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "bs_and_bs_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "bs_and_bs_constexpr" has unsupported operation: llvm.store + +4: "bs_and_bs_constexpr" has unsupported operation: llvm.return + +1: "bs_active_high8" +4: "bs_active_high8" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_high7" +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 + +1: "bs_active_high_different" +"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 + +1: "bs_active_high_poison" +4: "bs_active_high_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bs_active_high_poison" has unsupported operation: llvm.mlir.undef + +4: "bs_active_high_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bs_active_high_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bs_active_high_poison" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_high8_multiuse" +4: "bs_active_high8_multiuse" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_high7_multiuse" +4: "bs_active_high7_multiuse" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_byte_6h" +4: "bs_active_byte_6h" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_byte_3h" +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 + +1: "bs_active_byte_78h" +4: "bs_active_byte_78h" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_low1" +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 + +1: "bs_active_low_different" +"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 + +1: "bs_active_low_undef" +4: "bs_active_low_undef" has unsupported operation: llvm.mlir.undef + +4: "bs_active_low_undef" has unsupported operation: llvm.mlir.undef + +4: "bs_active_low_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bs_active_low_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bs_active_low_undef" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_low8_multiuse" +4: "bs_active_low8_multiuse" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_low7_multiuse" +4: "bs_active_low7_multiuse" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_byte_4l" +4: "bs_active_byte_4l" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +1: "bs_active_byte_2l" +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 + +1: "bs_active_byte_12l" +4: "bs_active_byte_12l" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "use.i64" +5: "use.i64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/bswap-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/bswap-inseltpoison.txt new file mode 100644 index 000000000..9a82b2592 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bswap-inseltpoison.txt @@ -0,0 +1,39 @@ +1: "shuf_4bytes" +4: "shuf_4bytes" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shuf_load_4bytes" +4: "shuf_load_4bytes" has unsupported operation: llvm.load + +4: "shuf_load_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shuf_bitcast_twice_4bytes" +4: "shuf_bitcast_twice_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "use" +5: "use" is empty + +1: "shuf_4bytes_extra_use" +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_4bytes_extra_use" has unsupported operation: llvm.call + +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_16bytes" +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_2bytes_widening" +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/bswap-known-bits.txt b/SSA/Projects/InstCombine/tests/logs/bswap-known-bits.txt new file mode 100644 index 000000000..54ea97552 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bswap-known-bits.txt @@ -0,0 +1,20 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test4" +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.intr.bswap + +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/bswap.txt b/SSA/Projects/InstCombine/tests/logs/bswap.txt new file mode 100644 index 000000000..a95204f32 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/bswap.txt @@ -0,0 +1,254 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test1_vector" +4: "test1_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test1_trunc" +4: "test1_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test1_trunc_extra_use" +4: "test1_trunc_extra_use" has unsupported operation: llvm.call + +4: "test1_trunc_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test2_vector" +4: "test2_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test2_vector_poison" +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2_vector_poison" has unsupported operation: llvm.mlir.undef + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vector_poison" has unsupported operation: llvm.mlir.undef + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vector_poison" has unsupported operation: llvm.mlir.undef + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vector_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test3_vector" +4: "test3_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test3_vector_poison" +4: "test3_vector_poison" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test4_vector" +4: "test4_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test5_vector" +4: "test5_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test6_vector" +4: "test6_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "extra_use" +5: "extra_use" is empty + +1: "bswap32_and_first" +4: "bswap32_and_first" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bswap32_and_first_extra_use" +4: "bswap32_and_first_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "bswap32_and_first_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bswap32_and_first_extra_use" has unsupported operation: llvm.call + +1: "bswap32_shl_first" +4: "bswap32_shl_first" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bswap32_shl_first_extra_use" +4: "bswap32_shl_first_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "bswap32_shl_first_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "bswap32_shl_first_extra_use" has unsupported operation: llvm.call + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test10" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test10_vector" +4: "test10_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test10_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR39793_bswap_u64_as_u32" +4: "PR39793_bswap_u64_as_u32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u64_as_u32" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u64_as_u32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR39793_bswap_u64_as_u32_trunc" +4: "PR39793_bswap_u64_as_u32_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u64_as_u32_trunc" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u64_as_u32_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR39793_bswap_u64_as_u16" +4: "PR39793_bswap_u64_as_u16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u64_as_u16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u64_as_u16" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR39793_bswap_u64_as_u16_vector" +4: "PR39793_bswap_u64_as_u16_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u64_as_u16_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u64_as_u16_vector" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR39793_bswap_u64_as_u16_trunc" +4: "PR39793_bswap_u64_as_u16_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR39793_bswap_u50_as_u16" +4: "PR39793_bswap_u50_as_u16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u50_as_u16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u50_as_u16" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR39793_bswap_u32_as_u16" +4: "PR39793_bswap_u32_as_u16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR39793_bswap_u32_as_u16" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR39793_bswap_u32_as_u16" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR39793_bswap_u32_as_u16_trunc" +4: "PR39793_bswap_u32_as_u16_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "partial_bswap" +4: "partial_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "partial_bswap_vector" +4: "partial_bswap_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "partial_bitreverse" +4: "partial_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bswap_and_mask_0" +4: "bswap_and_mask_0" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bswap_and_mask_1" +7: "bswap_and_mask_1" is unchanged by InstCombine + +1: "bswap_and_mask_2" +4: "bswap_and_mask_2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "bswap_trunc" +4: "bswap_trunc" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shuf_4bytes" +4: "shuf_4bytes" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shuf_load_4bytes" +4: "shuf_load_4bytes" has unsupported operation: llvm.load + +4: "shuf_load_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "shuf_bitcast_twice_4bytes" +4: "shuf_bitcast_twice_4bytes" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "use" +5: "use" is empty + +1: "shuf_4bytes_extra_use" +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_4bytes_extra_use" has unsupported operation: llvm.call + +4: "shuf_4bytes_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_16bytes" +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_16bytes" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_2bytes_widening" +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_2bytes_widening" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "funnel_unary" +4: "funnel_unary" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "funnel_binary" +4: "funnel_binary" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "funnel_and" +4: "funnel_and" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "trunc_bswap_i160" +4: "trunc_bswap_i160" has unsupported operation: llvm.load + +4: "trunc_bswap_i160" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_bswap_i160" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR47191_problem1" +4: "PR47191_problem1" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR47191_problem2" +4: "PR47191_problem2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR47191_problem3" +4: "PR47191_problem3" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR47191_problem4" +4: "PR47191_problem4" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR50910" +4: "PR50910" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "PR50910" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR60690_call_fshl" +4: "PR60690_call_fshl" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "PR60690_call_fshr" +4: "PR60690_call_fshr" has unsupported operation: builtin.unregistered: llvm.intr.bswap + diff --git a/SSA/Projects/InstCombine/tests/logs/builtin-dynamic-object-size.txt b/SSA/Projects/InstCombine/tests/logs/builtin-dynamic-object-size.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/builtin-object-size-custom-dl.txt b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-custom-dl.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/builtin-object-size-offset.txt b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-offset.txt new file mode 100644 index 000000000..b56181331 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-offset.txt @@ -0,0 +1,20 @@ +1: "foo1" +6: Cannot find function after optimization with sym name: "foo1" + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.sext + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "printf" +5: "printf" is empty + +1: "llvm.objectsize.i64.p0" +5: "llvm.objectsize.i64.p0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/builtin-object-size-ptr.txt b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-ptr.txt new file mode 100644 index 000000000..e091e82b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-ptr.txt @@ -0,0 +1,15 @@ +1: "foo" +6: Cannot find function after optimization with sym name: "foo" + +1: "PR43723" +4: "PR43723" has unsupported operation: llvm.return + +1: "unknown_use_of_invariant_start" +4: "unknown_use_of_invariant_start" has unsupported operation: llvm.return + +1: "minimal_invariant_start_use" +4: "minimal_invariant_start_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "llvm.objectsize.i64.p0" +5: "llvm.objectsize.i64.p0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/builtin-object-size-strdup-family.txt b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-strdup-family.txt new file mode 100644 index 000000000..bc9da3241 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/builtin-object-size-strdup-family.txt @@ -0,0 +1,30 @@ +1: "malloc" +5: "malloc" is empty + +1: "llvm.objectsize.i64.p0" +5: "llvm.objectsize.i64.p0" is empty + +1: "strdup" +5: "strdup" is empty + +1: "__strdup" +5: "__strdup" is empty + +1: "strndup" +5: "strndup" is empty + +1: "__strndup" +5: "__strndup" is empty + +1: "check_strdup" +6: Cannot find function after optimization with sym name: "check_strdup" + +1: "check_dunder_strdup" +6: Cannot find function after optimization with sym name: "check_dunder_strdup" + +1: "check_strndup" +6: Cannot find function after optimization with sym name: "check_strndup" + +1: "check_dunder_strndup" +6: Cannot find function after optimization with sym name: "check_dunder_strndup" + diff --git a/SSA/Projects/InstCombine/tests/logs/byval.txt b/SSA/Projects/InstCombine/tests/logs/byval.txt new file mode 100644 index 000000000..7ead2899a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/byval.txt @@ -0,0 +1,26 @@ +1: "add_byval_callee" +5: "add_byval_callee" is empty + +1: "add_byval_callee_2" +5: "add_byval_callee_2" is empty + +1: "add_byval" +4: "add_byval" has unsupported operation: llvm.call + +4: "add_byval" has unsupported operation: llvm.return + +1: "add_byval_2" +4: "add_byval_2" has unsupported operation: llvm.call + +4: "add_byval_2" has unsupported operation: llvm.return + +1: "vararg_byval" +4: "vararg_byval" has unsupported operation: llvm.mlir.undef + +4: "vararg_byval" has unsupported operation: llvm.call + +4: "vararg_byval" has unsupported operation: llvm.return + +1: "vararg_callee" +5: "vararg_callee" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/cabs-array.txt b/SSA/Projects/InstCombine/tests/logs/cabs-array.txt new file mode 100644 index 000000000..7d3a66f2b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cabs-array.txt @@ -0,0 +1,57 @@ +1: "std_cabs" +4: "std_cabs" has unsupported operation: llvm.call + +1: "std_cabsf" +4: "std_cabsf" has unsupported operation: llvm.call + +1: "std_cabsl" +4: "std_cabsl" has unsupported operation: llvm.call + +1: "fast_cabs" +4: "fast_cabs" has unsupported operation: llvm.extractvalue + +4: "fast_cabs" has unsupported operation: llvm.extractvalue + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "fast_cabsf" +4: "fast_cabsf" has unsupported operation: llvm.extractvalue + +4: "fast_cabsf" has unsupported operation: llvm.extractvalue + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "fast_cabsl" +4: "fast_cabsl" has unsupported operation: llvm.extractvalue + +4: "fast_cabsl" has unsupported operation: llvm.extractvalue + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "cabs" +5: "cabs" is empty + +1: "cabsf" +5: "cabsf" is empty + +1: "cabsl" +5: "cabsl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/cabs-discrete.txt b/SSA/Projects/InstCombine/tests/logs/cabs-discrete.txt new file mode 100644 index 000000000..4ddde1347 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cabs-discrete.txt @@ -0,0 +1,72 @@ +1: "std_cabs" +4: "std_cabs" has unsupported operation: llvm.call + +1: "std_cabsf" +4: "std_cabsf" has unsupported operation: llvm.call + +1: "std_cabsl" +4: "std_cabsl" has unsupported operation: llvm.call + +1: "fast_cabs" +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabs" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "cabs_zero_real" +4: "cabs_zero_real" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fast_cabs_neg_zero_real" +4: "fast_cabs_neg_zero_real" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "cabs_zero_imag" +4: "cabs_zero_imag" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fast_cabsf" +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabsf" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "cabsf_zero_real" +4: "cabsf_zero_real" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fast_cabsf_neg_zero_real" +4: "fast_cabsf_neg_zero_real" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "cabsf_zero_imag" +4: "cabsf_zero_imag" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fast_cabsl" +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fast_cabsl" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "cabsl_zero_real" +4: "cabsl_zero_real" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "cabsl_zero_imag" +4: "cabsl_zero_imag" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fast_cabsl_neg_zero_imag" +4: "fast_cabsl_neg_zero_imag" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "cabs" +5: "cabs" is empty + +1: "cabsf" +5: "cabsf" is empty + +1: "cabsl" +5: "cabsl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/call-callconv-mismatch.txt b/SSA/Projects/InstCombine/tests/logs/call-callconv-mismatch.txt new file mode 100644 index 000000000..d132ef510 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-callconv-mismatch.txt @@ -0,0 +1,2 @@ +3: call-callconv-mismatch.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/call-callconv.txt b/SSA/Projects/InstCombine/tests/logs/call-callconv.txt new file mode 100644 index 000000000..b979102fa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-callconv.txt @@ -0,0 +1,2 @@ +3: call-callconv.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/call-cast-attrs.txt b/SSA/Projects/InstCombine/tests/logs/call-cast-attrs.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/call-cast-target-inalloca.txt b/SSA/Projects/InstCombine/tests/logs/call-cast-target-inalloca.txt new file mode 100644 index 000000000..b1fc8cd28 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-cast-target-inalloca.txt @@ -0,0 +1,22 @@ +1: "takes_i32" +5: "takes_i32" is empty + +1: "takes_i32_inalloca" +5: "takes_i32_inalloca" is empty + +1: "f" +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: llvm.mlir.addressof + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/call-cast-target-preallocated.txt b/SSA/Projects/InstCombine/tests/logs/call-cast-target-preallocated.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/call-cast-target.txt b/SSA/Projects/InstCombine/tests/logs/call-cast-target.txt new file mode 100644 index 000000000..b6d541225 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-cast-target.txt @@ -0,0 +1,2 @@ +3: call-cast-target.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/call-guard.txt b/SSA/Projects/InstCombine/tests/logs/call-guard.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/call-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/call-intrinsics.txt new file mode 100644 index 000000000..6e41c71e8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-intrinsics.txt @@ -0,0 +1,3 @@ +1: "zero_byte_test" +4: "zero_byte_test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/call-returned.txt b/SSA/Projects/InstCombine/tests/logs/call-returned.txt new file mode 100644 index 000000000..c91e58e50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-returned.txt @@ -0,0 +1,45 @@ +1: "passthru_i32" +5: "passthru_i32" is empty + +1: "passthru_p8" +5: "passthru_p8" is empty + +1: "passthru_p8_from_p32" +5: "passthru_p8_from_p32" is empty + +1: "passthru_8i8v_from_2i32v" +5: "passthru_8i8v_from_2i32v" is empty + +1: "returned_const_int_arg" +4: "returned_const_int_arg" has unsupported operation: llvm.call + +1: "returned_const_ptr_arg" +4: "returned_const_ptr_arg" has unsupported operation: llvm.mlir.zero + +4: "returned_const_ptr_arg" has unsupported operation: llvm.call + +1: "returned_const_ptr_arg_casted" +4: "returned_const_ptr_arg_casted" has unsupported operation: llvm.mlir.zero + +4: "returned_const_ptr_arg_casted" has unsupported operation: llvm.call + +1: "returned_ptr_arg_casted" +4: "returned_ptr_arg_casted" has unsupported operation: llvm.call + +1: "returned_const_vec_arg_casted" +4: "returned_const_vec_arg_casted" has unsupported operation: llvm.call + +1: "returned_vec_arg_casted" +4: "returned_vec_arg_casted" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "returned_vec_arg_casted" has unsupported operation: llvm.call + +1: "returned_var_arg" +4: "returned_var_arg" has unsupported operation: llvm.call + +1: "returned_const_int_arg_musttail" +4: "returned_const_int_arg_musttail" has unsupported operation: llvm.call + +1: "returned_var_arg_musttail" +4: "returned_var_arg_musttail" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/call-undef.txt b/SSA/Projects/InstCombine/tests/logs/call-undef.txt new file mode 100644 index 000000000..a04f806d2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call-undef.txt @@ -0,0 +1,77 @@ +1: "c" +5: "c" is empty + +1: "d" +5: "d" is empty + +1: "e" +5: "e" is empty + +1: "f" +5: "f" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.undef + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.undef + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: llvm.return + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.undef + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test6" has unsupported operation: llvm.call + +4: "test6" has unsupported operation: llvm.return + +1: "test7" +4: "test7" has unsupported operation: llvm.mlir.undef + +4: "test7" has unsupported operation: llvm.call + +4: "test7" has unsupported operation: llvm.return + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test8" has unsupported operation: llvm.call + +4: "test8" has unsupported operation: llvm.return + +1: "test_mismatched_call" +4: "test_mismatched_call" has unsupported operation: llvm.mlir.addressof + +4: "test_mismatched_call" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_mismatched_call" has unsupported operation: llvm.call + +4: "test_mismatched_call" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/call.txt b/SSA/Projects/InstCombine/tests/logs/call.txt new file mode 100644 index 000000000..240ce51f4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call.txt @@ -0,0 +1,2 @@ +3: call.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/call2.txt b/SSA/Projects/InstCombine/tests/logs/call2.txt new file mode 100644 index 000000000..83f2679f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call2.txt @@ -0,0 +1,18 @@ +1: "bar" +4: "bar" has unsupported operation: llvm.mlir.addressof + +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: llvm.call + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: llvm.load + +1: "f" +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/call_nonnull_arg.txt b/SSA/Projects/InstCombine/tests/logs/call_nonnull_arg.txt new file mode 100644 index 000000000..518fb065e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/call_nonnull_arg.txt @@ -0,0 +1,43 @@ +1: "dummy" +5: "dummy" is empty + +1: "test" +4: "test" has unsupported operation: llvm.mlir.zero + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + +4: "test" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "bar" +5: "bar" is empty + +1: "bar_without_noundef" +5: "bar_without_noundef" is empty + +1: "baz" +5: "baz" is empty + +1: "deduce_nonnull_from_another_call" +4: "deduce_nonnull_from_another_call" has unsupported operation: llvm.call + +4: "deduce_nonnull_from_another_call" has unsupported operation: llvm.call + +4: "deduce_nonnull_from_another_call" has unsupported operation: llvm.return + +1: "deduce_nonnull_from_another_call2" +4: "deduce_nonnull_from_another_call2" has unsupported operation: llvm.call + +4: "deduce_nonnull_from_another_call2" has unsupported operation: llvm.call + +4: "deduce_nonnull_from_another_call2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/calloc-mismatch.txt b/SSA/Projects/InstCombine/tests/logs/calloc-mismatch.txt new file mode 100644 index 000000000..65043d7bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/calloc-mismatch.txt @@ -0,0 +1,8 @@ +1: "calloc" +5: "calloc" is empty + +1: "PR50846" +4: "PR50846" has unsupported operation: llvm.call + +4: "PR50846" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/callsite_nonnull_args_through_casts.txt b/SSA/Projects/InstCombine/tests/logs/callsite_nonnull_args_through_casts.txt new file mode 100644 index 000000000..ee719ffee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/callsite_nonnull_args_through_casts.txt @@ -0,0 +1,84 @@ +1: "foo" +5: "foo" is empty + +1: "bar" +5: "bar" is empty + +1: "nonnullAfterBitCast" +4: "nonnullAfterBitCast" has unsupported operation: llvm.alloca + +4: "nonnullAfterBitCast" has unsupported operation: llvm.call + +4: "nonnullAfterBitCast" has unsupported operation: llvm.return + +1: "nonnullAfterSExt" +4: "nonnullAfterSExt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "nonnullAfterSExt" has unsupported operation: llvm.inttoptr + +4: "nonnullAfterSExt" has unsupported operation: llvm.call + +4: "nonnullAfterSExt" has unsupported operation: llvm.return + +1: "nonnullAfterZExt" +4: "nonnullAfterZExt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "nonnullAfterZExt" has unsupported operation: llvm.inttoptr + +4: "nonnullAfterZExt" has unsupported operation: llvm.call + +4: "nonnullAfterZExt" has unsupported operation: llvm.return + +1: "nonnullAfterInt2Ptr" +4: "nonnullAfterInt2Ptr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "nonnullAfterInt2Ptr" has unsupported operation: llvm.inttoptr + +4: "nonnullAfterInt2Ptr" has unsupported operation: llvm.call + +4: "nonnullAfterInt2Ptr" has unsupported operation: llvm.inttoptr + +4: "nonnullAfterInt2Ptr" has unsupported operation: llvm.call + +4: "nonnullAfterInt2Ptr" has unsupported operation: llvm.return + +1: "nonnullAfterPtr2Int" +4: "nonnullAfterPtr2Int" has unsupported operation: llvm.alloca + +4: "nonnullAfterPtr2Int" has unsupported operation: llvm.call + +4: "nonnullAfterPtr2Int" has unsupported operation: llvm.return + +1: "maybenullAfterInt2Ptr" +4: "maybenullAfterInt2Ptr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "maybenullAfterInt2Ptr" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "maybenullAfterInt2Ptr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "maybenullAfterInt2Ptr" has unsupported operation: llvm.inttoptr + +4: "maybenullAfterInt2Ptr" has unsupported operation: llvm.call + +4: "maybenullAfterInt2Ptr" has unsupported operation: llvm.return + +1: "maybenullAfterPtr2Int" +4: "maybenullAfterPtr2Int" has unsupported operation: llvm.alloca + +4: "maybenullAfterPtr2Int" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "maybenullAfterPtr2Int" has unsupported operation: llvm.inttoptr + +4: "maybenullAfterPtr2Int" has unsupported operation: llvm.call + +4: "maybenullAfterPtr2Int" has unsupported operation: llvm.return + +1: "maybenullAfterAddrspacecast" +4: "maybenullAfterAddrspacecast" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "maybenullAfterAddrspacecast" has unsupported operation: llvm.call + +4: "maybenullAfterAddrspacecast" has unsupported operation: llvm.call + +4: "maybenullAfterAddrspacecast" has unsupported operation: llvm.return + 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 new file mode 100644 index 000000000..82905c5f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-ashr-shl-to-masking.txt @@ -0,0 +1,383 @@ +1: "positive_samevar" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuw" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnsw" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuwnsw" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_ashrexact" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnsw_ashrexact" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuw_ashrexact" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnuw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuwnsw_ashrexact" +2: llvm.func +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuwnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggerashr_shlnuwnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuwnsw_ashrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_vec" +"positive_samevar_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec" +"positive_sameconst_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec_undef0" +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef1" +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef2" +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "positive_sameconst_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerashr_vec" +"positive_biggerashr_vec" contains vectors which are unsupported + +1: "positive_biggerashr_vec_undef0" +4: "positive_biggerashr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerashr_vec_undef1" +4: "positive_biggerashr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerashr_vec_undef2" +4: "positive_biggerashr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerashr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec" +"positive_biggershl_vec" contains vectors which are unsupported + +1: "positive_biggershl_vec_undef0" +4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec_undef1" +4: "positive_biggershl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec_undef2" +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_multiuse" +4: "positive_sameconst_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerashr_multiuse" +4: "positive_biggerashr_multiuse" has unsupported operation: llvm.call + +1: "positive_biggershl_multiuse" +4: "positive_biggershl_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerashr_vec_nonsplat" +7: "positive_biggerashr_vec_nonsplat" is unchanged by InstCombine + +1: "positive_biggerLashr_vec_nonsplat" +7: "positive_biggerLashr_vec_nonsplat" is unchanged by InstCombine + +1: "negative_twovars" +7: "negative_twovars" is unchanged by InstCombine + +1: "use32" +5: "use32" is empty + +1: "negative_oneuse" +4: "negative_oneuse" has unsupported operation: llvm.call + 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 new file mode 100644 index 000000000..9b109e77b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-negative-and-positive-thresholds.txt @@ -0,0 +1,295 @@ +1: "t0_ult_slt_128" +4: "t0_ult_slt_128" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "use1" +5: "use1" is empty + +1: "t10_oneuse0" +4: "t10_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t10_oneuse0" has unsupported operation: llvm.call + +4: "t10_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t12_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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 + +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 + +1: "use" +5: "use" is empty + +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 + +4: "t23_ult_sge" has unsupported operation: llvm.call + +4: "t23_ult_sge" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..85ece0cec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-like-pattern-between-zero-and-positive-threshold.txt @@ -0,0 +1,239 @@ +1: "t0_ult_slt_65536" +4: "t0_ult_slt_65536" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "use1" +5: "use1" is empty + +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-clamp-with-select-of-constant-threshold-pattern.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-with-select-of-constant-threshold-pattern.txt new file mode 100644 index 000000000..856cd23c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-clamp-with-select-of-constant-threshold-pattern.txt @@ -0,0 +1,60 @@ +1: "t0_select_cond_and_v0" +4: "t0_select_cond_and_v0" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t0_select_cond_and_v0" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t0_select_cond_and_v0_logical" +4: "t0_select_cond_and_v0_logical" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t0_select_cond_and_v0_logical" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t1_select_cond_and_v1" +4: "t1_select_cond_and_v1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t1_select_cond_and_v1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t1_select_cond_and_v1_logical" +4: "t1_select_cond_and_v1_logical" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t1_select_cond_and_v1_logical" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t2_select_cond_or_v0" +4: "t2_select_cond_or_v0" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t2_select_cond_or_v0" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t2_select_cond_or_v0_logical" +4: "t2_select_cond_or_v0_logical" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t2_select_cond_or_v0_logical" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t3_select_cond_or_v1" +4: "t3_select_cond_or_v1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t3_select_cond_or_v1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t3_select_cond_or_v1_logical" +4: "t3_select_cond_or_v1_logical" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t3_select_cond_or_v1_logical" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t4_select_cond_xor_v0" +4: "t4_select_cond_xor_v0" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t4_select_cond_xor_v0" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t4_select_cond_xor_v1" +4: "t4_select_cond_xor_v1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t4_select_cond_xor_v1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t5_select_cond_xor_v2" +4: "t5_select_cond_xor_v2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t5_select_cond_xor_v2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "t5_select_cond_xor_v3" +4: "t5_select_cond_xor_v3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t5_select_cond_xor_v3" has unsupported operation: builtin.unregistered: llvm.intr.smin + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.txt new file mode 100644 index 000000000..8b9cf2302 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-eq-to-icmp-ule.txt @@ -0,0 +1,61 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt new file mode 100644 index 000000000..c0b7cee56 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt @@ -0,0 +1,84 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_nonsplat_poison" +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.txt new file mode 100644 index 000000000..714fed6a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sge-to-icmp-sle.txt @@ -0,0 +1,74 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase" +4: "p2_vec_nonsplat_edgecase" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nv" +4: "nv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec" +4: "n3_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_vec" +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "n4_vec" has unsupported operation: llvm.mlir.undef + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.txt new file mode 100644 index 000000000..7ec395b5b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.txt @@ -0,0 +1,125 @@ +1: "gen8" +5: "gen8" is empty + +1: "gen2x8" +5: "gen2x8" is empty + +1: "gen3x8" +5: "gen3x8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: llvm.call + +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase" +4: "p2_vec_nonsplat_edgecase" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: llvm.call + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_nonsplat_poison" +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.call + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c0" +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: llvm.call + +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec" +4: "n3_vec" has unsupported operation: llvm.call + +4: "n3_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_vec" +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "n4_vec" has unsupported operation: llvm.mlir.undef + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: llvm.call + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0_GOOD" +4: "cv0_GOOD" has unsupported operation: llvm.call + +4: "cv0_GOOD" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.txt new file mode 100644 index 000000000..1fc4b6fd4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-sle-to-icmp-sle.txt @@ -0,0 +1,100 @@ +1: "gen8" +5: "gen8" is empty + +1: "gen2x8" +5: "gen2x8" is empty + +1: "gen3x8" +5: "gen3x8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: llvm.call + +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase" +4: "p2_vec_nonsplat_edgecase" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: llvm.call + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c0" +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: llvm.call + +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec" +4: "n3_vec" has unsupported operation: llvm.call + +4: "n3_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_vec" +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "n4_vec" has unsupported operation: llvm.mlir.undef + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4_vec" has unsupported operation: llvm.call + +4: "n4_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0_GOOD" +4: "cv0_GOOD" has unsupported operation: llvm.call + +4: "cv0_GOOD" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.txt new file mode 100644 index 000000000..21115c951 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.txt @@ -0,0 +1,97 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase" +4: "p2_vec_nonsplat_edgecase" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_nonsplat_poison" +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nv" +4: "nv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "n4" has unsupported operation: llvm.mlir.undef + +4: "n4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +4: "cv1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +4: "cv2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-uge-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-uge-to-icmp-ule.txt new file mode 100644 index 000000000..a34d16206 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-uge-to-icmp-ule.txt @@ -0,0 +1,55 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.txt new file mode 100644 index 000000000..06fcc28aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.txt @@ -0,0 +1,108 @@ +1: "gen8" +5: "gen8" is empty + +1: "gen2x8" +5: "gen2x8" is empty + +1: "gen3x8" +5: "gen3x8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: llvm.call + +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: llvm.call + +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: llvm.call + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_nonsplat_poison" +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.call + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c0" +4: "c0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +1: "cv2" +4: "cv2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.txt new file mode 100644 index 000000000..8ddff30fb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ule-to-icmp-ule.txt @@ -0,0 +1,83 @@ +1: "gen8" +5: "gen8" is empty + +1: "gen2x8" +5: "gen2x8" is empty + +1: "gen3x8" +5: "gen3x8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: llvm.call + +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: llvm.call + +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: llvm.call + +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: llvm.call + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c0" +4: "c0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +1: "cv2" +4: "cv2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.txt new file mode 100644 index 000000000..373385f8a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.txt @@ -0,0 +1,78 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pv" +4: "pv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase0" +4: "p2_vec_nonsplat_edgecase0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat_edgecase1" +4: "p2_vec_nonsplat_edgecase1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_splat_poison" +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_nonsplat_poison" +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p3_vec_nonsplat_poison" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_nonsplat_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +1: "cv0" +4: "cv0" has unsupported operation: llvm.call + +4: "cv0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cv1" +4: "cv1" has unsupported operation: llvm.call + +1: "cv2" +4: "cv2" has unsupported operation: llvm.call + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-fcmp-inf.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-fcmp-inf.txt new file mode 100644 index 000000000..e5e987fda --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-fcmp-inf.txt @@ -0,0 +1,87 @@ +1: "olt_pinf" +4: "olt_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ole_pinf" +4: "ole_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ogt_pinf" +4: "ogt_pinf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "oge_pinf" +4: "oge_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ult_pinf" +4: "ult_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ule_pinf" +4: "ule_pinf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "ugt_pinf" +4: "ugt_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uge_pinf" +4: "uge_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "olt_ninf" +4: "olt_ninf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "ole_ninf" +4: "ole_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ogt_ninf" +4: "ogt_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "oge_ninf" +4: "oge_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ult_ninf" +4: "ult_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ule_ninf" +4: "ule_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ugt_ninf" +4: "ugt_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uge_ninf" +4: "uge_ninf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "olt_pinf_fmf" +4: "olt_pinf_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "oge_pinf_fmf" +4: "oge_pinf_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "olt_pinf_vec" +4: "olt_pinf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "oge_ninf_vec" +4: "oge_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_pinf" +4: "ord_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_pinf" +4: "uno_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "true_pinf" +4: "true_pinf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "false_pinf" +4: "false_pinf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "ord_ninf" +4: "ord_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_ninf" +4: "uno_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "true_ninf" +4: "true_ninf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "false_ninf" +4: "false_ninf" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "olt_one" +4: "olt_one" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-constglob.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-constglob.txt new file mode 100644 index 000000000..feb40d957 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-constglob.txt @@ -0,0 +1,45 @@ +1: "x12" +4: "x12" has unsupported operation: llvm.mlir.addressof + +4: "x12" has unsupported operation: llvm.getelementptr + +4: "x12" has unsupported operation: llvm.getelementptr + +1: "x1y" +4: "x1y" has unsupported operation: llvm.mlir.addressof + +4: "x1y" has unsupported operation: llvm.getelementptr + +4: "x1y" has unsupported operation: llvm.getelementptr + +4: "x1y" has unsupported operation: llvm.getelementptr + +1: "xzy" +4: "xzy" has unsupported operation: llvm.mlir.addressof + +4: "xzy" has unsupported operation: llvm.getelementptr + +4: "xzy" has unsupported operation: llvm.getelementptr + +1: "zerox" +4: "zerox" has unsupported operation: llvm.mlir.addressof + +4: "zerox" has unsupported operation: llvm.getelementptr + +4: "zerox" has unsupported operation: llvm.getelementptr + +1: "twoloads" +4: "twoloads" has unsupported operation: llvm.mlir.addressof + +4: "twoloads" has unsupported operation: llvm.getelementptr + +4: "twoloads" has unsupported operation: llvm.getelementptr + +4: "twoloads" has unsupported operation: llvm.getelementptr + +4: "twoloads" has unsupported operation: llvm.getelementptr + +4: "twoloads" has unsupported operation: llvm.load + +4: "twoloads" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-mul.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-mul.txt new file mode 100644 index 000000000..677856d38 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-gep-mul.txt @@ -0,0 +1,43 @@ +1: "mul4" +4: "mul4" has unsupported operation: llvm.getelementptr + +1: "mul4_nuw" +4: "mul4_nuw" has unsupported operation: llvm.getelementptr + +1: "mul5" +4: "mul5" has unsupported operation: llvm.getelementptr + +1: "noinbounds" +4: "noinbounds" has unsupported operation: llvm.getelementptr + +1: "usemul" +4: "usemul" has unsupported operation: llvm.getelementptr + +4: "usemul" has unsupported operation: llvm.call + +1: "multiple" +4: "multiple" has unsupported operation: llvm.getelementptr + +4: "multiple" has unsupported operation: llvm.getelementptr + +4: "multiple" has unsupported operation: llvm.call + +4: "multiple" has unsupported operation: llvm.return + +1: "multiplestore" +4: "multiplestore" has unsupported operation: llvm.getelementptr + +4: "multiplestore" has unsupported operation: llvm.getelementptr + +4: "multiplestore" has unsupported operation: llvm.store + +4: "multiplestore" has unsupported operation: llvm.store + +4: "multiplestore" has unsupported operation: llvm.return + +1: "use" +5: "use" is empty + +1: "use2" +5: "use2" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-lack-of-signed-truncation-check.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-lack-of-signed-truncation-check.txt new file mode 100644 index 000000000..369297ba1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-lack-of-signed-truncation-check.txt @@ -0,0 +1,91 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pb" +4: "pb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_undef0" +4: "p3_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_undef1" +4: "p4_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p5_vec_undef2" +4: "p5_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "p5_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "n_oneuse0" +4: "n_oneuse0" has unsupported operation: llvm.call + +4: "n_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n_oneuse1" +4: "n_oneuse1" has unsupported operation: llvm.call + +4: "n_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n_oneuse2" +4: "n_oneuse2" has unsupported operation: llvm.call + +4: "n_oneuse2" has unsupported operation: llvm.call + +4: "n_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-eq-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-eq-to-icmp-ule.txt new file mode 100644 index 000000000..9b10335e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-eq-to-icmp-ule.txt @@ -0,0 +1,60 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison" +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt new file mode 100644 index 000000000..9b10335e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-and-icmp-ne-to-icmp-ugt.txt @@ -0,0 +1,60 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison" +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-eq-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-eq-to-icmp-ule.txt new file mode 100644 index 000000000..201c4e769 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-eq-to-icmp-ule.txt @@ -0,0 +1,83 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_poison0" +4: "p3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_poison2" +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse3" +4: "oneuse3" has unsupported operation: llvm.call + +4: "oneuse3" has unsupported operation: llvm.call + +4: "oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse4" +4: "oneuse4" has unsupported operation: llvm.call + +4: "oneuse4" has unsupported operation: llvm.call + +4: "oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse5" +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.txt new file mode 100644 index 000000000..201c4e769 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v2-and-icmp-ne-to-icmp-ugt.txt @@ -0,0 +1,83 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_poison0" +4: "p3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_poison2" +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse3" +4: "oneuse3" has unsupported operation: llvm.call + +4: "oneuse3" has unsupported operation: llvm.call + +4: "oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse4" +4: "oneuse4" has unsupported operation: llvm.call + +4: "oneuse4" has unsupported operation: llvm.call + +4: "oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse5" +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: llvm.call + +4: "oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.txt new file mode 100644 index 000000000..44ff2b0e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-eq-to-icmp-ule.txt @@ -0,0 +1,116 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_poison0" +4: "p3_vec_poison0" has unsupported operation: llvm.call + +4: "p3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_poiso2" +4: "p4_vec_poiso2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p4_vec_poiso2" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_poiso2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poiso2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poiso2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poiso2" has unsupported operation: llvm.call + +4: "p4_vec_poiso2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.txt new file mode 100644 index 000000000..a5b75cfe1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v3-and-icmp-ne-to-icmp-ugt.txt @@ -0,0 +1,116 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_poison0" +4: "p3_vec_poison0" has unsupported operation: llvm.call + +4: "p3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_poison2" +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p4_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_poison2" has unsupported operation: llvm.call + +4: "p4_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.txt new file mode 100644 index 000000000..5dd755bbc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-eq-to-icmp-ule.txt @@ -0,0 +1,96 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.txt new file mode 100644 index 000000000..5dd755bbc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-low-bit-mask-v4-and-icmp-ne-to-icmp-ugt.txt @@ -0,0 +1,96 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c1" +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: llvm.call + +4: "c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "c2" +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: llvm.call + +4: "c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + 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 new file mode 100644 index 000000000..4480df5f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-lshr-shl-to-masking.txt @@ -0,0 +1,383 @@ +1: "positive_samevar" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuw" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnsw" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuwnsw" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuwnsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_lshrexact" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnsw_lshrexact" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuw_lshrexact" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnuw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_shlnuwnsw_lshrexact" +2: llvm.func +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_sameconst_shlnuwnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggerlshr_shlnuwnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_biggershl_shlnuwnsw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.return + +1: "positive_samevar_vec" +"positive_samevar_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec" +"positive_sameconst_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec_undef0" +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef1" +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef2" +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "positive_sameconst_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerlshr_vec" +"positive_biggerlshr_vec" contains vectors which are unsupported + +1: "positive_biggerlshr_vec_undef0" +4: "positive_biggerlshr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerlshr_vec_undef1" +4: "positive_biggerlshr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerlshr_vec_undef2" +4: "positive_biggerlshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerlshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec" +"positive_biggershl_vec" contains vectors which are unsupported + +1: "positive_biggershl_vec_undef0" +4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec_undef1" +4: "positive_biggershl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggershl_vec_undef2" +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggershl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_multiuse" +4: "positive_sameconst_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerlshr_multiuse" +4: "positive_biggerlshr_multiuse" has unsupported operation: llvm.call + +1: "positive_biggershl_multiuse" +4: "positive_biggershl_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerlshr_vec_nonsplat" +7: "positive_biggerlshr_vec_nonsplat" is unchanged by InstCombine + +1: "positive_biggerLlshr_vec_nonsplat" +7: "positive_biggerLlshr_vec_nonsplat" is unchanged by InstCombine + +1: "negative_twovars" +7: "negative_twovars" is unchanged by InstCombine + +1: "use32" +5: "use32" is empty + +1: "negative_oneuse" +4: "negative_oneuse" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-or-with-overflow-icmp.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-or-with-overflow-icmp.txt new file mode 100644 index 000000000..7d3ddea0f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-or-with-overflow-icmp.txt @@ -0,0 +1,111 @@ +1: "use" +5: "use" is empty + +1: "ckd_add_unsigned" +4: "ckd_add_unsigned" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ckd_add_unsigned_commuted" +4: "ckd_add_unsigned_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ckd_add_unsigned_imply_true" +4: "ckd_add_unsigned_imply_true" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "ckd_add_unsigned_imply_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "ckd_add_unsigned_imply_true" has unsupported operation after optimization: llvm.extractvalue + +4: "ckd_add_unsigned_imply_true" has unsupported operation after optimization: llvm.extractvalue + +4: "ckd_add_unsigned_imply_true" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp" +4: "canonicalize_or_sadd_with_overflow_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_ssub_with_overflow_icmp" +4: "canonicalize_or_ssub_with_overflow_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_uadd_with_overflow_icmp" +4: "canonicalize_or_uadd_with_overflow_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp_eq" +4: "canonicalize_or_sadd_with_overflow_icmp_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "canonicalize_or_sadd_with_overflow_icmp_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_uadd_with_overflow_icmp_ne" +4: "canonicalize_or_uadd_with_overflow_icmp_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp_mismatched_pred" +4: "canonicalize_or_sadd_with_overflow_icmp_mismatched_pred" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "canonicalize_or_sadd_with_overflow_icmp_mismatched_pred" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_mismatched_pred" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_mismatched_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp_non_constant1" +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant1" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant1" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant1" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp_non_constant2" +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant2" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant2" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant2" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_non_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_sadd_with_overflow_icmp_multiuse" +4: "canonicalize_or_sadd_with_overflow_icmp_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "canonicalize_or_sadd_with_overflow_icmp_multiuse" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_multiuse" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "canonicalize_or_sadd_with_overflow_icmp_multiuse" has unsupported operation: llvm.call + +1: "canonicalize_or_sadd_with_overflow_icmp_overflow" +4: "canonicalize_or_sadd_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "canonicalize_or_sadd_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_sadd_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_uadd_with_overflow_icmp_overflow" +4: "canonicalize_or_uadd_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.intr.uadd.with.overflow + +4: "canonicalize_or_uadd_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_uadd_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_uadd_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_ssub_with_overflow_icmp_overflow" +4: "canonicalize_or_ssub_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "canonicalize_or_ssub_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_ssub_with_overflow_icmp_overflow" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_ssub_with_overflow_icmp_overflow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "canonicalize_or_smul_with_overflow_icmp" +4: "canonicalize_or_smul_with_overflow_icmp" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "canonicalize_or_smul_with_overflow_icmp" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_smul_with_overflow_icmp" has unsupported operation: llvm.extractvalue + +4: "canonicalize_or_smul_with_overflow_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + 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 new file mode 100644 index 000000000..0b20e0eb8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-selects-icmp-condition-bittest.txt @@ -0,0 +1,65 @@ +1: "use8" +5: "use8" is empty + +1: "use1" +5: "use1" is empty + +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 new file mode 100644 index 000000000..b336e1aae --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-shl-lshr-to-masking.txt @@ -0,0 +1,231 @@ +1: "positive_samevar" +2: llvm.func +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_sameconst" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerShl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerLshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerLshr_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_samevar_shlnuw" +2: llvm.func +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_sameconst_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerShl_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerLshr_shlnuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_biggerLshr_shlnuw_lshrexact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.return + +1: "positive_samevar_vec" +"positive_samevar_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec" +"positive_sameconst_vec" contains vectors which are unsupported + +1: "positive_sameconst_vec_undef0" +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef1" +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_vec_undef2" +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "positive_sameconst_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_sameconst_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerShl_vec" +"positive_biggerShl_vec" contains vectors which are unsupported + +1: "positive_biggerShl_vec_undef0" +4: "positive_biggerShl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerShl_vec_undef1" +4: "positive_biggerShl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerShl_vec_undef2" +4: "positive_biggerShl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerShl_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerLshr_vec" +"positive_biggerLshr_vec" contains vectors which are unsupported + +1: "positive_biggerLshr_vec_undef0" +4: "positive_biggerLshr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerLshr_vec_undef1" +4: "positive_biggerLshr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_biggerLshr_vec_undef2" +4: "positive_biggerLshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "positive_biggerLshr_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "positive_sameconst_multiuse" +4: "positive_sameconst_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerShl_shlnuw_multiuse" +4: "positive_biggerShl_shlnuw_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerLshr_shlnuw_multiuse" +4: "positive_biggerLshr_shlnuw_multiuse" has unsupported operation: llvm.call + +1: "positive_biggerShl_multiuse_extrainstr" +4: "positive_biggerShl_multiuse_extrainstr" has unsupported operation: llvm.call + +1: "positive_biggerLshr_multiuse_extrainstr" +4: "positive_biggerLshr_multiuse_extrainstr" has unsupported operation: llvm.call + +1: "positive_biggerShl_vec_nonsplat" +7: "positive_biggerShl_vec_nonsplat" is unchanged by InstCombine + +1: "positive_biggerLshl_vec_nonsplat" +7: "positive_biggerLshl_vec_nonsplat" is unchanged by InstCombine + +1: "negative_twovars" +7: "negative_twovars" is unchanged by InstCombine + +1: "use32" +5: "use32" is empty + +1: "negative_oneuse" +4: "negative_oneuse" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-signed-truncation-check.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-signed-truncation-check.txt new file mode 100644 index 000000000..369297ba1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-signed-truncation-check.txt @@ -0,0 +1,91 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pb" +4: "pb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec_splat" +4: "p1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_nonsplat" +4: "p2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_vec_undef0" +4: "p3_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p3_vec_undef0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vec_undef1" +4: "p4_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p4_vec_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p5_vec_undef2" +4: "p5_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "p5_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p5_vec_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "n_oneuse0" +4: "n_oneuse0" has unsupported operation: llvm.call + +4: "n_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n_oneuse1" +4: "n_oneuse1" has unsupported operation: llvm.call + +4: "n_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n_oneuse2" +4: "n_oneuse2" has unsupported operation: llvm.call + +4: "n_oneuse2" has unsupported operation: llvm.call + +4: "n_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-extract.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-extract.txt new file mode 100644 index 000000000..577915a84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-extract.txt @@ -0,0 +1,2 @@ +3: canonicalize-vector-extract.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-insert.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-insert.txt new file mode 100644 index 000000000..ffc88c7bb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize-vector-insert.txt @@ -0,0 +1,2 @@ +3: canonicalize-vector-insert.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/canonicalize_branch.txt b/SSA/Projects/InstCombine/tests/logs/canonicalize_branch.txt new file mode 100644 index 000000000..48062e68d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/canonicalize_branch.txt @@ -0,0 +1,126 @@ +1: "eq" +4: "eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "ne" +4: "ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "ugt" +4: "ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "uge" +4: "uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "ult" +4: "ult" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "ule" +4: "ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sgt" +4: "sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sge" +4: "sge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "slt" +4: "slt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sle" +4: "sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_false" +4: "f_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_oeq" +4: "f_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_oeq" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ogt" +4: "f_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ogt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_oge" +4: "f_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_oge" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_olt" +4: "f_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_olt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ole" +4: "f_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ole" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_one" +4: "f_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_one" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ord" +4: "f_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ord" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_uno" +4: "f_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_uno" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ueq" +4: "f_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ueq" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ugt" +4: "f_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ugt" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_uge" +4: "f_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_uge" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ult" +4: "f_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ult" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_ule" +4: "f_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_une" +4: "f_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "f_une" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "f_true" +4: "f_true" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-byval.txt b/SSA/Projects/InstCombine/tests/logs/cast-byval.txt new file mode 100644 index 000000000..b20625835 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-byval.txt @@ -0,0 +1,13 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.load + +1: "bar" +4: "bar" has unsupported operation: llvm.mlir.addressof + +4: "bar" has unsupported operation: llvm.call + +1: "qux" +4: "qux" has unsupported operation: llvm.mlir.addressof + +4: "qux" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-call-combine-prof.txt b/SSA/Projects/InstCombine/tests/logs/cast-call-combine-prof.txt new file mode 100644 index 000000000..5755adf84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-call-combine-prof.txt @@ -0,0 +1,33 @@ +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "__cxa_call_unexpected" +5: "__cxa_call_unexpected" is empty + +1: "foo" +5: "foo" is empty + +1: "test_call" +4: "test_call" has unsupported operation: llvm.mlir.zero + +4: "test_call" has unsupported operation: llvm.call + +4: "test_call" has unsupported operation: llvm.return + +1: "test_invoke" +4: "test_invoke" has unsupported operation: llvm.mlir.zero + +4: "test_invoke" has unsupported operation: llvm.mlir.undef + +4: "test_invoke" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test_invoke" has unsupported operation: llvm.return + +4: "test_invoke" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "test_invoke" has unsupported operation: llvm.extractvalue + +4: "test_invoke" has unsupported operation: llvm.call + +4: "test_invoke" has unsupported operation: builtin.unregistered: llvm.unreachable + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-call-combine.txt b/SSA/Projects/InstCombine/tests/logs/cast-call-combine.txt new file mode 100644 index 000000000..df8bf161e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-call-combine.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.return + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "test" +4: "test" has unsupported operation: llvm.mlir.zero + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-int-fcmp-eq-0.txt b/SSA/Projects/InstCombine/tests/logs/cast-int-fcmp-eq-0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/cast-int-icmp-eq-0.txt b/SSA/Projects/InstCombine/tests/logs/cast-int-icmp-eq-0.txt new file mode 100644 index 000000000..dfb411f53 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-int-icmp-eq-0.txt @@ -0,0 +1,214 @@ +1: "i32_cast_cmp_eq_int_0_sitofp_float" +4: "i32_cast_cmp_eq_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_sitofp_float" +4: "i32_cast_cmp_ne_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_0_sitofp_float" +4: "i32_cast_cmp_slt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_0_sitofp_float" +4: "i32_cast_cmp_sgt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_1_sitofp_float" +4: "i32_cast_cmp_slt_int_1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_m1_sitofp_float" +4: "i32_cast_cmp_sgt_int_m1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_sitofp_double" +4: "i32_cast_cmp_eq_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_sitofp_double" +4: "i32_cast_cmp_ne_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_0_sitofp_double" +4: "i32_cast_cmp_slt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_0_sitofp_double" +4: "i32_cast_cmp_sgt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_1_sitofp_double" +4: "i32_cast_cmp_slt_int_1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_m1_sitofp_double" +4: "i32_cast_cmp_sgt_int_m1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_sitofp_half" +4: "i32_cast_cmp_eq_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_sitofp_half" +4: "i32_cast_cmp_ne_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_0_sitofp_half" +4: "i32_cast_cmp_slt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_0_sitofp_half" +4: "i32_cast_cmp_sgt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_slt_int_1_sitofp_half" +4: "i32_cast_cmp_slt_int_1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_sgt_int_m1_sitofp_half" +4: "i32_cast_cmp_sgt_int_m1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_eq_int_0_sitofp_float" +4: "i64_cast_cmp_eq_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_ne_int_0_sitofp_float" +4: "i64_cast_cmp_ne_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_0_sitofp_float" +4: "i64_cast_cmp_slt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_0_sitofp_float" +4: "i64_cast_cmp_sgt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_1_sitofp_float" +4: "i64_cast_cmp_slt_int_1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_m1_sitofp_float" +4: "i64_cast_cmp_sgt_int_m1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_eq_int_0_sitofp_double" +4: "i64_cast_cmp_eq_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_ne_int_0_sitofp_double" +4: "i64_cast_cmp_ne_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_0_sitofp_double" +4: "i64_cast_cmp_slt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_0_sitofp_double" +4: "i64_cast_cmp_sgt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_1_sitofp_double" +4: "i64_cast_cmp_slt_int_1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_m1_sitofp_double" +4: "i64_cast_cmp_sgt_int_m1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_eq_int_0_sitofp_half" +4: "i64_cast_cmp_eq_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_ne_int_0_sitofp_half" +4: "i64_cast_cmp_ne_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_0_sitofp_half" +4: "i64_cast_cmp_slt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_0_sitofp_half" +4: "i64_cast_cmp_sgt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_1_sitofp_half" +4: "i64_cast_cmp_slt_int_1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_sgt_int_m1_sitofp_half" +4: "i64_cast_cmp_sgt_int_m1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_eq_int_0_sitofp_float" +4: "i16_cast_cmp_eq_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_ne_int_0_sitofp_float" +4: "i16_cast_cmp_ne_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_0_sitofp_float" +4: "i16_cast_cmp_slt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_0_sitofp_float" +4: "i16_cast_cmp_sgt_int_0_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_1_sitofp_float" +4: "i16_cast_cmp_slt_int_1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_sitofp_float" +4: "i16_cast_cmp_sgt_int_m1_sitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_eq_int_0_sitofp_double" +4: "i16_cast_cmp_eq_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_ne_int_0_sitofp_double" +4: "i16_cast_cmp_ne_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_0_sitofp_double" +4: "i16_cast_cmp_slt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_0_sitofp_double" +4: "i16_cast_cmp_sgt_int_0_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_1_sitofp_double" +4: "i16_cast_cmp_slt_int_1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_sitofp_double" +4: "i16_cast_cmp_sgt_int_m1_sitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_eq_int_0_sitofp_half" +4: "i16_cast_cmp_eq_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_ne_int_0_sitofp_half" +4: "i16_cast_cmp_ne_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_0_sitofp_half" +4: "i16_cast_cmp_slt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_0_sitofp_half" +4: "i16_cast_cmp_sgt_int_0_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_slt_int_1_sitofp_half" +4: "i16_cast_cmp_slt_int_1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_sitofp_half" +4: "i16_cast_cmp_sgt_int_m1_sitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_sitofp_double_vec" +4: "i32_cast_cmp_ne_int_0_sitofp_double_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_sitofp_float_vec_poison" +4: "i32_cast_cmp_eq_int_0_sitofp_float_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i64_cast_cmp_slt_int_1_sitofp_half_vec_poison" +4: "i64_cast_cmp_slt_int_1_sitofp_half_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_sitofp_float_vec_poison" +4: "i16_cast_cmp_sgt_int_m1_sitofp_float_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_bitcast_vector_num_elements_sitofp" +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_num_elements_sitofp" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_num_elements_sitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_num_elements_sitofp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_sgt_int_m1_bitcast_vector_to_scalar_sitofp" +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_to_scalar_sitofp" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_to_scalar_sitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "i16_cast_cmp_sgt_int_m1_bitcast_vector_to_scalar_sitofp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_eq_int_0_bitcast_vector_num_elements_uitofp" +4: "i16_cast_cmp_eq_int_0_bitcast_vector_num_elements_uitofp" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "i16_cast_cmp_eq_int_0_bitcast_vector_num_elements_uitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "i16_cast_cmp_eq_int_0_bitcast_vector_num_elements_uitofp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i16_cast_cmp_eq_int_0_bitcast_vector_to_scalar_uitofp" +4: "i16_cast_cmp_eq_int_0_bitcast_vector_to_scalar_uitofp" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "i16_cast_cmp_eq_int_0_bitcast_vector_to_scalar_uitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "i16_cast_cmp_eq_int_0_bitcast_vector_to_scalar_uitofp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR55516" +4: "PR55516" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "PR55516" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "PR55516" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR55516_alt" +4: "PR55516_alt" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "PR55516_alt" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt b/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt new file mode 100644 index 000000000..5c6d0f198 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-mul-select.txt @@ -0,0 +1,54 @@ +1: "mul" +4: "mul" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "mul" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "mul" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "select1" +4: "select1" has unsupported operation: builtin.unregistered: llvm.select + +1: "select2" +4: "select2" has unsupported operation: builtin.unregistered: llvm.select + +1: "eval_trunc_multi_use_in_one_inst" +4: "eval_trunc_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.zext + +4: "eval_trunc_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "eval_zext_multi_use_in_one_inst" +4: "eval_zext_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eval_zext_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.zext + +1: "eval_sext_multi_use_in_one_inst" +4: "eval_sext_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eval_sext_multi_use_in_one_inst" has unsupported operation: builtin.unregistered: llvm.sext + +1: "PR36225" +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.zext + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "PR36225" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "foo" +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-select.txt b/SSA/Projects/InstCombine/tests/logs/cast-select.txt new file mode 100644 index 000000000..b6f5e7e6d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-select.txt @@ -0,0 +1,70 @@ +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" +4: "trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +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/cast-set-preserve-signed-dbg-val.txt b/SSA/Projects/InstCombine/tests/logs/cast-set-preserve-signed-dbg-val.txt new file mode 100644 index 000000000..1f10aef4f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-set-preserve-signed-dbg-val.txt @@ -0,0 +1,7 @@ +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-set.txt b/SSA/Projects/InstCombine/tests/logs/cast-set.txt new file mode 100644 index 000000000..d42d6a5f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-set.txt @@ -0,0 +1,31 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4" +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test6a" +4: "test6a" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test6a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test7" +4: "test7" has unsupported operation: llvm.mlir.zero + +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/cast-unsigned-icmp-eqcmp-0.txt b/SSA/Projects/InstCombine/tests/logs/cast-unsigned-icmp-eqcmp-0.txt new file mode 100644 index 000000000..da7ae314e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast-unsigned-icmp-eqcmp-0.txt @@ -0,0 +1,54 @@ +1: "i32_cast_cmp_eq_int_0_uitofp_float" +4: "i32_cast_cmp_eq_int_0_uitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_float_vec" +4: "i32_cast_cmp_eq_int_0_uitofp_float_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_float_vec_poison" +4: "i32_cast_cmp_eq_int_0_uitofp_float_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_float" +4: "i32_cast_cmp_ne_int_0_uitofp_float" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_float_vec" +4: "i32_cast_cmp_ne_int_0_uitofp_float_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_float_vec_poison" +4: "i32_cast_cmp_ne_int_0_uitofp_float_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_double" +4: "i32_cast_cmp_eq_int_0_uitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_double_vec" +4: "i32_cast_cmp_eq_int_0_uitofp_double_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_double_vec_poison" +4: "i32_cast_cmp_eq_int_0_uitofp_double_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_double" +4: "i32_cast_cmp_ne_int_0_uitofp_double" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_double_vec" +4: "i32_cast_cmp_ne_int_0_uitofp_double_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_double_vec_poison" +4: "i32_cast_cmp_ne_int_0_uitofp_double_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_half" +4: "i32_cast_cmp_eq_int_0_uitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_half_vec" +4: "i32_cast_cmp_eq_int_0_uitofp_half_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_eq_int_0_uitofp_half_vec_poison" +4: "i32_cast_cmp_eq_int_0_uitofp_half_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_half" +4: "i32_cast_cmp_ne_int_0_uitofp_half" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_half_vec" +4: "i32_cast_cmp_ne_int_0_uitofp_half_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i32_cast_cmp_ne_int_0_uitofp_half_vec_poison" +4: "i32_cast_cmp_ne_int_0_uitofp_half_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/cast.txt b/SSA/Projects/InstCombine/tests/logs/cast.txt new file mode 100644 index 000000000..2cd7a75e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast.txt @@ -0,0 +1,2 @@ +3: cast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/cast_phi.txt b/SSA/Projects/InstCombine/tests/logs/cast_phi.txt new file mode 100644 index 000000000..ee11c3896 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast_phi.txt @@ -0,0 +1,188 @@ +1: "MainKernel" +4: "MainKernel" has unsupported operation: llvm.alloca + +4: "MainKernel" has unsupported operation: llvm.alloca + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.zext + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.sext + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: llvm.getelementptr + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: llvm.load + +4: "MainKernel" has unsupported operation: llvm.load + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: llvm.return + +4: "MainKernel" has unsupported operation: llvm.load + +4: "MainKernel" has unsupported operation: llvm.load + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: llvm.store + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.br + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "MainKernel" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "get_i32" +5: "get_i32" is empty + +1: "get_i3" +5: "get_i3" is empty + +1: "bar" +5: "bar" is empty + +1: "zext_from_legal_to_illegal_type" +4: "zext_from_legal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_from_legal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "zext_from_legal_to_illegal_type" has unsupported operation: llvm.call + +4: "zext_from_legal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_legal_to_illegal_type" has unsupported operation: llvm.call + +4: "zext_from_legal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_legal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_from_illegal_to_illegal_type" +4: "zext_from_illegal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: llvm.call + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: llvm.call + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_illegal_to_illegal_type" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_from_legal_to_legal_type" +4: "zext_from_legal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_from_legal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "zext_from_legal_to_legal_type" has unsupported operation: llvm.call + +4: "zext_from_legal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_from_legal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_legal_to_legal_type" has unsupported operation: llvm.call + +4: "zext_from_legal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.br + +1: "zext_from_illegal_to_legal_type" +4: "zext_from_illegal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_from_illegal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "zext_from_illegal_to_legal_type" has unsupported operation: llvm.call + +4: "zext_from_illegal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_from_illegal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_from_illegal_to_legal_type" has unsupported operation: llvm.call + +4: "zext_from_illegal_to_legal_type" has unsupported operation: builtin.unregistered: llvm.br + +1: "trunc_in_loop_exit_block" +4: "trunc_in_loop_exit_block" has unsupported operation: builtin.unregistered: llvm.br + +4: "trunc_in_loop_exit_block" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trunc_in_loop_exit_block" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "trunc_in_loop_exit_block" has unsupported operation: builtin.unregistered: llvm.br + +4: "trunc_in_loop_exit_block" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "zext_in_loop_and_exit_block" +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.br + +4: "zext_in_loop_and_exit_block" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/cast_ptr.txt b/SSA/Projects/InstCombine/tests/logs/cast_ptr.txt new file mode 100644 index 000000000..54f49ad1c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cast_ptr.txt @@ -0,0 +1,2 @@ +3: cast_ptr.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/catchswitch-phi.txt b/SSA/Projects/InstCombine/tests/logs/catchswitch-phi.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ceil.txt b/SSA/Projects/InstCombine/tests/logs/ceil.txt new file mode 100644 index 000000000..13f546df1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ceil.txt @@ -0,0 +1,21 @@ +1: "constant_fold_ceil_f32_01" +4: "constant_fold_ceil_f32_01" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +1: "constant_fold_ceil_f32_02" +4: "constant_fold_ceil_f32_02" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +1: "constant_fold_ceil_f32_03" +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 + +1: "constant_fold_ceil_f64_01" +4: "constant_fold_ceil_f64_01" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +1: "constant_fold_ceil_f64_02" +4: "constant_fold_ceil_f64_02" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +1: "constant_fold_ceil_f64_03" +4: "constant_fold_ceil_f64_03" 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 new file mode 100644 index 000000000..d6acc709a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/clamp-to-minmax.txt @@ -0,0 +1,306 @@ +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 + +4: "ui32_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.intr.umin + +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 + +4: "ui64_clamp_and_cast_to_float" has unsupported operation: builtin.unregistered: llvm.intr.umin + +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 + +4: "mixed_clamp_to_float_1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "mixed_clamp_to_float_1" has unsupported operation: builtin.unregistered: llvm.uitofp + +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 + +4: "mixed_clamp_to_float_2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "mixed_clamp_to_float_2" has unsupported operation: builtin.unregistered: llvm.uitofp + +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 + +4: "mixed_clamp_to_float_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "mixed_clamp_to_float_vec" has unsupported operation: builtin.unregistered: llvm.uitofp + diff --git a/SSA/Projects/InstCombine/tests/logs/cmp-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/cmp-intrinsic.txt new file mode 100644 index 000000000..9f77d526e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cmp-intrinsic.txt @@ -0,0 +1,343 @@ +1: "use6" +5: "use6" is empty + +1: "use8" +5: "use8" is empty + +1: "bswap_eq_i16" +4: "bswap_eq_i16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bswap_ne_i32" +4: "bswap_ne_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bswap_eq_v2i64" +4: "bswap_eq_v2i64" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_eq_bitwidth_i32" +4: "ctlz_eq_bitwidth_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_eq_zero_i32" +4: "ctlz_eq_zero_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ne_zero_v2i32" +4: "ctlz_ne_zero_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_eq_bw_minus_1_i32" +4: "ctlz_eq_bw_minus_1_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ne_bw_minus_1_v2i32" +4: "ctlz_ne_bw_minus_1_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_eq_other_i32" +4: "ctlz_eq_other_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ne_other_v2i32" +4: "ctlz_ne_other_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_eq_other_i32_multiuse" +4: "ctlz_eq_other_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "ctlz_eq_other_i32_multiuse" has unsupported operation: llvm.store + +4: "ctlz_eq_other_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ne_bitwidth_v2i32" +4: "ctlz_ne_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ugt_zero_i32" +4: "ctlz_ugt_zero_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ugt_one_i32" +4: "ctlz_ugt_one_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ugt_other_i32" +4: "ctlz_ugt_other_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ugt_other_multiuse_i32" +4: "ctlz_ugt_other_multiuse_i32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "ctlz_ugt_other_multiuse_i32" has unsupported operation: llvm.store + +4: "ctlz_ugt_other_multiuse_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ugt_bw_minus_one_i32" +4: "ctlz_ugt_bw_minus_one_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ult_one_v2i32" +4: "ctlz_ult_one_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ult_other_v2i32" +4: "ctlz_ult_other_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ult_other_multiuse_v2i32" +4: "ctlz_ult_other_multiuse_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "ctlz_ult_other_multiuse_v2i32" has unsupported operation: llvm.store + +4: "ctlz_ult_other_multiuse_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ult_bw_minus_one_v2i32" +4: "ctlz_ult_bw_minus_one_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctlz_ult_bitwidth_v2i32" +4: "ctlz_ult_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ne_bitwidth_i33" +4: "cttz_ne_bitwidth_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_eq_bitwidth_v2i32" +4: "cttz_eq_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_eq_zero_i33" +4: "cttz_eq_zero_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ne_zero_v2i32" +4: "cttz_ne_zero_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_eq_bw_minus_1_i33" +4: "cttz_eq_bw_minus_1_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ne_bw_minus_1_v2i32" +4: "cttz_ne_bw_minus_1_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_eq_other_i33" +4: "cttz_eq_other_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ne_other_v2i32" +4: "cttz_ne_other_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_eq_other_i33_multiuse" +4: "cttz_eq_other_i33_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_eq_other_i33_multiuse" has unsupported operation: llvm.store + +4: "cttz_eq_other_i33_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ugt_zero_i33" +4: "cttz_ugt_zero_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ugt_one_i33" +4: "cttz_ugt_one_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ugt_other_i33" +4: "cttz_ugt_other_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ugt_other_multiuse_i33" +4: "cttz_ugt_other_multiuse_i33" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_ugt_other_multiuse_i33" has unsupported operation: llvm.store + +4: "cttz_ugt_other_multiuse_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ugt_bw_minus_one_i33" +4: "cttz_ugt_bw_minus_one_i33" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ult_one_v2i32" +4: "cttz_ult_one_v2i32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "cttz_ult_other_v2i32" +4: "cttz_ult_other_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ult_other_multiuse_v2i32" +4: "cttz_ult_other_multiuse_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_ult_other_multiuse_v2i32" has unsupported operation: llvm.store + +4: "cttz_ult_other_multiuse_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ult_bw_minus_one_v2i32" +4: "cttz_ult_bw_minus_one_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cttz_ult_bitwidth_v2i32" +4: "cttz_ult_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_eq_zero_i11" +4: "ctpop_eq_zero_i11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_ne_zero_v2i32" +4: "ctpop_ne_zero_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_eq_bitwidth_i8" +4: "ctpop_eq_bitwidth_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_ne_bitwidth_v2i32" +4: "ctpop_ne_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_ugt_bitwidth_minus_one_i8" +4: "ctpop_ugt_bitwidth_minus_one_i8" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "ctpop_ugt_bitwidth_minus_one_i8" has unsupported operation: llvm.store + +4: "ctpop_ugt_bitwidth_minus_one_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ctpop_ult_bitwidth_v2i32" +4: "ctpop_ult_bitwidth_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_eq_other_i33_i15" +4: "trunc_cttz_eq_other_i33_i15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_ugt_other_i33_i15" +4: "trunc_cttz_ugt_other_i33_i15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_ult_other_i33_i6" +4: "trunc_cttz_ult_other_i33_i6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_ult_other_i33_i5" +4: "trunc_cttz_ult_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "trunc_cttz_ult_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_cttz_ult_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_true_ult_other_i32_i5" +4: "trunc_cttz_true_ult_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_false_ult_other_i32_i5" +4: "trunc_cttz_false_ult_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "trunc_cttz_false_ult_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_cttz_false_ult_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_false_ult_other_i32_i6" +4: "trunc_cttz_false_ult_other_i32_i6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_cttz_false_ult_other_i32_i6_extra_use" +4: "trunc_cttz_false_ult_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "trunc_cttz_false_ult_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_cttz_false_ult_other_i32_i6_extra_use" has unsupported operation: llvm.call + +4: "trunc_cttz_false_ult_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_ugt_zero_i32" +4: "trunc_ctlz_ugt_zero_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_ugt_one_i32" +4: "trunc_ctlz_ugt_one_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_ugt_other_i33_i6" +4: "trunc_ctlz_ugt_other_i33_i6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_ugt_other_i33_i5" +4: "trunc_ctlz_ugt_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "trunc_ctlz_ugt_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ctlz_ugt_other_i33_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_true_ugt_other_i32_i5" +4: "trunc_ctlz_true_ugt_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_false_ugt_other_i32_i5" +4: "trunc_ctlz_false_ugt_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "trunc_ctlz_false_ugt_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ctlz_false_ugt_other_i32_i5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_false_ugt_other_i32_i6" +4: "trunc_ctlz_false_ugt_other_i32_i6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctlz_false_ugt_other_i32_i6_extra_use" +4: "trunc_ctlz_false_ugt_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "trunc_ctlz_false_ugt_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ctlz_false_ugt_other_i32_i6_extra_use" has unsupported operation: llvm.call + +4: "trunc_ctlz_false_ugt_other_i32_i6_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctpop_eq_zero_i11" +4: "trunc_ctpop_eq_zero_i11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ctpop_eq_bitwidth_i8" +4: "trunc_ctpop_eq_bitwidth_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_negative_destbits_not_enough" +4: "trunc_negative_destbits_not_enough" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "trunc_negative_destbits_not_enough" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_negative_destbits_not_enough" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitreverse_ne_22" +4: "bitreverse_ne_22" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitreverse_ult_22_fail_not_equality_pred" +4: "bitreverse_ult_22_fail_not_equality_pred" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "bitreverse_ult_22_fail_not_equality_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitreverse_vec_eq_2_2" +4: "bitreverse_vec_eq_2_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitreverse_vec_eq_1_2_todo_no_splat" +4: "bitreverse_vec_eq_1_2_todo_no_splat" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "bitreverse_vec_eq_1_2_todo_no_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umax_eq_zero" +4: "umax_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umax_eq_1_fail" +4: "umax_eq_1_fail" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_eq_1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umax_sle_zero_fail" +4: "umax_sle_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sle_zero_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umax_ne_zero" +4: "umax_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umax_ne_zero_fail_multiuse" +4: "umax_ne_zero_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_ne_zero_fail_multiuse" has unsupported operation: llvm.call + +4: "umax_ne_zero_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uadd_sat_ne_zero_fail_multiuse" +4: "uadd_sat_ne_zero_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "uadd_sat_ne_zero_fail_multiuse" has unsupported operation: llvm.call + +4: "uadd_sat_ne_zero_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_ne_zero" +4: "ssub_sat_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_ne_fail_nonzero" +4: "ssub_sat_ne_fail_nonzero" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +4: "ssub_sat_ne_fail_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_eq_zero" +4: "ssub_sat_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_sle_zero" +4: "ssub_sat_sle_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_sge_zero" +4: "ssub_sat_sge_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_slt_zero" +4: "ssub_sat_slt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_slt_neg1_fail" +4: "ssub_sat_slt_neg1_fail" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +4: "ssub_sat_slt_neg1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_sgt_zero" +4: "ssub_sat_sgt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ssub_sat_sgt_one_fail" +4: "ssub_sat_sgt_one_fail" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +4: "ssub_sat_sgt_one_fail" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/cmp-x-vs-neg-x.txt b/SSA/Projects/InstCombine/tests/logs/cmp-x-vs-neg-x.txt new file mode 100644 index 000000000..15c18a346 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cmp-x-vs-neg-x.txt @@ -0,0 +1,55 @@ +1: "gen8" +5: "gen8" is empty + +1: "use8" +5: "use8" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t0_commutative" +4: "t0_commutative" has unsupported operation: llvm.call + +4: "t0_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t0_extrause" +4: "t0_extrause" has unsupported operation: llvm.call + +4: "t0_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5" +4: "t5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6" +4: "t6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7" +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9" +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10" +4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11" +4: "n11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12" +4: "n12" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/combine-is.fpclass-and-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/combine-is.fpclass-and-fcmp.txt new file mode 100644 index 000000000..80d012692 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/combine-is.fpclass-and-fcmp.txt @@ -0,0 +1,150 @@ +1: "fcmp_oeq_inf_or_class_normal" +4: "fcmp_oeq_inf_or_class_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_or_fcmp_oeq_inf" +4: "class_normal_or_fcmp_oeq_inf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_inf_or_class_normal_vector" +4: "fcmp_oeq_inf_or_class_normal_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_inf_multi_use_or_class_normal" +4: "fcmp_oeq_inf_multi_use_or_class_normal" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_inf_multi_use_or_class_normal" has unsupported operation: llvm.store + +4: "fcmp_oeq_inf_multi_use_or_class_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_inf_or_class_normal_multi_use" +4: "fcmp_oeq_inf_or_class_normal_multi_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_inf_or_class_normal_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "fcmp_oeq_inf_or_class_normal_multi_use" has unsupported operation: llvm.store + +1: "fcmp_ord_or_class_isnan" +4: "fcmp_ord_or_class_isnan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_or_class_isnan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_ord_or_class_isnan_wrong_operand" +4: "fcmp_ord_or_class_isnan_wrong_operand" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_or_class_isnan_wrong_operand" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_class_isnan" +4: "fcmp_ord_and_class_isnan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_class_isnan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_ord_or_class_isnan_commute" +4: "fcmp_ord_or_class_isnan_commute" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "fcmp_ord_or_class_isnan_commute" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_class_isnan_commute" +4: "fcmp_ord_and_class_isnan_commute" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "fcmp_ord_and_class_isnan_commute" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "fcmp_isfinite_and_class_subnormal" +4: "fcmp_isfinite_and_class_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_isfinite_or_class_subnormal" +4: "fcmp_isfinite_or_class_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_isfinite_or_class_subnormal" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_issubnormal_or_class_finite" +4: "fcmp_issubnormal_or_class_finite" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_issubnormal_or_class_finite" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "class_finite_or_fcmp_issubnormal" +4: "class_finite_or_fcmp_issubnormal" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "class_finite_or_fcmp_issubnormal" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_issubnormal_and_class_finite" +4: "fcmp_issubnormal_and_class_finite" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_inf_or_fcmp_issubnormal" +4: "class_inf_or_fcmp_issubnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_finite_or_fcmp_issubnormal_vector" +4: "class_finite_or_fcmp_issubnormal_vector" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "class_finite_or_fcmp_issubnormal_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_zero_or_class_normal" +4: "fcmp_oeq_zero_or_class_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_zero_or_class_normal_daz" +4: "fcmp_oeq_zero_or_class_normal_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_zero_or_class_normal_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_zero_or_class_normal_daz_v2f16" +4: "fcmp_oeq_zero_or_class_normal_daz_v2f16" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_zero_or_class_normal_daz_v2f16" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_zero_or_class_normal_dynamic" +4: "fcmp_oeq_zero_or_class_normal_dynamic" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_zero_or_class_normal_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_zero_or_class_normal_dynamic_v2f16" +4: "fcmp_oeq_zero_or_class_normal_dynamic_v2f16" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_zero_or_class_normal_dynamic_v2f16" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_or_fcmp_oeq_zero" +4: "class_normal_or_fcmp_oeq_zero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_ueq_zero_or_class_normal" +4: "fcmp_ueq_zero_or_class_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_or_fcmp_ueq_zero" +4: "class_normal_or_fcmp_ueq_zero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_one_zero_or_class_normal" +4: "fcmp_one_zero_or_class_normal" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_zero_or_class_normal_daz" +4: "fcmp_one_zero_or_class_normal_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_one_zero_or_class_normal_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_one_zero_or_class_normal_dynamic" +4: "fcmp_one_zero_or_class_normal_dynamic" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_one_zero_or_class_normal_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_or_fcmp_one_zero" +4: "class_normal_or_fcmp_one_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_zero_or_class_normal" +4: "fcmp_une_zero_or_class_normal" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "class_normal_or_fcmp_une_zero" +4: "class_normal_or_fcmp_une_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "class_normal_or_fcmp_une_zero_daz" +4: "class_normal_or_fcmp_une_zero_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "class_normal_or_fcmp_une_zero_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_or_fcmp_une_zero_dynamic" +4: "class_normal_or_fcmp_une_zero_dynamic" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "class_normal_or_fcmp_une_zero_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "fcmp_oeq_inf_xor_class_normal" +4: "fcmp_oeq_inf_xor_class_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "class_normal_xor_fcmp_oeq_inf" +4: "class_normal_xor_fcmp_oeq_inf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "llvm.canonicalize.f16" +5: "llvm.canonicalize.f16" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/commutative-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/commutative-intrinsics.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/commutative-operation-over-phis.txt b/SSA/Projects/InstCombine/tests/logs/commutative-operation-over-phis.txt new file mode 100644 index 000000000..f21418752 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/commutative-operation-over-phis.txt @@ -0,0 +1,2 @@ +3: commutative-operation-over-phis.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/commutative-operation-over-selects.txt b/SSA/Projects/InstCombine/tests/logs/commutative-operation-over-selects.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/compare-3way.txt b/SSA/Projects/InstCombine/tests/logs/compare-3way.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt b/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt new file mode 100644 index 000000000..16e616602 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/compare-alloca.txt @@ -0,0 +1,161 @@ +1: "alloca_argument_compare" +4: "alloca_argument_compare" has unsupported operation after optimization: llvm.alloca + +4: "alloca_argument_compare" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "alloca_argument_compare_swapped" +4: "alloca_argument_compare_swapped" has unsupported operation after optimization: llvm.alloca + +4: "alloca_argument_compare_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "alloca_argument_compare_ne" +4: "alloca_argument_compare_ne" has unsupported operation after optimization: llvm.alloca + +4: "alloca_argument_compare_ne" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "alloca_argument_compare_derived_ptrs" +4: "alloca_argument_compare_derived_ptrs" has unsupported operation after optimization: llvm.alloca + +4: "alloca_argument_compare_derived_ptrs" has unsupported operation after optimization: llvm.getelementptr + +4: "alloca_argument_compare_derived_ptrs" has unsupported operation after optimization: llvm.getelementptr + +4: "alloca_argument_compare_derived_ptrs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "escape" +5: "escape" is empty + +1: "alloca_argument_compare_escaped_alloca" +4: "alloca_argument_compare_escaped_alloca" has unsupported operation: llvm.alloca + +4: "alloca_argument_compare_escaped_alloca" has unsupported operation: llvm.call + +4: "alloca_argument_compare_escaped_alloca" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "check_compares" +5: "check_compares" is empty + +1: "alloca_argument_compare_two_compares" +4: "alloca_argument_compare_two_compares" has unsupported operation: llvm.call + +4: "alloca_argument_compare_two_compares" has unsupported operation: llvm.return + +1: "alloca_argument_compare_escaped_through_store" +4: "alloca_argument_compare_escaped_through_store" has unsupported operation: llvm.alloca + +4: "alloca_argument_compare_escaped_through_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "alloca_argument_compare_escaped_through_store" has unsupported operation: llvm.getelementptr + +4: "alloca_argument_compare_escaped_through_store" has unsupported operation: llvm.store + +1: "alloca_argument_compare_benign_instrs" +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: llvm.alloca + +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.start + +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: llvm.load + +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: llvm.store + +4: "alloca_argument_compare_benign_instrs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.end + +1: "allocator" +5: "allocator" is empty + +1: "alloca_call_compare" +4: "alloca_call_compare" has unsupported operation: llvm.call + +1: "hidden_inttoptr" +5: "hidden_inttoptr" is empty + +1: "hidden_offset" +5: "hidden_offset" is empty + +1: "ptrtoint_single_cmp" +4: "ptrtoint_single_cmp" has unsupported operation after optimization: llvm.alloca + +4: "ptrtoint_single_cmp" has unsupported operation after optimization: llvm.inttoptr + +4: "ptrtoint_single_cmp" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "offset_single_cmp" +4: "offset_single_cmp" has unsupported operation after optimization: llvm.alloca + +4: "offset_single_cmp" has unsupported operation after optimization: llvm.alloca + +4: "offset_single_cmp" has unsupported operation after optimization: llvm.getelementptr + +4: "offset_single_cmp" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "witness" +5: "witness" is empty + +1: "consistent_fold1" +4: "consistent_fold1" has unsupported operation: llvm.call + +4: "consistent_fold1" has unsupported operation: llvm.call + +4: "consistent_fold1" has unsupported operation: llvm.return + +1: "consistent_fold2" +4: "consistent_fold2" has unsupported operation: llvm.alloca + +4: "consistent_fold2" has unsupported operation: llvm.call + +4: "consistent_fold2" has unsupported operation: llvm.call + +4: "consistent_fold2" has unsupported operation: llvm.return + +1: "consistent_fold3" +4: "consistent_fold3" has unsupported operation: llvm.call + +4: "consistent_fold3" has unsupported operation: llvm.call + +4: "consistent_fold3" has unsupported operation: llvm.return + +1: "neg_consistent_fold4" +4: "neg_consistent_fold4" has unsupported operation: llvm.call + +4: "neg_consistent_fold4" has unsupported operation: llvm.return + +1: "unknown" +5: "unknown" is empty + +1: "consistent_nocapture_inttoptr" +4: "consistent_nocapture_inttoptr" has unsupported operation: llvm.alloca + +4: "consistent_nocapture_inttoptr" has unsupported operation: llvm.call + +1: "consistent_nocapture_offset" +4: "consistent_nocapture_offset" has unsupported operation: llvm.alloca + +4: "consistent_nocapture_offset" has unsupported operation: llvm.call + +1: "consistent_nocapture_through_global" +4: "consistent_nocapture_through_global" has unsupported operation: llvm.alloca + +4: "consistent_nocapture_through_global" has unsupported operation: llvm.call + +1: "select_alloca_unrelated_ptr" +4: "select_alloca_unrelated_ptr" has unsupported operation: llvm.alloca + +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 + +4: "select_alloca_unrelated_ptr" has unsupported operation: llvm.return + +1: "alloca_offset_icmp" +4: "alloca_offset_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "alloca_offset_icmp" has unsupported operation: llvm.call + +4: "alloca_offset_icmp" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/compare-signs.txt b/SSA/Projects/InstCombine/tests/logs/compare-signs.txt new file mode 100644 index 000000000..62bd47258 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/compare-signs.txt @@ -0,0 +1,80 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3vec" +4: "test3vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3vec_poison1" +4: "test3vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3vec_poison1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3vec_poison2" +4: "test3vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3vec_poison2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3vec_diff" +4: "test3vec_diff" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3vec_diff" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3vec_non-uniform" +4: "test3vec_non-uniform" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3vec_non-uniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3i" +4: "test3i" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3i" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test4a" +4: "test4a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4a_vec" +4: "test4a_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4b" +4: "test4b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4c" +4: "test4c" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4c_vec" +4: "test4c_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shift_trunc_signbit_test" +4: "shift_trunc_signbit_test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shift_trunc_signbit_test_vec_uses" +4: "shift_trunc_signbit_test_vec_uses" has unsupported operation: llvm.store + +4: "shift_trunc_signbit_test_vec_uses" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shift_trunc_signbit_test_vec_uses" has unsupported operation: llvm.store + +4: "shift_trunc_signbit_test_vec_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shift_trunc_wrong_shift" +4: "shift_trunc_wrong_shift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shift_trunc_wrong_cmp" +4: "shift_trunc_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shift_trunc_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt b/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt new file mode 100644 index 000000000..9129bbf20 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/compare-udiv.txt @@ -0,0 +1,104 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1vec" +4: "test1vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2vec" +4: "test2vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3vec" +4: "test3vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4vec" +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 + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test6vec" +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 + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test8vec" +4: "test8vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9vec" +4: "test9vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10vec" +4: "test10vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test11vec" +4: "test11vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12vec" +4: "test12vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test13vec" +4: "test13vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test14vec" +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 + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/compare-unescaped.txt b/SSA/Projects/InstCombine/tests/logs/compare-unescaped.txt new file mode 100644 index 000000000..fac8bd708 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/compare-unescaped.txt @@ -0,0 +1,224 @@ +1: "malloc" +5: "malloc" is empty + +1: "compare_global_trivialeq" +4: "compare_global_trivialeq" has unsupported operation after optimization: llvm.mlir.addressof + +4: "compare_global_trivialeq" has unsupported operation after optimization: llvm.call + +4: "compare_global_trivialeq" has unsupported operation after optimization: llvm.load + +4: "compare_global_trivialeq" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "compare_global_trivialne" +4: "compare_global_trivialne" has unsupported operation after optimization: llvm.mlir.addressof + +4: "compare_global_trivialne" has unsupported operation after optimization: llvm.call + +4: "compare_global_trivialne" has unsupported operation after optimization: llvm.load + +4: "compare_global_trivialne" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "f" +5: "f" is empty + +1: "compare_and_call_with_deopt" +4: "compare_and_call_with_deopt" has unsupported operation: llvm.call + +4: "compare_and_call_with_deopt" has unsupported operation: llvm.call + +1: "compare_ne_and_call_with_deopt" +4: "compare_ne_and_call_with_deopt" has unsupported operation: llvm.call + +4: "compare_ne_and_call_with_deopt" has unsupported operation: llvm.call + +1: "compare_ne_global_maybe_null" +4: "compare_ne_global_maybe_null" has unsupported operation: llvm.mlir.addressof + +4: "compare_ne_global_maybe_null" has unsupported operation: llvm.call + +4: "compare_ne_global_maybe_null" has unsupported operation: llvm.load + +4: "compare_ne_global_maybe_null" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_ne_global_maybe_null" has unsupported operation: llvm.call + +1: "escape" +5: "escape" is empty + +1: "compare_and_call_after" +4: "compare_and_call_after" has unsupported operation: llvm.mlir.addressof + +4: "compare_and_call_after" has unsupported operation: llvm.call + +4: "compare_and_call_after" has unsupported operation: llvm.load + +4: "compare_and_call_after" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_and_call_after" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_and_call_after" has unsupported operation: llvm.call + +1: "compare_distinct_mallocs" +4: "compare_distinct_mallocs" has unsupported operation after optimization: llvm.call + +4: "compare_distinct_mallocs" has unsupported operation after optimization: llvm.call + +4: "compare_distinct_mallocs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "compare_samepointer_under_bitcast" +4: "compare_samepointer_under_bitcast" has unsupported operation after optimization: llvm.call + +4: "compare_samepointer_under_bitcast" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "compare_samepointer_escaped" +4: "compare_samepointer_escaped" has unsupported operation: llvm.call + +4: "compare_samepointer_escaped" has unsupported operation: llvm.call + +1: "compare_ret_escape" +4: "compare_ret_escape" has unsupported operation: llvm.mlir.addressof + +4: "compare_ret_escape" has unsupported operation: llvm.call + +4: "compare_ret_escape" has unsupported operation: llvm.call + +4: "compare_ret_escape" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_ret_escape" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_ret_escape" has unsupported operation: llvm.load + +4: "compare_ret_escape" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_ret_escape" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "compare_distinct_pointer_escape" +4: "compare_distinct_pointer_escape" has unsupported operation: llvm.call + +4: "compare_distinct_pointer_escape" has unsupported operation: llvm.call + +1: "hidden_inttoptr" +5: "hidden_inttoptr" is empty + +1: "hidden_offset" +5: "hidden_offset" is empty + +1: "ptrtoint_single_cmp" +4: "ptrtoint_single_cmp" has unsupported operation: llvm.inttoptr + +4: "ptrtoint_single_cmp" has unsupported operation: llvm.call + +4: "ptrtoint_single_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "offset_single_cmp" +4: "offset_single_cmp" has unsupported operation after optimization: llvm.call + +4: "offset_single_cmp" has unsupported operation after optimization: llvm.call + +4: "offset_single_cmp" has unsupported operation after optimization: llvm.getelementptr + +4: "offset_single_cmp" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "witness" +5: "witness" is empty + +1: "neg_consistent_fold1" +4: "neg_consistent_fold1" has unsupported operation: llvm.inttoptr + +4: "neg_consistent_fold1" has unsupported operation: llvm.call + +4: "neg_consistent_fold1" has unsupported operation: llvm.call + +4: "neg_consistent_fold1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold1" has unsupported operation: llvm.call + +4: "neg_consistent_fold1" has unsupported operation: llvm.return + +1: "neg_consistent_fold2" +4: "neg_consistent_fold2" has unsupported operation: llvm.call + +4: "neg_consistent_fold2" has unsupported operation: llvm.call + +4: "neg_consistent_fold2" has unsupported operation: llvm.getelementptr + +4: "neg_consistent_fold2" has unsupported operation: llvm.call + +4: "neg_consistent_fold2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold2" has unsupported operation: llvm.call + +4: "neg_consistent_fold2" has unsupported operation: llvm.return + +1: "neg_consistent_fold3" +4: "neg_consistent_fold3" has unsupported operation: llvm.mlir.addressof + +4: "neg_consistent_fold3" has unsupported operation: llvm.call + +4: "neg_consistent_fold3" has unsupported operation: llvm.load + +4: "neg_consistent_fold3" has unsupported operation: llvm.call + +4: "neg_consistent_fold3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_consistent_fold3" has unsupported operation: llvm.call + +4: "neg_consistent_fold3" has unsupported operation: llvm.return + +1: "neg_consistent_fold4" +4: "neg_consistent_fold4" has unsupported operation: llvm.call + +4: "neg_consistent_fold4" has unsupported operation: llvm.return + +1: "unknown" +5: "unknown" is empty + +1: "consistent_nocapture_inttoptr" +4: "consistent_nocapture_inttoptr" has unsupported operation: llvm.inttoptr + +4: "consistent_nocapture_inttoptr" has unsupported operation: llvm.call + +4: "consistent_nocapture_inttoptr" has unsupported operation: llvm.call + +4: "consistent_nocapture_inttoptr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "consistent_nocapture_offset" +4: "consistent_nocapture_offset" has unsupported operation: llvm.call + +4: "consistent_nocapture_offset" has unsupported operation: llvm.call + +1: "consistent_nocapture_through_global" +4: "consistent_nocapture_through_global" has unsupported operation: llvm.call + +4: "consistent_nocapture_through_global" has unsupported operation: llvm.call + +1: "two_nonnull_mallocs" +4: "two_nonnull_mallocs" has unsupported operation after optimization: llvm.call + +4: "two_nonnull_mallocs" has unsupported operation after optimization: llvm.call + +4: "two_nonnull_mallocs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "two_nonnull_mallocs2" +4: "two_nonnull_mallocs2" has unsupported operation: llvm.call + +4: "two_nonnull_mallocs2" has unsupported operation: llvm.call + +1: "two_nonnull_mallocs_hidden" +4: "two_nonnull_mallocs_hidden" has unsupported operation: llvm.call + +4: "two_nonnull_mallocs_hidden" has unsupported operation: llvm.call + +4: "two_nonnull_mallocs_hidden" has unsupported operation: llvm.getelementptr + +4: "two_nonnull_mallocs_hidden" has unsupported operation: llvm.getelementptr + +4: "two_nonnull_mallocs_hidden" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt b/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt new file mode 100644 index 000000000..7008b553c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/conditional-negation.txt @@ -0,0 +1,111 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.select + +1: "t0_vec" +4: "t0_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.select + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "t2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t3_vec" +4: "t3_vec" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "extrause10_v1" has unsupported operation: llvm.call + +1: "extrause11_v1" +4: "extrause11_v1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "extrause11_v1" has unsupported operation: llvm.call + +4: "extrause11_v1" has unsupported operation: llvm.call + +1: "extrause001_v2" +4: "extrause001_v2" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "extrause011_v2" has unsupported operation: llvm.call + +4: "extrause011_v2" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "extrause101_v2" has unsupported operation: llvm.call + +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 + +4: "extrause110_v2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "extrause110_v2" has unsupported operation: llvm.call + +4: "extrause110_v2" has unsupported operation: llvm.call + +1: "extrause111_v2" +4: "extrause111_v2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "extrause111_v2" has unsupported operation: llvm.call + +4: "extrause111_v2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "extrause111_v2" has unsupported operation: llvm.call + +4: "extrause111_v2" has unsupported operation: llvm.call + +1: "use.i8" +5: "use.i8" is empty + +1: "gen.i8" +5: "gen.i8" is empty + 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 new file mode 100644 index 000000000..0e6277518 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/conditional-variable-length-signext-after-high-bit-extract.txt @@ -0,0 +1,622 @@ +1: "use1" +5: "use1" is empty + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +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 + +4: "t0_notrunc_add" has unsupported operation: llvm.call + +4: "t0_notrunc_add" has unsupported operation: llvm.call + +4: "t0_notrunc_add" has unsupported operation: llvm.call + +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 + +4: "t0_notrunc_or" has unsupported operation: llvm.call + +4: "t0_notrunc_or" has unsupported operation: llvm.call + +4: "t0_notrunc_or" has unsupported operation: llvm.call + +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 + +4: "t1_notrunc_sub" has unsupported operation: llvm.call + +4: "t1_notrunc_sub" has unsupported operation: llvm.call + +4: "t1_notrunc_sub" has unsupported operation: llvm.call + +1: "t2_trunc_add" +4: "t2_trunc_add" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_trunc_add" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t2_trunc_add" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: llvm.call + +4: "t2_trunc_add" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_trunc_or" +4: "t2_trunc_or" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_trunc_or" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t2_trunc_or" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: llvm.call + +4: "t2_trunc_or" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_trunc_sub" +4: "t3_trunc_sub" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_trunc_sub" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t3_trunc_sub" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: llvm.call + +4: "t3_trunc_sub" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "t4_commutativity0" has unsupported operation: llvm.call + +4: "t4_commutativity0" has unsupported operation: llvm.call + +4: "t4_commutativity0" has unsupported operation: llvm.call + +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 + +4: "t5_commutativity1" has unsupported operation: llvm.call + +4: "t5_commutativity1" has unsupported operation: llvm.call + +4: "t5_commutativity1" has unsupported operation: llvm.call + +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 + +4: "t6_commutativity2" has unsupported operation: llvm.call + +4: "t6_commutativity2" has unsupported operation: llvm.call + +4: "t6_commutativity2" has unsupported operation: llvm.call + +1: "t7_trunc_extrause0" +4: "t7_trunc_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t7_trunc_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t7_trunc_extrause0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: llvm.call + +4: "t7_trunc_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t8_trunc_extrause1" +4: "t8_trunc_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "t8_trunc_extrause1" has unsupported operation: llvm.call + +4: "t8_trunc_extrause1" has unsupported operation: llvm.call + +4: "t8_trunc_extrause1" has unsupported operation: llvm.call + +4: "t8_trunc_extrause1" has unsupported operation: llvm.call + +4: "t8_trunc_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n9_trunc_extrause2" +4: "n9_trunc_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n9_trunc_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "n9_trunc_extrause2" has unsupported operation: llvm.call + +4: "n9_trunc_extrause2" has unsupported operation: llvm.call + +4: "n9_trunc_extrause2" has unsupported operation: llvm.call + +4: "n9_trunc_extrause2" has unsupported operation: llvm.call + +4: "n9_trunc_extrause2" has unsupported operation: llvm.call + +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 + +4: "t10_preserve_exact" has unsupported operation: llvm.call + +4: "t10_preserve_exact" has unsupported operation: llvm.call + +4: "t10_preserve_exact" has unsupported operation: llvm.call + +1: "t11_different_zext_of_shamt" +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.zext + +4: "t11_different_zext_of_shamt" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +4: "t11_different_zext_of_shamt" has unsupported operation: llvm.call + +1: "t12_add_sext_of_magic" +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.icmp + +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 + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +4: "t12_add_sext_of_magic" has unsupported operation: llvm.call + +1: "t13_sub_zext_of_magic" +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.icmp + +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 + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +4: "t13_sub_zext_of_magic" has unsupported operation: llvm.call + +1: "t14_add_sext_of_shl" +4: "t14_add_sext_of_shl" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t14_add_sext_of_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t14_add_sext_of_shl" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +4: "t14_add_sext_of_shl" has unsupported operation: llvm.call + +1: "t15_sub_zext_of_shl" +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.icmp + +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.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 + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +4: "t15_sub_zext_of_shl" has unsupported operation: llvm.call + +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 + +4: "n16" has unsupported operation: llvm.call + +4: "n16" has unsupported operation: llvm.call + +4: "n16" has unsupported operation: llvm.call + +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 + +4: "n17_add" has unsupported operation: llvm.call + +4: "n17_add" has unsupported operation: llvm.call + +4: "n17_add" has unsupported operation: llvm.call + +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 + +4: "n18" has unsupported operation: llvm.call + +4: "n18" has unsupported operation: llvm.call + +4: "n18" has unsupported operation: llvm.call + +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 + +4: "n19" has unsupported operation: llvm.call + +4: "n19" has unsupported operation: llvm.call + +4: "n19" has unsupported operation: llvm.call + +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 + +4: "n20" has unsupported operation: llvm.call + +4: "n20" has unsupported operation: llvm.call + +4: "n20" has unsupported operation: llvm.call + +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 + +4: "n21" has unsupported operation: llvm.call + +4: "n21" has unsupported operation: llvm.call + +4: "n21" has unsupported operation: llvm.call + +1: "n22" +4: "n22" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n22" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "n22" has unsupported operation: llvm.call + +4: "n22" has unsupported operation: llvm.call + +4: "n22" has unsupported operation: llvm.call + +4: "n22" has unsupported operation: llvm.call + +4: "n22" has unsupported operation: llvm.call + +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 + +4: "n23" has unsupported operation: llvm.call + +4: "n23" has unsupported operation: llvm.call + +4: "n23" has unsupported operation: llvm.call + +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 + +4: "n24" has unsupported operation: llvm.call + +4: "n24" has unsupported operation: llvm.call + +4: "n24" has unsupported operation: llvm.call + +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 + +4: "n25_sub" has unsupported operation: llvm.call + +4: "n25_sub" has unsupported operation: llvm.call + +4: "n25_sub" has unsupported operation: llvm.call + +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 + +4: "n26" has unsupported operation: llvm.call + +4: "n26" has unsupported operation: llvm.call + +4: "n26" has unsupported operation: llvm.call + +1: "n27_add_zext_of_magic" +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.icmp + +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 + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +4: "n27_add_zext_of_magic" has unsupported operation: llvm.call + +1: "n28_sub_sext_of_magic" +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.icmp + +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 + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +4: "n28_sub_sext_of_magic" has unsupported operation: llvm.call + +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 + +4: "n290_or_with_wrong_magic" has unsupported operation: llvm.call + +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/consecutive-fences.txt b/SSA/Projects/InstCombine/tests/logs/consecutive-fences.txt new file mode 100644 index 000000000..2afbb1c61 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/consecutive-fences.txt @@ -0,0 +1,53 @@ +1: "tinkywinky" +4: "tinkywinky" has unsupported operation: builtin.unregistered: llvm.fence + +4: "tinkywinky" has unsupported operation: builtin.unregistered: llvm.fence + +4: "tinkywinky" has unsupported operation: llvm.return + +1: "test_target_dependent_scope" +4: "test_target_dependent_scope" has unsupported operation: builtin.unregistered: llvm.fence + +4: "test_target_dependent_scope" has unsupported operation: llvm.return + +1: "dipsy" +4: "dipsy" has unsupported operation: builtin.unregistered: llvm.fence + +4: "dipsy" has unsupported operation: builtin.unregistered: llvm.fence + +4: "dipsy" has unsupported operation: llvm.return + +1: "patatino" +4: "patatino" has unsupported operation: builtin.unregistered: llvm.fence + +4: "patatino" has unsupported operation: llvm.return + +1: "weaker_fence_1" +4: "weaker_fence_1" has unsupported operation: builtin.unregistered: llvm.fence + +4: "weaker_fence_1" has unsupported operation: llvm.return + +1: "weaker_fence_2" +4: "weaker_fence_2" has unsupported operation: builtin.unregistered: llvm.fence + +4: "weaker_fence_2" has unsupported operation: llvm.return + +1: "acquire_global_neg_test" +4: "acquire_global_neg_test" has unsupported operation: builtin.unregistered: llvm.fence + +4: "acquire_global_neg_test" has unsupported operation: builtin.unregistered: llvm.fence + +4: "acquire_global_neg_test" has unsupported operation: llvm.return + +1: "acquire_single_thread_scope" +4: "acquire_single_thread_scope" has unsupported operation: builtin.unregistered: llvm.fence + +4: "acquire_single_thread_scope" has unsupported operation: llvm.return + +1: "debug" +4: "debug" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "debug" has unsupported operation: builtin.unregistered: llvm.fence + +4: "debug" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/consecutive-ptrmask.txt b/SSA/Projects/InstCombine/tests/logs/consecutive-ptrmask.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/constant-expr-datalayout.txt b/SSA/Projects/InstCombine/tests/logs/constant-expr-datalayout.txt new file mode 100644 index 000000000..a2cac5b1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-expr-datalayout.txt @@ -0,0 +1,14 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.return + +1: "OpenFilter" +4: "OpenFilter" has unsupported operation: llvm.mlir.addressof + +4: "OpenFilter" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "OpenFilter" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "OpenFilter" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-address-space-pointer.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-address-space-pointer.txt new file mode 100644 index 000000000..e068f8def --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-address-space-pointer.txt @@ -0,0 +1,150 @@ +1: "test_constant_fold_inttoptr_as_pointer_same_size" +4: "test_constant_fold_inttoptr_as_pointer_same_size" has unsupported operation: llvm.mlir.addressof + +1: "test_constant_fold_inttoptr_as_pointer_smaller" +4: "test_constant_fold_inttoptr_as_pointer_smaller" has unsupported operation: llvm.mlir.addressof + +1: "test_constant_fold_inttoptr_as_pointer_smaller_different_as" +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_as" has unsupported operation: llvm.mlir.addressof + +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_as" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_as" has unsupported operation: llvm.inttoptr + +1: "test_constant_fold_inttoptr_as_pointer_smaller_different_size_as" +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_size_as" has unsupported operation: llvm.mlir.addressof + +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_size_as" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_constant_fold_inttoptr_as_pointer_smaller_different_size_as" has unsupported operation: llvm.inttoptr + +1: "test_constant_fold_inttoptr_as_pointer_larger" +4: "test_constant_fold_inttoptr_as_pointer_larger" has unsupported operation: llvm.mlir.addressof + +4: "test_constant_fold_inttoptr_as_pointer_larger" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_constant_fold_inttoptr_as_pointer_larger" has unsupported operation: llvm.inttoptr + +1: "const_fold_ptrtoint" +4: "const_fold_ptrtoint" has unsupported operation after optimization: llvm.inttoptr + +4: "const_fold_ptrtoint" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "const_fold_ptrtoint_mask" +4: "const_fold_ptrtoint_mask" has unsupported operation after optimization: llvm.inttoptr + +4: "const_fold_ptrtoint_mask" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "const_fold_ptrtoint_mask_small_as0" +4: "const_fold_ptrtoint_mask_small_as0" has unsupported operation after optimization: llvm.inttoptr + +4: "const_fold_ptrtoint_mask_small_as0" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "const_inttoptr" +4: "const_inttoptr" has unsupported operation: llvm.inttoptr + +1: "const_ptrtoint" +4: "const_ptrtoint" has unsupported operation: llvm.mlir.addressof + +4: "const_ptrtoint" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "const_inttoptr_ptrtoint" +7: "const_inttoptr_ptrtoint" is unchanged by InstCombine + +1: "constant_fold_cmp_constantexpr_inttoptr" +4: "constant_fold_cmp_constantexpr_inttoptr" has unsupported operation after optimization: llvm.mlir.zero + +4: "constant_fold_cmp_constantexpr_inttoptr" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "constant_fold_inttoptr_null" +4: "constant_fold_inttoptr_null" has unsupported operation after optimization: llvm.inttoptr + +4: "constant_fold_inttoptr_null" has unsupported operation after optimization: llvm.mlir.zero + +4: "constant_fold_inttoptr_null" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "constant_fold_ptrtoint_null" +4: "constant_fold_ptrtoint_null" has unsupported operation: llvm.mlir.addressof + +4: "constant_fold_ptrtoint_null" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constant_fold_ptrtoint_null" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "constant_fold_ptrtoint_null_2" +4: "constant_fold_ptrtoint_null_2" has unsupported operation: llvm.mlir.addressof + +4: "constant_fold_ptrtoint_null_2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constant_fold_ptrtoint_null_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "constant_fold_ptrtoint" +4: "constant_fold_ptrtoint" has unsupported operation after optimization: llvm.mlir.addressof + +4: "constant_fold_ptrtoint" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "constant_fold_ptrtoint" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "constant_fold_inttoptr" +4: "constant_fold_inttoptr" has unsupported operation after optimization: llvm.inttoptr + +4: "constant_fold_inttoptr" has unsupported operation after optimization: llvm.inttoptr + +4: "constant_fold_inttoptr" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "constant_fold_bitcast_ftoi_load" +4: "constant_fold_bitcast_ftoi_load" has unsupported operation: llvm.mlir.addressof + +4: "constant_fold_bitcast_ftoi_load" has unsupported operation: llvm.load + +1: "constant_fold_bitcast_itof_load" +4: "constant_fold_bitcast_itof_load" has unsupported operation: llvm.mlir.addressof + +4: "constant_fold_bitcast_itof_load" has unsupported operation: llvm.load + +1: "constant_fold_bitcast_vector_as" +4: "constant_fold_bitcast_vector_as" has unsupported operation: llvm.mlir.addressof + +4: "constant_fold_bitcast_vector_as" has unsupported operation: llvm.load + +1: "test_cast_gep_small_indices_as" +4: "test_cast_gep_small_indices_as" has unsupported operation: llvm.mlir.addressof + +4: "test_cast_gep_small_indices_as" has unsupported operation: llvm.load + +1: "test_cast_gep_large_indices_as" +4: "test_cast_gep_large_indices_as" has unsupported operation: llvm.mlir.addressof + +4: "test_cast_gep_large_indices_as" has unsupported operation: llvm.load + +1: "test_constant_cast_gep_struct_indices_as" +4: "test_constant_cast_gep_struct_indices_as" has unsupported operation: llvm.mlir.addressof + +4: "test_constant_cast_gep_struct_indices_as" has unsupported operation: llvm.getelementptr + +4: "test_constant_cast_gep_struct_indices_as" has unsupported operation: llvm.load + +1: "test_read_data_from_global_as3" +4: "test_read_data_from_global_as3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_read_data_from_global_as3" has unsupported operation after optimization: llvm.getelementptr + +4: "test_read_data_from_global_as3" has unsupported operation after optimization: llvm.load + +1: "constant_through_array_as_ptrs" +4: "constant_through_array_as_ptrs" has unsupported operation after optimization: llvm.mlir.addressof + +4: "constant_through_array_as_ptrs" has unsupported operation after optimization: llvm.load + +4: "constant_through_array_as_ptrs" has unsupported operation after optimization: llvm.load + +4: "constant_through_array_as_ptrs" has unsupported operation after optimization: llvm.load + +1: "canonicalize_addrspacecast" +4: "canonicalize_addrspacecast" has unsupported operation: llvm.mlir.addressof + +4: "canonicalize_addrspacecast" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "canonicalize_addrspacecast" has unsupported operation: llvm.getelementptr + +4: "canonicalize_addrspacecast" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-alias.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-alias.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-compare.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-compare.txt new file mode 100644 index 000000000..29a14f70d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-compare.txt @@ -0,0 +1,9 @@ +1: "a" +4: "a" has unsupported operation after optimization: llvm.mlir.addressof + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-gep.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-gep.txt new file mode 100644 index 000000000..91eb4f526 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-gep.txt @@ -0,0 +1,2 @@ +3: constant-fold-gep.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-iteration.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-iteration.txt new file mode 100644 index 000000000..29a14f70d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-iteration.txt @@ -0,0 +1,9 @@ +1: "a" +4: "a" has unsupported operation after optimization: llvm.mlir.addressof + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "a" has unsupported operation after optimization: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-libfunc.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-libfunc.txt new file mode 100644 index 000000000..698bc2e4e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-libfunc.txt @@ -0,0 +1,12 @@ +1: "acos" +5: "acos" is empty + +1: "test_simplify_acos" +4: "test_simplify_acos" has unsupported operation after optimization: llvm.call + +1: "test_acos_nobuiltin" +4: "test_acos_nobuiltin" has unsupported operation: llvm.call + +1: "test_acos_strictfp" +4: "test_acos_strictfp" 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 new file mode 100644 index 000000000..dbd474a52 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-math.txt @@ -0,0 +1,21 @@ +1: "constant_fold_fma_f32" +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 + +1: "constant_fold_fmuladd_f32" +4: "constant_fold_fmuladd_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fmuladd + +1: "constant_fold_fma_f64" +4: "constant_fold_fma_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fma + +1: "constant_fold_fmuladd_f64" +4: "constant_fold_fmuladd_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fmuladd + +1: "constant_fold_frem_f32" +4: "constant_fold_frem_f32" has unsupported operation after optimization: builtin.unregistered: llvm.frem + +1: "constant_fold_frem_f64" +4: "constant_fold_frem_f64" has unsupported operation after optimization: builtin.unregistered: llvm.frem + diff --git a/SSA/Projects/InstCombine/tests/logs/constant-fold-shifts.txt b/SSA/Projects/InstCombine/tests/logs/constant-fold-shifts.txt new file mode 100644 index 000000000..51bebb4a8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/constant-fold-shifts.txt @@ -0,0 +1,18 @@ +1: "ossfuzz_14169_test1" +4: "ossfuzz_14169_test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ossfuzz_14169_test1" has unsupported operation: llvm.mlir.undef + +4: "ossfuzz_14169_test1" has unsupported operation: llvm.store + +4: "ossfuzz_14169_test1" has unsupported operation: llvm.return + +1: "ossfuzz_14169_test2" +4: "ossfuzz_14169_test2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ossfuzz_14169_test2" has unsupported operation: llvm.mlir.undef + +4: "ossfuzz_14169_test2" has unsupported operation: llvm.store + +4: "ossfuzz_14169_test2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/constrained.txt b/SSA/Projects/InstCombine/tests/logs/constrained.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/convergent.txt b/SSA/Projects/InstCombine/tests/logs/convergent.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/copysign-fneg-fabs.txt b/SSA/Projects/InstCombine/tests/logs/copysign-fneg-fabs.txt new file mode 100644 index 000000000..f40d6f1ae --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/copysign-fneg-fabs.txt @@ -0,0 +1,147 @@ +1: "copysign_fneg_x" +4: "copysign_fneg_x" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_fabs_x" +4: "copysign_fabs_x" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_fneg_fabs_x" +4: "copysign_fneg_fabs_x" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_fneg_y" +4: "copysign_fneg_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "copysign_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_fabs_y" +4: "copysign_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "copysign_fneg_fabs_y" +4: "copysign_fneg_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "copysign_fneg_fabs_y" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_copysign" +4: "fneg_copysign" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_copysign" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fneg_fabs_copysign" +4: "fneg_fabs_copysign" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fabs_copysign" +4: "fabs_copysign" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fneg_copysign_vector" +4: "fneg_copysign_vector" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_copysign_vector" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fneg_fabs_copysign_vector" +4: "fneg_fabs_copysign_vector" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign_vector" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fabs_copysign_vector" +4: "fabs_copysign_vector" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fneg_copysign_flags" +4: "fneg_copysign_flags" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_copysign_flags" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fneg_fabs_copysign_flags" +4: "fneg_fabs_copysign_flags" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign_flags" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_nsz_copysign" +4: "fneg_nsz_copysign" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_nsz_copysign" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fneg_fabs_copysign_flags_none_fabs" +4: "fneg_fabs_copysign_flags_none_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign_flags_none_fabs" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fabs_copysign_flags" +4: "fabs_copysign_flags" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_all_flags" +4: "fabs_copysign_all_flags" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_no_flags_copysign_user" +4: "fabs_copysign_no_flags_copysign_user" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fabs_copysign_no_flags_copysign_user" has unsupported operation: llvm.store + +4: "fabs_copysign_no_flags_copysign_user" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fneg_fabs_copysign_drop_flags" +4: "fneg_fabs_copysign_drop_flags" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign_drop_flags" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_copysign_multi_use" +4: "fneg_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fneg_copysign_multi_use" has unsupported operation: llvm.store + +4: "fneg_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fabs_copysign_multi_use" +4: "fabs_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fabs_copysign_multi_use" has unsupported operation: llvm.store + +4: "fabs_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_flags_copysign_multi_use" +4: "fabs_flags_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fabs_flags_copysign_multi_use" has unsupported operation: llvm.store + +4: "fabs_flags_copysign_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fneg_fabs_copysign_multi_use_fabs" +4: "fneg_fabs_copysign_multi_use_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fneg_fabs_copysign_multi_use_fabs" has unsupported operation: llvm.store + +1: "copysign_pos" +4: "copysign_pos" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_neg" +4: "copysign_neg" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_negzero" +4: "copysign_negzero" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_negnan" +4: "copysign_negnan" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_neginf" +4: "copysign_neginf" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_splat" +4: "copysign_splat" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_vec4" +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "copysign_vec4" has unsupported operation: llvm.mlir.undef + +4: "copysign_vec4" has unsupported operation: llvm.mlir.undef + +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "copysign_vec4" has unsupported operation: builtin.unregistered: llvm.intr.copysign + diff --git a/SSA/Projects/InstCombine/tests/logs/copysign.txt b/SSA/Projects/InstCombine/tests/logs/copysign.txt new file mode 100644 index 000000000..81428ad95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/copysign.txt @@ -0,0 +1,36 @@ +1: "positive_sign_arg" +4: "positive_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "positive_sign_arg_vec_splat" +4: "positive_sign_arg_vec_splat" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negative_sign_arg" +4: "negative_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negative_sign_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negative_sign_arg_vec_splat" +4: "negative_sign_arg_vec_splat" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negative_sign_arg_vec_splat" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "known_positive_sign_arg" +4: "known_positive_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "known_positive_sign_arg_vec" +4: "known_positive_sign_arg_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "not_known_positive_sign_arg" +4: "not_known_positive_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "not_known_positive_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "copysign_sign_arg" +4: "copysign_sign_arg" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fneg_mag" +4: "fneg_mag" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_mag" +4: "fabs_mag" has unsupported operation: builtin.unregistered: llvm.intr.copysign + diff --git a/SSA/Projects/InstCombine/tests/logs/cos-1.txt b/SSA/Projects/InstCombine/tests/logs/cos-1.txt new file mode 100644 index 000000000..df52c1f67 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cos-1.txt @@ -0,0 +1,190 @@ +1: "cos" +5: "cos" is empty + +1: "cosf" +5: "cosf" is empty + +1: "sin" +5: "sin" is empty + +1: "sinf" +5: "sinf" is empty + +1: "tan" +5: "tan" is empty + +1: "tanl" +5: "tanl" is empty + +1: "fabs" +5: "fabs" is empty + +1: "fabsf" +5: "fabsf" is empty + +1: "cos_negated_arg" +4: "cos_negated_arg" has unsupported operation: llvm.call + +1: "cos_negated_arg_tail" +4: "cos_negated_arg_tail" has unsupported operation: llvm.call + +1: "cos_negated_arg_musttail" +4: "cos_negated_arg_musttail" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "cos_negated_arg_musttail" has unsupported operation: llvm.call + +1: "cos_unary_negated_arg" +4: "cos_unary_negated_arg" has unsupported operation: llvm.call + +1: "cosf_negated_arg" +4: "cosf_negated_arg" has unsupported operation: llvm.call + +1: "cosf_unary_negated_arg" +4: "cosf_unary_negated_arg" has unsupported operation: llvm.call + +1: "cosf_negated_arg_FMF" +4: "cosf_negated_arg_FMF" has unsupported operation: llvm.call + +1: "cosf_unary_negated_arg_FMF" +4: "cosf_unary_negated_arg_FMF" has unsupported operation: llvm.call + +1: "cos_unary_fabs_arg" +4: "cos_unary_fabs_arg" has unsupported operation: llvm.call + +1: "cosf_unary_fabs_arg" +4: "cosf_unary_fabs_arg" has unsupported operation: llvm.call + +1: "cosf_unary_fabs_arg_FMF" +4: "cosf_unary_fabs_arg_FMF" has unsupported operation: llvm.call + +1: "cos_copysign_arg" +4: "cos_copysign_arg" has unsupported operation: llvm.call + +1: "cosf_unary_copysign_arg" +4: "cosf_unary_copysign_arg" has unsupported operation: llvm.call + +1: "cosf_copysign_arg_FMF" +4: "cosf_copysign_arg_FMF" has unsupported operation: llvm.call + +1: "sin_negated_arg" +4: "sin_negated_arg" has unsupported operation: llvm.call + +4: "sin_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "sin_unary_negated_arg" +4: "sin_unary_negated_arg" has unsupported operation: llvm.call + +4: "sin_unary_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "sin_unary_negated_arg_musttail" +4: "sin_unary_negated_arg_musttail" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "sin_unary_negated_arg_musttail" has unsupported operation: llvm.call + +1: "sinf_negated_arg" +4: "sinf_negated_arg" has unsupported operation: llvm.call + +4: "sinf_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "sinf_unary_negated_arg" +4: "sinf_unary_negated_arg" has unsupported operation: llvm.call + +4: "sinf_unary_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "sinf_negated_arg_FMF" +4: "sinf_negated_arg_FMF" has unsupported operation: llvm.call + +4: "sinf_negated_arg_FMF" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "sinf_unary_negated_arg_FMF" +4: "sinf_unary_negated_arg_FMF" has unsupported operation: llvm.call + +4: "sinf_unary_negated_arg_FMF" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "use" +5: "use" is empty + +1: "sin_negated_arg_extra_use" +4: "sin_negated_arg_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "sin_negated_arg_extra_use" has unsupported operation: llvm.call + +4: "sin_negated_arg_extra_use" has unsupported operation: llvm.call + +1: "sin_unary_negated_arg_extra_use" +4: "sin_unary_negated_arg_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "sin_unary_negated_arg_extra_use" has unsupported operation: llvm.call + +4: "sin_unary_negated_arg_extra_use" has unsupported operation: llvm.call + +1: "neg_sin_negated_arg" +4: "neg_sin_negated_arg" has unsupported operation: llvm.call + +1: "unary_neg_sin_unary_negated_arg" +4: "unary_neg_sin_unary_negated_arg" has unsupported operation: llvm.call + +1: "neg_sin_unary_negated_arg" +4: "neg_sin_unary_negated_arg" has unsupported operation: llvm.call + +1: "unary_neg_sin_negated_arg" +4: "unary_neg_sin_negated_arg" has unsupported operation: llvm.call + +1: "tan_negated_arg" +4: "tan_negated_arg" has unsupported operation: llvm.call + +4: "tan_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "tan_negated_arg_tail" +4: "tan_negated_arg_tail" has unsupported operation: llvm.call + +4: "tan_negated_arg_tail" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "tan_negated_arg_musttail" +4: "tan_negated_arg_musttail" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "tan_negated_arg_musttail" has unsupported operation: llvm.call + +1: "tan_unary_negated_arg" +4: "tan_unary_negated_arg" has unsupported operation: llvm.call + +4: "tan_unary_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "tanl_negated_arg" +4: "tanl_negated_arg" has unsupported operation: llvm.call + +4: "tanl_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "tanl_unary_negated_arg" +4: "tanl_unary_negated_arg" has unsupported operation: llvm.call + +4: "tanl_unary_negated_arg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negated_and_shrinkable_libcall" +4: "negated_and_shrinkable_libcall" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "negated_and_shrinkable_libcall" has unsupported operation: llvm.call + +4: "negated_and_shrinkable_libcall" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "unary_negated_and_shrinkable_libcall" +4: "unary_negated_and_shrinkable_libcall" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "unary_negated_and_shrinkable_libcall" has unsupported operation: llvm.call + +4: "unary_negated_and_shrinkable_libcall" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "negated_and_shrinkable_intrinsic" +4: "negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "unary_negated_and_shrinkable_intrinsic" +4: "unary_negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "unary_negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "unary_negated_and_shrinkable_intrinsic" has unsupported operation: builtin.unregistered: llvm.fptrunc + diff --git a/SSA/Projects/InstCombine/tests/logs/cos-2.txt b/SSA/Projects/InstCombine/tests/logs/cos-2.txt new file mode 100644 index 000000000..ec7919a50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cos-2.txt @@ -0,0 +1,19 @@ +1: "cos" +5: "cos" is empty + +1: "sqrt" +5: "sqrt" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "bogus_sqrt" +4: "bogus_sqrt" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/cos-sin-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/cos-sin-intrinsic.txt new file mode 100644 index 000000000..2faca9cc4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cos-sin-intrinsic.txt @@ -0,0 +1,63 @@ +1: "undef_arg" +4: "undef_arg" has unsupported operation after optimization: llvm.mlir.undef + +4: "undef_arg" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cos + +1: "undef_arg2" +4: "undef_arg2" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "undef_arg2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fneg_f32" +4: "fneg_f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "unary_fneg_f32" +4: "unary_fneg_f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fneg_v2f32" +4: "fneg_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "unary_fneg_v2f32" +4: "unary_fneg_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fneg_cos_fmf" +4: "fneg_cos_fmf" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "unary_fneg_cos_fmf" +4: "unary_fneg_cos_fmf" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fabs_f32" +4: "fabs_f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fabs_fneg_f32" +4: "fabs_fneg_f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fabs_unary_fneg_f32" +4: "fabs_unary_fneg_f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fabs_fneg_v2f32" +4: "fabs_fneg_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fabs_unary_fneg_v2f32" +4: "fabs_unary_fneg_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.cos + +1: "fneg_sin" +4: "fneg_sin" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fneg_sin" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_fneg_sin" +4: "unary_fneg_sin" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "unary_fneg_sin" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_sin_fmf" +4: "fneg_sin_fmf" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fneg_sin_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_fneg_sin_fmf" +4: "unary_fneg_sin_fmf" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "unary_fneg_sin_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + diff --git a/SSA/Projects/InstCombine/tests/logs/crash.txt b/SSA/Projects/InstCombine/tests/logs/crash.txt new file mode 100644 index 000000000..f778bcd5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/crash.txt @@ -0,0 +1,2 @@ +3: crash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/create-class-from-logic-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/create-class-from-logic-fcmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-bitreverse.txt b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-bitreverse.txt new file mode 100644 index 000000000..0aaa9eb87 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-bitreverse.txt @@ -0,0 +1,18 @@ +1: "ctlz_true_bitreverse" +4: "ctlz_true_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctlz_true_bitreverse_vec" +4: "ctlz_true_bitreverse_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctlz_false_bitreverse" +4: "ctlz_false_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_true_bitreverse" +4: "cttz_true_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "cttz_true_bitreverse_vec" +4: "cttz_true_bitreverse_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "cttz_false_bitreverse" +4: "cttz_false_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + diff --git a/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt new file mode 100644 index 000000000..55e78691a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctlz-cttz-shifts.txt @@ -0,0 +1,57 @@ +1: "lshr_ctlz_true" +4: "lshr_ctlz_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +1: "shl_nuw_ctlz_true" +4: "shl_nuw_ctlz_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +1: "shl_nuw_nsw_ctlz_true" +4: "shl_nuw_nsw_ctlz_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +1: "lshr_exact_cttz_true" +4: "lshr_exact_cttz_true" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz + +1: "shl_cttz_true" +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 + +1: "vec2_shl_nuw_ctlz_true" +"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 + +1: "vec2_lshr_exact_cttz_true" +"vec2_lshr_exact_cttz_true" contains vectors which are unsupported + +1: "vec2_shl_cttz_true" +"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 + +1: "vec2_lshr_ctlz_false_neg" +4: "vec2_lshr_ctlz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "vec2_shl_ctlz_false_neg" +4: "vec2_shl_ctlz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "vec2_lshr_cttz_false_neg" +4: "vec2_lshr_cttz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "vec2_shl_cttz_false_neg" +4: "vec2_shl_cttz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "lshr_ctlz_faslse_neg" +4: "lshr_ctlz_faslse_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "shl_ctlz_false_neg" +4: "shl_ctlz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "lshr_cttz_false_neg" +4: "lshr_cttz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "shl_cttz_false_neg" +4: "shl_cttz_false_neg" has unsupported operation: builtin.unregistered: llvm.intr.cttz + diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop-bswap-bitreverse.txt b/SSA/Projects/InstCombine/tests/logs/ctpop-bswap-bitreverse.txt new file mode 100644 index 000000000..2dfa6557e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctpop-bswap-bitreverse.txt @@ -0,0 +1,12 @@ +1: "ctpop_bitreverse" +4: "ctpop_bitreverse" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_bitreverse_vec" +4: "ctpop_bitreverse_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_bswap" +4: "ctpop_bswap" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_bswap_vec" +4: "ctpop_bswap_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop-cttz.txt b/SSA/Projects/InstCombine/tests/logs/ctpop-cttz.txt new file mode 100644 index 000000000..fe29d6569 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctpop-cttz.txt @@ -0,0 +1,27 @@ +1: "ctpop1" +4: "ctpop1" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop1v" +4: "ctpop1v" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop1_multiuse" +4: "ctpop1_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop2" +4: "ctpop2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop2v" +4: "ctpop2v" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop2_multiuse" +4: "ctpop2_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop3" +4: "ctpop3" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop3v" +4: "ctpop3v" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ctpop3v_poison" +4: "ctpop3v_poison" has unsupported operation: builtin.unregistered: llvm.intr.cttz + diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt b/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt new file mode 100644 index 000000000..cfddeabdc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctpop-pow2.txt @@ -0,0 +1,47 @@ +1: "ctpop_x_and_negx" +4: "ctpop_x_and_negx" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ctpop_x_and_negx" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ctpop_x_nz_and_negx" +4: "ctpop_x_nz_and_negx" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_2_shl" +4: "ctpop_2_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ctpop_2_shl" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ctpop_2_shl_nz" +4: "ctpop_2_shl_nz" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_imin_plus1_lshr_nz" +4: "ctpop_imin_plus1_lshr_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ctpop_imin_plus1_lshr_nz" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "ctpop_imin_plus1_lshr_nz" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_x_and_negx_nz" +4: "ctpop_x_and_negx_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ctpop_x_and_negx_nz" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "ctpop_shl2_1_vec" +4: "ctpop_shl2_1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ctpop_shl2_1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ctpop_lshr_intmin_intmin_plus1_vec_nz" +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 + +1: "ctpop_x_and_negx_vec" +4: "ctpop_x_and_negx_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/ctpop.txt b/SSA/Projects/InstCombine/tests/logs/ctpop.txt new file mode 100644 index 000000000..a43d184f3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ctpop.txt @@ -0,0 +1,171 @@ +1: "use" +5: "use" is empty + +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test5vec" +"test5vec" contains vectors which are unsupported + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +1: "mask_one_bit" +4: "mask_one_bit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +1: "mask_one_bit_splat" +4: "mask_one_bit_splat" has unsupported operation: llvm.store + +1: "_parity_of_not" +4: "_parity_of_not" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "_parity_of_not_odd_type" +4: "_parity_of_not_odd_type" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "_parity_of_not_vec" +4: "_parity_of_not_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "_parity_of_not_poison" +4: "_parity_of_not_poison" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "_parity_of_not_poison2" +4: "_parity_of_not_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "_parity_of_not_poison2" has unsupported operation: llvm.mlir.undef + +4: "_parity_of_not_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "_parity_of_not_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "_parity_of_not_poison2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_add" +4: "ctpop_add" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "ctpop_add" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_add_no_common_bits" +4: "ctpop_add_no_common_bits" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "ctpop_add_no_common_bits" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_add_no_common_bits_vec" +4: "ctpop_add_no_common_bits_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "ctpop_add_no_common_bits_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_add_no_common_bits_vec_use" +4: "ctpop_add_no_common_bits_vec_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "ctpop_add_no_common_bits_vec_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "ctpop_add_no_common_bits_vec_use" has unsupported operation: llvm.store + +1: "ctpop_add_no_common_bits_vec_use2" +4: "ctpop_add_no_common_bits_vec_use2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "ctpop_add_no_common_bits_vec_use2" has unsupported operation: llvm.store + +4: "ctpop_add_no_common_bits_vec_use2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_rotate_left" +4: "ctpop_rotate_left" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_rotate_right" +4: "ctpop_rotate_right" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "sub_ctpop" +4: "sub_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "sub_ctpop_wrong_cst" +4: "sub_ctpop_wrong_cst" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "sub_ctpop_unknown" +4: "sub_ctpop_unknown" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "sub_ctpop_vec" +4: "sub_ctpop_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "sub_ctpop_vec_extra_use" +4: "sub_ctpop_vec_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "sub_ctpop_vec_extra_use" has unsupported operation: llvm.store + +1: "zext_ctpop" +4: "zext_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "zext_ctpop" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_ctpop_vec" +4: "zext_ctpop_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "zext_ctpop_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_ctpop_extra_use" +4: "zext_ctpop_extra_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_ctpop_extra_use" has unsupported operation: llvm.store + +4: "zext_ctpop_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "parity_xor" +4: "parity_xor" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "parity_xor_trunc" +4: "parity_xor_trunc" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "parity_xor_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "parity_xor_vec" +4: "parity_xor_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "parity_xor_wrong_cst" +4: "parity_xor_wrong_cst" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "parity_xor_wrong_cst" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "parity_xor_extra_use" +4: "parity_xor_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "parity_xor_extra_use" has unsupported operation: llvm.call + +4: "parity_xor_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "parity_xor_extra_use2" +4: "parity_xor_extra_use2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "parity_xor_extra_use2" has unsupported operation: llvm.call + +4: "parity_xor_extra_use2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "select_ctpop_zero" +4: "select_ctpop_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_non_zero" +4: "ctpop_non_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "ctpop_non_zero_with_existing_range_attr" +4: "ctpop_non_zero_with_existing_range_attr" has unsupported operation: 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 new file mode 100644 index 000000000..039069c0b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cttz-abs.txt @@ -0,0 +1,95 @@ +1: "cttz_abs" +4: "cttz_abs" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs_vec" +4: "cttz_abs_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs2" +4: "cttz_abs2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cttz_abs2" has unsupported operation: llvm.call + +4: "cttz_abs2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs3" +4: "cttz_abs3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cttz_abs3" has unsupported operation: llvm.call + +4: "cttz_abs3" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs4" +4: "cttz_abs4" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nabs" +4: "cttz_nabs" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nabs_vec" +4: "cttz_nabs_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs_64" +4: "cttz_abs_64" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_abs_multiuse" +4: "cttz_abs_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "cttz_abs_multiuse" has unsupported operation: llvm.call + +4: "cttz_abs_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nabs_multiuse" +4: "cttz_nabs_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "cttz_nabs_multiuse" has unsupported operation: llvm.call + +4: "cttz_nabs_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +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" +4: "no_cttz_abs3" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "cttz_abs_intrin" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nabs_intrin" +4: "cttz_nabs_intrin" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "use_cond" +5: "use_cond" is empty + +1: "use_abs" +5: "use_abs" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/cttz-negative.txt b/SSA/Projects/InstCombine/tests/logs/cttz-negative.txt new file mode 100644 index 000000000..437807954 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cttz-negative.txt @@ -0,0 +1,26 @@ +1: "cttz_neg_value" +4: "cttz_neg_value" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_neg_value_multiuse" +4: "cttz_neg_value_multiuse" has unsupported operation: llvm.call + +4: "cttz_neg_value_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_neg_value_64" +4: "cttz_neg_value_64" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_neg_value2_64" +4: "cttz_neg_value2_64" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_neg_value_vec" +4: "cttz_neg_value_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nonneg_value" +4: "cttz_nonneg_value" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_nonneg_value_vec" +4: "cttz_nonneg_value_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/cttz.txt b/SSA/Projects/InstCombine/tests/logs/cttz.txt new file mode 100644 index 000000000..251b8e8a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/cttz.txt @@ -0,0 +1,109 @@ +1: "use" +5: "use" is empty + +1: "cttz_zext_zero_undef" +4: "cttz_zext_zero_undef" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_zext_zero_undef" has unsupported operation: builtin.unregistered: llvm.zext + +1: "cttz_zext_zero_def" +4: "cttz_zext_zero_def" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cttz_zext_zero_def" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_zext_zero_undef_extra_use" +4: "cttz_zext_zero_undef_extra_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cttz_zext_zero_undef_extra_use" has unsupported operation: llvm.call + +4: "cttz_zext_zero_undef_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_zext_zero_undef_vec" +4: "cttz_zext_zero_undef_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_zext_zero_undef_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "cttz_zext_zero_def_vec" +4: "cttz_zext_zero_def_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cttz_zext_zero_def_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_sext_zero_undef" +4: "cttz_sext_zero_undef" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_sext_zero_undef" has unsupported operation: builtin.unregistered: llvm.zext + +1: "cttz_sext_zero_def" +4: "cttz_sext_zero_def" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cttz_sext_zero_def" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_sext_zero_undef_extra_use" +4: "cttz_sext_zero_undef_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "cttz_sext_zero_undef_extra_use" has unsupported operation: llvm.call + +4: "cttz_sext_zero_undef_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_sext_zero_undef_vec" +4: "cttz_sext_zero_undef_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "cttz_sext_zero_undef_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "cttz_sext_zero_def_vec" +4: "cttz_sext_zero_def_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cttz_sext_zero_def_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit" +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" +4: "cttz_of_lowest_set_bit_poison_flag" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit_vec" +4: "cttz_of_lowest_set_bit_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit_vec_undef" +4: "cttz_of_lowest_set_bit_vec_undef" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit_wrong_const" +4: "cttz_of_lowest_set_bit_wrong_const" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit_wrong_operand" +4: "cttz_of_lowest_set_bit_wrong_operand" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_lowest_set_bit_wrong_intrinsic" +4: "cttz_of_lowest_set_bit_wrong_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "cttz_of_power_of_two" +4: "cttz_of_power_of_two" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_power_of_two_zero_poison" +4: "cttz_of_power_of_two_zero_poison" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_power_of_two_wrong_intrinsic" +4: "cttz_of_power_of_two_wrong_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "cttz_of_power_of_two_wrong_constant_1" +4: "cttz_of_power_of_two_wrong_constant_1" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_of_power_of_two_wrong_constant_2" +4: "cttz_of_power_of_two_wrong_constant_2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "cttz_assume" +4: "cttz_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cttz_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "cttz_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cttz_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "cttz_assume" has unsupported operation: builtin.unregistered: llvm.intr.cttz + diff --git a/SSA/Projects/InstCombine/tests/logs/dbg-scalable-store-fixed-frag.txt b/SSA/Projects/InstCombine/tests/logs/dbg-scalable-store-fixed-frag.txt new file mode 100644 index 000000000..09ddc1a08 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/dbg-scalable-store-fixed-frag.txt @@ -0,0 +1,2 @@ +3: dbg-scalable-store-fixed-frag.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/dbg-simplify-alloca-size.txt b/SSA/Projects/InstCombine/tests/logs/dbg-simplify-alloca-size.txt new file mode 100644 index 000000000..9af067008 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/dbg-simplify-alloca-size.txt @@ -0,0 +1,12 @@ +1: "foo" +5: "foo" is empty + +1: "toplevel" +4: "toplevel" has unsupported operation: llvm.alloca + +4: "toplevel" has unsupported operation: builtin.unregistered: llvm.intr.dbg.declare + +4: "toplevel" has unsupported operation: llvm.call + +4: "toplevel" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/dce-iterate.txt b/SSA/Projects/InstCombine/tests/logs/dce-iterate.txt new file mode 100644 index 000000000..cf5b9618e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/dce-iterate.txt @@ -0,0 +1,23 @@ +1: "ScaleObjectAdd" +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.bitcast + +4: "ScaleObjectAdd" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/deadcode.txt b/SSA/Projects/InstCombine/tests/logs/deadcode.txt new file mode 100644 index 000000000..b98352397 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/deadcode.txt @@ -0,0 +1,13 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation: llvm.alloca + +1: "test3" +4: "test3" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/debug-line.txt b/SSA/Projects/InstCombine/tests/logs/debug-line.txt new file mode 100644 index 000000000..01b318b51 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debug-line.txt @@ -0,0 +1,11 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "printf" +5: "printf" is empty + +1: "putchar" +5: "putchar" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-dce.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-dce.txt new file mode 100644 index 000000000..c3792fd3e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-dce.txt @@ -0,0 +1,27 @@ +1: "salvage_load" +4: "salvage_load" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "salvage_load" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "salvage_load" has unsupported operation: llvm.return + +1: "salvage_bitcast" +4: "salvage_bitcast" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "salvage_bitcast" has unsupported operation: llvm.return + +1: "salvage_gep0" +4: "salvage_gep0" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "salvage_gep0" has unsupported operation: llvm.return + +1: "salvage_gep1" +4: "salvage_gep1" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "salvage_gep1" has unsupported operation: llvm.return + +1: "salvage_gep2" +4: "salvage_gep2" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "salvage_gep2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-dce2.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-dce2.txt new file mode 100644 index 000000000..b077a16df --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-dce2.txt @@ -0,0 +1,12 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "f" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: llvm.return + +1: "use_as_void" +5: "use_as_void" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-scalable-typesize.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-scalable-typesize.txt new file mode 100644 index 000000000..9c46b22b0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-scalable-typesize.txt @@ -0,0 +1,2 @@ +3: debuginfo-scalable-typesize.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-sink.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-sink.txt new file mode 100644 index 000000000..40e3f57d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-sink.txt @@ -0,0 +1,43 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "foo" has unsupported operation: llvm.load + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "bar" has unsupported operation: llvm.getelementptr + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "bar" has unsupported operation: llvm.load + +4: "bar" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "baz" +4: "baz" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "baz" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "baz" has unsupported operation: builtin.unregistered: llvm.br + +4: "baz" has unsupported operation: llvm.getelementptr + +4: "baz" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "baz" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-skip.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-skip.txt new file mode 100644 index 000000000..e8ad6e362 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-skip.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt new file mode 100644 index 000000000..a679f47d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo-variables.txt @@ -0,0 +1,52 @@ +1: "escape32" +5: "escape32" is empty + +1: "test_sext_zext" +4: "test_sext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_used_sext_zext" +4: "test_used_sext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_used_sext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "test_or" +4: "test_or" has unsupported operation: llvm.return + +1: "test_xor" +4: "test_xor" has unsupported operation: llvm.return + +1: "test_sub_neg" +4: "test_sub_neg" has unsupported operation: llvm.return + +1: "test_sub_pos" +4: "test_sub_pos" has unsupported operation: llvm.return + +1: "test_shl" +4: "test_shl" has unsupported operation: llvm.return + +1: "test_lshr" +4: "test_lshr" has unsupported operation: llvm.return + +1: "test_ashr" +4: "test_ashr" has unsupported operation: llvm.return + +1: "test_mul" +4: "test_mul" has unsupported operation: llvm.return + +1: "test_sdiv" +4: "test_sdiv" has unsupported operation: llvm.return + +1: "test_srem" +4: "test_srem" has unsupported operation: llvm.return + +1: "test_ptrtoint" +4: "test_ptrtoint" has unsupported operation: llvm.return + +1: "test_and" +4: "test_and" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/debuginfo_add.txt b/SSA/Projects/InstCombine/tests/logs/debuginfo_add.txt new file mode 100644 index 000000000..2d71ef914 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/debuginfo_add.txt @@ -0,0 +1,2 @@ +3: debuginfo_add.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/default-alignment.txt b/SSA/Projects/InstCombine/tests/logs/default-alignment.txt new file mode 100644 index 000000000..304f343bd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/default-alignment.txt @@ -0,0 +1,3 @@ +1: "t" +4: "t" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/demand_shrink_nsw.txt b/SSA/Projects/InstCombine/tests/logs/demand_shrink_nsw.txt new file mode 100644 index 000000000..f7cff0c53 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/demand_shrink_nsw.txt @@ -0,0 +1,25 @@ +1: "foo" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.shl +2: llvm.sub +2: llvm.add +2: llvm.or +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/demorgan-sink-not-into-xor.txt b/SSA/Projects/InstCombine/tests/logs/demorgan-sink-not-into-xor.txt new file mode 100644 index 000000000..681747f81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/demorgan-sink-not-into-xor.txt @@ -0,0 +1,47 @@ +1: "gen1" +5: "gen1" is empty + +1: "positive_easyinvert" +4: "positive_easyinvert" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "positive_easyinvert" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_easyinvert0" +4: "positive_easyinvert0" has unsupported operation: llvm.call + +4: "positive_easyinvert0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_easyinvert1" +4: "positive_easyinvert1" has unsupported operation: llvm.call + +4: "positive_easyinvert1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use1" +5: "use1" is empty + +1: "oneuse_easyinvert_0" +4: "oneuse_easyinvert_0" has unsupported operation: llvm.call + +4: "oneuse_easyinvert_0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_easyinvert_0" has unsupported operation: llvm.call + +1: "oneuse_easyinvert_1" +4: "oneuse_easyinvert_1" has unsupported operation: llvm.call + +4: "oneuse_easyinvert_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_easyinvert_1" has unsupported operation: llvm.call + +1: "oneuse_easyinvert_2" +4: "oneuse_easyinvert_2" has unsupported operation: llvm.call + +4: "oneuse_easyinvert_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_easyinvert_2" has unsupported operation: llvm.call + +4: "oneuse_easyinvert_2" has unsupported operation: llvm.call + +1: "negative" +7: "negative" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/demorgan.txt b/SSA/Projects/InstCombine/tests/logs/demorgan.txt new file mode 100644 index 000000000..10c6fd88b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/demorgan.txt @@ -0,0 +1,277 @@ +1: "demorgan_or_apint1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "demorgan_or_apint2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "demorgan_and_apint1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "demorgan_and_apint2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "demorgan_and_apint3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "demorgan_and_apint4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "demorgan_and_apint5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test3_apint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test4_apint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test5_apint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "demorgan_nand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "demorgan_nand_apint1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "demorgan_nand_apint2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "demorgan_nor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "demorgan_nor_use2a" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.mul +2: llvm.or +2: llvm.xor +2: llvm.sdiv +2: llvm.return + +1: "demorgan_nor_use2b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.sdiv +2: llvm.return + +1: "demorgan_nor_use2c" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.mul +2: llvm.xor +2: llvm.sdiv +2: llvm.return + +1: "demorgan_nor_use2ab" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.mul +2: llvm.or +2: llvm.xor +2: llvm.sdiv +2: llvm.sdiv +2: llvm.return + +1: "demorgan_nor_use2ac" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.mul +2: llvm.or +2: llvm.mul +2: llvm.xor +2: llvm.sdiv +2: llvm.sdiv +2: llvm.return + +1: "demorgan_nor_use2bc" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.or +2: llvm.mul +2: llvm.xor +2: llvm.sdiv +2: llvm.sdiv +2: llvm.return + +1: "demorganize_constant1" +7: "demorganize_constant1" is unchanged by InstCombine + +1: "demorganize_constant2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "demorgan_or_zext" +4: "demorgan_or_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "demorgan_and_zext" +4: "demorgan_and_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "demorgan_or_zext_vec" +4: "demorgan_or_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "demorgan_and_zext_vec" +4: "demorgan_and_zext_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR28476" +4: "PR28476" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR28476" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR28476" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR28476_logical" +4: "PR28476_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "demorgan_plus_and_to_xor_vec" +"demorgan_plus_and_to_xor_vec" contains vectors which are unsupported + +1: "PR45984" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/dependent-ivs.txt b/SSA/Projects/InstCombine/tests/logs/dependent-ivs.txt new file mode 100644 index 000000000..310faf069 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/dependent-ivs.txt @@ -0,0 +1,2 @@ +3: dependent-ivs.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt b/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt new file mode 100644 index 000000000..b5a02d929 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/deref-alloc-fns.txt @@ -0,0 +1,166 @@ +1: "malloc" +5: "malloc" is empty + +1: "calloc" +5: "calloc" is empty + +1: "realloc" +5: "realloc" is empty + +1: "_Znam" +5: "_Znam" is empty + +1: "_Znwm" +5: "_Znwm" is empty + +1: "strdup" +5: "strdup" is empty + +1: "aligned_alloc" +5: "aligned_alloc" is empty + +1: "memalign" +5: "memalign" is empty + +1: "_ZnamSt11align_val_t" +5: "_ZnamSt11align_val_t" is empty + +1: "my_malloc" +5: "my_malloc" is empty + +1: "my_calloc" +5: "my_calloc" is empty + +1: "malloc_nonconstant_size" +4: "malloc_nonconstant_size" has unsupported operation: llvm.call + +1: "malloc_constant_size" +4: "malloc_constant_size" has unsupported operation: llvm.call + +1: "aligned_alloc_constant_size" +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" +4: "aligned_alloc_unknown_align" has unsupported operation: llvm.call + +1: "foo" +5: "foo" is empty + +1: "aligned_alloc_dynamic_args" +4: "aligned_alloc_dynamic_args" has unsupported operation: llvm.call + +4: "aligned_alloc_dynamic_args" has unsupported operation: llvm.call + +4: "aligned_alloc_dynamic_args" has unsupported operation: llvm.call + +4: "aligned_alloc_dynamic_args" has unsupported operation: llvm.call + +1: "memalign_constant_size" +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" +4: "memalign_unknown_align" has unsupported operation: llvm.call + +1: "malloc_constant_size2" +4: "malloc_constant_size2" has unsupported operation: llvm.call + +1: "malloc_constant_size3" +4: "malloc_constant_size3" has unsupported operation: llvm.call + +1: "malloc_constant_zero_size" +4: "malloc_constant_zero_size" has unsupported operation: llvm.call + +1: "realloc_nonconstant_size" +4: "realloc_nonconstant_size" has unsupported operation: llvm.call + +1: "realloc_constant_zero_size" +4: "realloc_constant_zero_size" has unsupported operation: llvm.call + +1: "realloc_constant_size" +4: "realloc_constant_size" has unsupported operation: llvm.call + +1: "calloc_nonconstant_size" +4: "calloc_nonconstant_size" has unsupported operation: llvm.call + +1: "calloc_nonconstant_size2" +4: "calloc_nonconstant_size2" has unsupported operation: llvm.call + +1: "calloc_nonconstant_size3" +4: "calloc_nonconstant_size3" has unsupported operation: llvm.call + +1: "calloc_constant_zero_size" +4: "calloc_constant_zero_size" has unsupported operation: llvm.call + +1: "calloc_constant_zero_size2" +4: "calloc_constant_zero_size2" has unsupported operation: llvm.call + +1: "calloc_constant_zero_size3" +4: "calloc_constant_zero_size3" has unsupported operation: llvm.call + +1: "calloc_constant_zero_size4" +4: "calloc_constant_zero_size4" has unsupported operation: llvm.call + +1: "calloc_constant_zero_size5" +4: "calloc_constant_zero_size5" has unsupported operation: llvm.call + +1: "calloc_constant_size" +4: "calloc_constant_size" has unsupported operation: llvm.call + +1: "calloc_constant_size_overflow" +4: "calloc_constant_size_overflow" has unsupported operation: llvm.call + +1: "op_new_nonconstant_size" +4: "op_new_nonconstant_size" has unsupported operation: llvm.call + +1: "op_new_constant_size" +4: "op_new_constant_size" has unsupported operation: llvm.call + +1: "op_new_constant_size2" +4: "op_new_constant_size2" has unsupported operation: llvm.call + +1: "op_new_constant_zero_size" +4: "op_new_constant_zero_size" has unsupported operation: llvm.call + +1: "strdup_constant_str" +4: "strdup_constant_str" has unsupported operation: llvm.mlir.addressof + +4: "strdup_constant_str" has unsupported operation: llvm.call + +1: "strdup_notconstant_str" +4: "strdup_notconstant_str" has unsupported operation: llvm.call + +1: "ossfuzz_23214" +4: "ossfuzz_23214" has unsupported operation: llvm.call + +1: "op_new_align" +4: "op_new_align" has unsupported operation: llvm.call + +1: "my_malloc_constant_size" +4: "my_malloc_constant_size" has unsupported operation: llvm.call + +1: "my_calloc_constant_size" +4: "my_calloc_constant_size" has unsupported operation: llvm.call + +1: "virtual_constant_size" +4: "virtual_constant_size" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/disable-builtin.txt b/SSA/Projects/InstCombine/tests/logs/disable-builtin.txt new file mode 100644 index 000000000..efdae7cc7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/disable-builtin.txt @@ -0,0 +1,8 @@ +1: "strcat" +5: "strcat" is empty + +1: "test_strcat" +4: "test_strcat" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_strcat" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt b/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt new file mode 100644 index 000000000..6cf8e0625 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/disable-simplify-libcalls.txt @@ -0,0 +1,287 @@ +1: "ceil" +5: "ceil" is empty + +1: "copysign" +5: "copysign" is empty + +1: "cos" +5: "cos" is empty + +1: "fabs" +5: "fabs" is empty + +1: "floor" +5: "floor" is empty + +1: "strcat" +5: "strcat" is empty + +1: "strncat" +5: "strncat" is empty + +1: "strchr" +5: "strchr" is empty + +1: "strrchr" +5: "strrchr" is empty + +1: "strcmp" +5: "strcmp" is empty + +1: "strncmp" +5: "strncmp" is empty + +1: "strcpy" +5: "strcpy" is empty + +1: "stpcpy" +5: "stpcpy" is empty + +1: "strncpy" +5: "strncpy" is empty + +1: "strlen" +5: "strlen" is empty + +1: "strpbrk" +5: "strpbrk" is empty + +1: "strspn" +5: "strspn" is empty + +1: "strtod" +5: "strtod" is empty + +1: "strtof" +5: "strtof" is empty + +1: "strtold" +5: "strtold" is empty + +1: "strtol" +5: "strtol" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtoul" +5: "strtoul" is empty + +1: "strtoull" +5: "strtoull" is empty + +1: "strcspn" +5: "strcspn" is empty + +1: "abs" +5: "abs" is empty + +1: "ffs" +5: "ffs" is empty + +1: "ffsl" +5: "ffsl" is empty + +1: "ffsll" +5: "ffsll" is empty + +1: "fprintf" +5: "fprintf" is empty + +1: "isascii" +5: "isascii" is empty + +1: "isdigit" +5: "isdigit" is empty + +1: "toascii" +5: "toascii" is empty + +1: "labs" +5: "labs" is empty + +1: "llabs" +5: "llabs" is empty + +1: "printf" +5: "printf" is empty + +1: "sprintf" +5: "sprintf" is empty + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +1: "t2" +4: "t2" has unsupported operation: llvm.call + +1: "t3" +4: "t3" has unsupported operation: llvm.call + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "t5" +4: "t5" has unsupported operation: builtin.unregistered: llvm.intr.floor + +1: "t6" +4: "t6" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t6" has unsupported operation after optimization: llvm.call + +1: "t7" +4: "t7" has unsupported operation: llvm.mlir.addressof + +4: "t7" has unsupported operation: llvm.call + +1: "t8" +4: "t8" has unsupported operation: llvm.mlir.addressof + +4: "t8" has unsupported operation: llvm.getelementptr + +1: "t9" +4: "t9" has unsupported operation: llvm.mlir.addressof + +4: "t9" has unsupported operation: llvm.getelementptr + +1: "t10" +4: "t10" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t10" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t10" has unsupported operation after optimization: llvm.call + +1: "t11" +4: "t11" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t11" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t11" has unsupported operation after optimization: llvm.call + +1: "t12" +4: "t12" has unsupported operation: llvm.store + +1: "t13" +4: "t13" has unsupported operation: llvm.getelementptr + +4: "t13" has unsupported operation: llvm.store + +1: "t14" +4: "t14" has unsupported operation: llvm.mlir.addressof + +4: "t14" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "t15" +4: "t15" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t15" has unsupported operation after optimization: llvm.call + +1: "t16" +4: "t16" has unsupported operation: llvm.mlir.zero + +1: "t17" +4: "t17" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t17" has unsupported operation after optimization: llvm.call + +1: "t18" +4: "t18" has unsupported operation: llvm.mlir.addressof + +4: "t18" has unsupported operation: llvm.call + +1: "t19" +4: "t19" has unsupported operation: llvm.mlir.addressof + +4: "t19" has unsupported operation: llvm.call + +1: "t20" +4: "t20" has unsupported operation: llvm.mlir.addressof + +4: "t20" has unsupported operation: llvm.call + +1: "t21" +4: "t21" has unsupported operation: llvm.mlir.addressof + +4: "t21" has unsupported operation: llvm.call + +1: "t22" +4: "t22" has unsupported operation: llvm.mlir.addressof + +4: "t22" has unsupported operation: llvm.call + +1: "t23" +4: "t23" has unsupported operation: llvm.mlir.addressof + +4: "t23" has unsupported operation: llvm.call + +1: "t24" +4: "t24" has unsupported operation: llvm.mlir.addressof + +4: "t24" has unsupported operation: llvm.call + +1: "t25" +4: "t25" has unsupported operation after optimization: llvm.mlir.addressof + +4: "t25" has unsupported operation after optimization: llvm.call + +1: "t26" +4: "t26" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "t27" +4: "t27" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +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 + +1: "t29" +4: "t29" has unsupported operation: llvm.call + +1: "t30" +4: "t30" has unsupported operation: llvm.mlir.zero + +4: "t30" has unsupported operation: llvm.mlir.addressof + +4: "t30" has unsupported operation: llvm.call + +4: "t30" has unsupported operation: llvm.return + +1: "t31" +4: "t31" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t31" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t32" +4: "t32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t33" +4: "t33" has unsupported operation after optimization: llvm.call + +1: "t34" +4: "t34" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "t35" +4: "t35" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "t36" +4: "t36" has unsupported operation: llvm.mlir.addressof + +4: "t36" has unsupported operation: llvm.call + +4: "t36" has unsupported operation: llvm.return + +1: "t37" +4: "t37" has unsupported operation: llvm.mlir.addressof + +4: "t37" has unsupported operation: llvm.call + +4: "t37" has unsupported operation: llvm.return + +1: "memrchr" +5: "memrchr" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/distribute.txt b/SSA/Projects/InstCombine/tests/logs/distribute.txt new file mode 100644 index 000000000..abeb8ba11 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/distribute.txt @@ -0,0 +1,53 @@ +1: "factorize" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "factorize2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "factorize3" +2: llvm.func +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "factorize4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.mul +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "factorize5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "expand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.and +2: llvm.return + 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 new file mode 100644 index 000000000..783ac4228 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov-not.txt @@ -0,0 +1,42 @@ +1: "t0_umul" +4: "t0_umul" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "t0_umul" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t0_umul" has unsupported operation: llvm.extractvalue + +1: "t1_commutative" +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t1_commutative" has unsupported operation: llvm.extractvalue + +1: "n2_wrong_size" +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +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 + +4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +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 + +1: "n5_not_zero" +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +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 new file mode 100644 index 000000000..dcb3d5e6c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-smul_ov.txt @@ -0,0 +1,40 @@ +1: "t0_smul" +4: "t0_smul" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t0_smul" has unsupported operation: llvm.extractvalue + +1: "t1_commutative" +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t1_commutative" has unsupported operation: llvm.extractvalue + +1: "n2_wrong_size" +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +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 + +4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +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 + +1: "n5_not_zero" +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "n5_not_zero" has unsupported operation: llvm.extractvalue + 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 new file mode 100644 index 000000000..a88867bb4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov-not.txt @@ -0,0 +1,42 @@ +1: "t0_umul" +4: "t0_umul" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "t0_umul" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_umul" has unsupported operation: llvm.extractvalue + +1: "t1_commutative" +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_commutative" has unsupported operation: llvm.extractvalue + +1: "n2_wrong_size" +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +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 + +4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +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 + +1: "n5_not_zero" +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +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 new file mode 100644 index 000000000..0d2e18f8b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-by-0-guard-before-umul_ov.txt @@ -0,0 +1,40 @@ +1: "t0_umul" +4: "t0_umul" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_umul" has unsupported operation: llvm.extractvalue + +1: "t1_commutative" +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_commutative" has unsupported operation: llvm.extractvalue + +1: "n2_wrong_size" +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2_wrong_size" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +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 + +4: "n3_wrong_pred" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +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 + +1: "n5_not_zero" +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5_not_zero" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "n5_not_zero" has unsupported operation: llvm.extractvalue + diff --git a/SSA/Projects/InstCombine/tests/logs/div-i1.txt b/SSA/Projects/InstCombine/tests/logs/div-i1.txt new file mode 100644 index 000000000..0991d6e47 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-i1.txt @@ -0,0 +1,61 @@ +1: "sdiv_by_zero_indirect_is_poison" +4: "sdiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sdiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +4: "sdiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +1: "udiv_by_zero_indirect_is_poison" +4: "udiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "udiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "udiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +4: "udiv_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +1: "srem_by_zero_indirect_is_poison" +4: "srem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "srem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +4: "srem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +1: "urem_by_zero_indirect_is_poison" +4: "urem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "urem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +4: "urem_by_zero_indirect_is_poison" has unsupported operation: builtin.unregistered: llvm.br + +1: "sdiv_i1_is_op0" +2: llvm.func +2: llvm.sdiv +2: llvm.return + +1: "udiv_i1_is_op0" +4: "udiv_i1_is_op0" has unsupported operation after optimization: llvm.udiv + +1: "srem_i1_is_zero" +2: llvm.func +2: llvm.srem +2: llvm.return + +1: "urem_i1_is_zero" +2: llvm.func +2: llvm.urem +2: llvm.return + +1: "pt62607" +4: "pt62607" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pt62607" has unsupported operation: builtin.unregistered: llvm.br + +4: "pt62607" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/div-shift-crash.txt b/SSA/Projects/InstCombine/tests/logs/div-shift-crash.txt new file mode 100644 index 000000000..70d7db241 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-shift-crash.txt @@ -0,0 +1,2 @@ +3: div-shift-crash.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/div-shift.txt b/SSA/Projects/InstCombine/tests/logs/div-shift.txt new file mode 100644 index 000000000..715c2c498 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/div-shift.txt @@ -0,0 +1,358 @@ +1: "use" +5: "use" is empty + +1: "use32" +5: "use32" is empty + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t1vec" +4: "t1vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t4" +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 + +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 + +1: "udiv_umax" +4: "udiv_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +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 +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "t8" +7: "t8" is unchanged by InstCombine + +1: "t9" +"t9" contains vectors which are unsupported + +1: "t10" +2: llvm.func +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "t11" +"t11" contains vectors which are unsupported + +1: "t12" +4: "t12" has unsupported operation after optimization: llvm.udiv + +1: "t13" +4: "t13" has unsupported operation: llvm.udiv + +1: "t14" +"t14" contains vectors which are unsupported + +1: "t15" +4: "t15" has unsupported operation after optimization: llvm.udiv + +1: "t16" +"t16" contains vectors which are unsupported + +1: "sdiv_mul_shl_nsw" +2: llvm.func +2: llvm.mul +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_mul_shl_nsw_exact_commute1" +2: llvm.func +2: llvm.mul +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_mul_shl_nsw_commute2" +7: "sdiv_mul_shl_nsw_commute2" is unchanged by InstCombine + +1: "sdiv_mul_shl_nsw_use1" +4: "sdiv_mul_shl_nsw_use1" has unsupported operation: llvm.call + +1: "sdiv_mul_shl_nsw_use2" +4: "sdiv_mul_shl_nsw_use2" has unsupported operation: llvm.call + +1: "sdiv_mul_shl_nsw_use3" +4: "sdiv_mul_shl_nsw_use3" has unsupported operation: llvm.call + +4: "sdiv_mul_shl_nsw_use3" has unsupported operation: llvm.call + +1: "sdiv_shl_mul_nsw" +7: "sdiv_shl_mul_nsw" is unchanged by InstCombine + +1: "sdiv_mul_shl_missing_nsw1" +7: "sdiv_mul_shl_missing_nsw1" is unchanged by InstCombine + +1: "sdiv_mul_shl_missing_nsw2" +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 + +1: "udiv_mul_shl_nuw_exact_commute1" +4: "udiv_mul_shl_nuw_exact_commute1" has unsupported operation after optimization: llvm.udiv + +1: "udiv_mul_shl_nuw_commute2" +4: "udiv_mul_shl_nuw_commute2" has unsupported operation: llvm.udiv + +1: "udiv_mul_shl_nsw_use1" +4: "udiv_mul_shl_nsw_use1" has unsupported operation: llvm.call + +1: "udiv_mul_shl_nsw_use2" +4: "udiv_mul_shl_nsw_use2" has unsupported operation: llvm.call + +1: "udiv_mul_shl_nsw_use3" +4: "udiv_mul_shl_nsw_use3" has unsupported operation: llvm.call + +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 + +1: "udiv_shl_mul_nuw_swap" +4: "udiv_shl_mul_nuw_swap" has unsupported operation: llvm.udiv + +1: "udiv_shl_mul_nuw_exact" +4: "udiv_shl_mul_nuw_exact" has unsupported operation: llvm.udiv + +1: "udiv_shl_mul_nuw_vec" +4: "udiv_shl_mul_nuw_vec" has unsupported operation: llvm.udiv + +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 + +1: "udiv_mul_shl_missing_nsw2" +4: "udiv_mul_shl_missing_nsw2" has unsupported operation: llvm.udiv + +1: "udiv_shl_nuw" +4: "udiv_shl_nuw" has unsupported operation: llvm.udiv + +1: "udiv_shl_nuw_exact" +4: "udiv_shl_nuw_exact" has unsupported operation: llvm.udiv + +1: "udiv_shl" +4: "udiv_shl" has unsupported operation: llvm.udiv + +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 + +1: "udiv_lshr_mul_nuw_exact_commute1" +"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 + +1: "udiv_lshr_mul_nuw_use1" +4: "udiv_lshr_mul_nuw_use1" has unsupported operation: llvm.call + +1: "udiv_lshr_mul_nuw_use2" +4: "udiv_lshr_mul_nuw_use2" has unsupported operation: llvm.call + +1: "udiv_lshr_mul_nuw_use3" +4: "udiv_lshr_mul_nuw_use3" has unsupported operation: llvm.call + +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 + +1: "sdiv_lshr_mul_nsw" +7: "sdiv_lshr_mul_nsw" is unchanged by InstCombine + +1: "sdiv_shl_shl_nsw2_nuw" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_shl_shl_nsw2_nuw_exact_use" +4: "sdiv_shl_shl_nsw2_nuw_exact_use" has unsupported operation: llvm.call + +1: "sdiv_shl_shl_nsw_nuw2" +7: "sdiv_shl_shl_nsw_nuw2" is unchanged by InstCombine + +1: "sdiv_shl_shl_nsw_nuw" +7: "sdiv_shl_shl_nsw_nuw" is unchanged by InstCombine + +1: "sdiv_shl_shl_nuw_nsw2" +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 + +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 + +1: "udiv_shl_shl_nsw_nuw" +4: "udiv_shl_shl_nsw_nuw" has unsupported operation: llvm.udiv + +1: "udiv_shl_shl_nuw_nsw2" +4: "udiv_shl_shl_nuw_nsw2" has unsupported operation: llvm.udiv + +1: "udiv_shl_nuw_divisor" +4: "udiv_shl_nuw_divisor" has unsupported operation: llvm.udiv + +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 +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "udiv_shl_pair_const" +4: "udiv_shl_pair_const" has unsupported operation after optimization: llvm.udiv + +1: "sdiv_shl_pair1" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_shl_pair2" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_shl_pair3" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "sdiv_shl_no_pair_fail" +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 + +1: "udiv_shl_pair2" +4: "udiv_shl_pair2" has unsupported operation after optimization: llvm.udiv + +1: "udiv_shl_pair3" +4: "udiv_shl_pair3" has unsupported operation after optimization: llvm.udiv + +1: "sdiv_shl_pair_overflow_fail1" +7: "sdiv_shl_pair_overflow_fail1" is unchanged by InstCombine + +1: "sdiv_shl_pair_overflow_fail2" +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 + +1: "udiv_shl_pair_overflow_fail2" +4: "udiv_shl_pair_overflow_fail2" has unsupported operation: llvm.udiv + +1: "udiv_shl_pair_overflow_fail3" +4: "udiv_shl_pair_overflow_fail3" has unsupported operation: llvm.udiv + +1: "sdiv_shl_pair_multiuse1" +4: "sdiv_shl_pair_multiuse1" has unsupported operation: llvm.call + +1: "sdiv_shl_pair_multiuse2" +4: "sdiv_shl_pair_multiuse2" has unsupported operation: llvm.call + +1: "sdiv_shl_pair_multiuse3" +4: "sdiv_shl_pair_multiuse3" has unsupported operation: llvm.call + +4: "sdiv_shl_pair_multiuse3" has unsupported operation: llvm.call + +1: "pr69291" +4: "pr69291" has unsupported operation after optimization: llvm.mlir.addressof + +4: "pr69291" has unsupported operation after optimization: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/div.txt b/SSA/Projects/InstCombine/tests/logs/div.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/dont-distribute-phi.txt b/SSA/Projects/InstCombine/tests/logs/dont-distribute-phi.txt new file mode 100644 index 000000000..e8019b872 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/dont-distribute-phi.txt @@ -0,0 +1,33 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.undef + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +1: "foo_logical" +4: "foo_logical" has unsupported operation: llvm.mlir.undef + +4: "foo_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo_logical" has unsupported operation: llvm.call + +4: "foo_logical" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo_logical" has unsupported operation: builtin.unregistered: llvm.br + +1: "bar" +5: "bar" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/double-float-shrink-1.txt b/SSA/Projects/InstCombine/tests/logs/double-float-shrink-1.txt new file mode 100644 index 000000000..2df581a66 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/double-float-shrink-1.txt @@ -0,0 +1,306 @@ +1: "acos_test1" +4: "acos_test1" has unsupported operation: llvm.call + +1: "acos_test2" +4: "acos_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "acos_test2" has unsupported operation: llvm.call + +1: "acosh_test1" +4: "acosh_test1" has unsupported operation: llvm.call + +1: "acosh_test2" +4: "acosh_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "acosh_test2" has unsupported operation: llvm.call + +1: "asin_test1" +4: "asin_test1" has unsupported operation: llvm.call + +1: "asin_test2" +4: "asin_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "asin_test2" has unsupported operation: llvm.call + +1: "asinh_test1" +4: "asinh_test1" has unsupported operation: llvm.call + +1: "asinh_test2" +4: "asinh_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "asinh_test2" has unsupported operation: llvm.call + +1: "atan_test1" +4: "atan_test1" has unsupported operation: llvm.call + +1: "atan_test2" +4: "atan_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "atan_test2" has unsupported operation: llvm.call + +1: "atanh_test1" +4: "atanh_test1" has unsupported operation: llvm.call + +1: "atanh_test2" +4: "atanh_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "atanh_test2" has unsupported operation: llvm.call + +1: "cbrt_test1" +4: "cbrt_test1" has unsupported operation: llvm.call + +1: "cbrt_test2" +4: "cbrt_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "cbrt_test2" has unsupported operation: llvm.call + +1: "exp_test1" +4: "exp_test1" has unsupported operation: llvm.call + +1: "exp_test2" +4: "exp_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "exp_test2" has unsupported operation: llvm.call + +1: "expm1_test1" +4: "expm1_test1" has unsupported operation: llvm.call + +1: "expm1_test2" +4: "expm1_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "expm1_test2" has unsupported operation: llvm.call + +1: "exp10_test1" +4: "exp10_test1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "exp10_test1" has unsupported operation: llvm.call + +4: "exp10_test1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "exp10_test2" +4: "exp10_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "exp10_test2" has unsupported operation: llvm.call + +1: "log_test1" +4: "log_test1" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "log_test2" +4: "log_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "log_test2" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "log10_test1" +4: "log10_test1" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +1: "log10_test2" +4: "log10_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "log10_test2" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +1: "log1p_test1" +4: "log1p_test1" has unsupported operation: llvm.call + +1: "log1p_test2" +4: "log1p_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "log1p_test2" has unsupported operation: llvm.call + +1: "log2_test1" +4: "log2_test1" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +1: "log2_test2" +4: "log2_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "log2_test2" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +1: "logb_test1" +4: "logb_test1" has unsupported operation: llvm.call + +1: "logb_test2" +4: "logb_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "logb_test2" has unsupported operation: llvm.call + +1: "pow_test1" +4: "pow_test1" has unsupported operation: llvm.call + +1: "pow_test2" +4: "pow_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "pow_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "pow_test2" has unsupported operation: llvm.call + +1: "sin_test1" +4: "sin_test1" has unsupported operation: llvm.call + +1: "sin_test2" +4: "sin_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "sin_test2" has unsupported operation: llvm.call + +1: "sqrt_test1" +4: "sqrt_test1" has unsupported operation: llvm.call + +1: "sqrt_test2" +4: "sqrt_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "sqrt_test2" has unsupported operation: llvm.call + +1: "sqrt_int_test1" +4: "sqrt_int_test1" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "sqrt_int_test2" +4: "sqrt_int_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "sqrt_int_test2" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "tan_test1" +4: "tan_test1" has unsupported operation: llvm.call + +1: "tan_test2" +4: "tan_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "tan_test2" has unsupported operation: llvm.call + +1: "tanh_test1" +4: "tanh_test1" has unsupported operation: llvm.call + +1: "tanh_test2" +4: "tanh_test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "tanh_test2" has unsupported operation: llvm.call + +1: "max1" +4: "max1" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "fake_fmin" +4: "fake_fmin" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "fmin" +5: "fmin" is empty + +1: "fmax" +5: "fmax" is empty + +1: "tanh" +5: "tanh" is empty + +1: "tan" +5: "tan" is empty + +1: "sqrt" +5: "sqrt" is empty + +1: "sin" +5: "sin" is empty + +1: "pow" +5: "pow" is empty + +1: "log2" +5: "log2" is empty + +1: "log1p" +5: "log1p" is empty + +1: "log10" +5: "log10" is empty + +1: "log" +5: "log" is empty + +1: "logb" +5: "logb" is empty + +1: "exp10" +5: "exp10" is empty + +1: "expm1" +5: "expm1" is empty + +1: "exp" +5: "exp" is empty + +1: "cbrt" +5: "cbrt" is empty + +1: "atanh" +5: "atanh" is empty + +1: "atan" +5: "atan" is empty + +1: "acos" +5: "acos" is empty + +1: "acosh" +5: "acosh" is empty + +1: "asin" +5: "asin" is empty + +1: "asinh" +5: "asinh" is empty + +1: "acosf" +5: "acosf" is empty + +1: "acoshf" +5: "acoshf" is empty + +1: "asinf" +5: "asinf" is empty + +1: "asinhf" +5: "asinhf" is empty + +1: "atanf" +5: "atanf" is empty + +1: "atanhf" +5: "atanhf" is empty + +1: "cbrtf" +5: "cbrtf" is empty + +1: "expf" +5: "expf" is empty + +1: "expm1f" +5: "expm1f" is empty + +1: "logf" +5: "logf" is empty + +1: "log10f" +5: "log10f" is empty + +1: "log1pf" +5: "log1pf" is empty + +1: "log2f" +5: "log2f" is empty + +1: "logbf" +5: "logbf" is empty + +1: "powf" +5: "powf" is empty + +1: "sinf" +5: "sinf" is empty + +1: "sqrtf" +5: "sqrtf" is empty + +1: "tanf" +5: "tanf" is empty + +1: "tanhf" +5: "tanhf" is empty + +1: "fmaxf" +5: "fmaxf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/double-float-shrink-2.txt b/SSA/Projects/InstCombine/tests/logs/double-float-shrink-2.txt new file mode 100644 index 000000000..3012b0093 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/double-float-shrink-2.txt @@ -0,0 +1,334 @@ +1: "floor" +5: "floor" is empty + +1: "ceil" +5: "ceil" is empty + +1: "round" +5: "round" is empty + +1: "roundeven" +5: "roundeven" is empty + +1: "nearbyint" +5: "nearbyint" is empty + +1: "trunc" +5: "trunc" is empty + +1: "fabs" +5: "fabs" is empty + +1: "test_shrink_libcall_floor" +4: "test_shrink_libcall_floor" has unsupported operation: builtin.unregistered: llvm.intr.floor + +1: "test_shrink_libcall_ceil" +4: "test_shrink_libcall_ceil" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +1: "test_shrink_libcall_round" +4: "test_shrink_libcall_round" has unsupported operation: builtin.unregistered: llvm.intr.round + +1: "test_shrink_libcall_roundeven" +4: "test_shrink_libcall_roundeven" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +1: "test_shrink_libcall_nearbyint" +4: "test_shrink_libcall_nearbyint" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +1: "test_shrink_libcall_trunc" +4: "test_shrink_libcall_trunc" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +1: "test_shrink_libcall_fabs" +4: "test_shrink_libcall_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_libcall_fabs_fast" +4: "test_shrink_libcall_fabs_fast" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_intrin_ceil" +4: "test_shrink_intrin_ceil" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +1: "test_shrink_intrin_fabs" +4: "test_shrink_intrin_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_intrin_floor" +4: "test_shrink_intrin_floor" has unsupported operation: builtin.unregistered: llvm.intr.floor + +1: "test_shrink_intrin_nearbyint" +4: "test_shrink_intrin_nearbyint" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +1: "test_shrink_intrin_rint" +4: "test_shrink_intrin_rint" has unsupported operation: builtin.unregistered: llvm.intr.rint + +1: "test_shrink_intrin_round" +4: "test_shrink_intrin_round" has unsupported operation: builtin.unregistered: llvm.intr.round + +1: "test_shrink_intrin_roundeven" +4: "test_shrink_intrin_roundeven" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +1: "test_shrink_intrin_trunc" +4: "test_shrink_intrin_trunc" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +1: "use_v2f64" +5: "use_v2f64" is empty + +1: "use_v2f32" +5: "use_v2f32" is empty + +1: "test_shrink_intrin_ceil_multi_use" +4: "test_shrink_intrin_ceil_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_ceil_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test_shrink_intrin_ceil_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_ceil_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_fabs_multi_use" +4: "test_shrink_intrin_fabs_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_shrink_intrin_fabs_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_fabs_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_floor_multi_use" +4: "test_shrink_intrin_floor_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_floor_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test_shrink_intrin_floor_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_floor_multi_use" has unsupported operation: llvm.call + +4: "test_shrink_intrin_floor_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_nearbyint_multi_use" +4: "test_shrink_intrin_nearbyint_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_nearbyint_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test_shrink_intrin_nearbyint_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_nearbyint_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_rint_multi_use" +4: "test_shrink_intrin_rint_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.rint + +4: "test_shrink_intrin_rint_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_rint_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_round_multi_use" +4: "test_shrink_intrin_round_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_round_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test_shrink_intrin_round_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_round_multi_use" has unsupported operation: llvm.call + +4: "test_shrink_intrin_round_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_roundeven_multi_use" +4: "test_shrink_intrin_roundeven_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_roundeven_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test_shrink_intrin_roundeven_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_roundeven_multi_use" has unsupported operation: llvm.call + +4: "test_shrink_intrin_roundeven_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_trunc_multi_use" +4: "test_shrink_intrin_trunc_multi_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_shrink_intrin_trunc_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test_shrink_intrin_trunc_multi_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_trunc_multi_use" has unsupported operation: llvm.call + +1: "test_shrink_intrin_fabs_fast" +4: "test_shrink_intrin_fabs_fast" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_no_shrink_intrin_floor" +4: "test_no_shrink_intrin_floor" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test_no_shrink_intrin_floor" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_ceil" +4: "test_no_shrink_intrin_ceil" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test_no_shrink_intrin_ceil" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_round" +4: "test_no_shrink_intrin_round" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test_no_shrink_intrin_round" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_roundeven" +4: "test_no_shrink_intrin_roundeven" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test_no_shrink_intrin_roundeven" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_nearbyint" +4: "test_no_shrink_intrin_nearbyint" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test_no_shrink_intrin_nearbyint" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_trunc" +4: "test_no_shrink_intrin_trunc" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test_no_shrink_intrin_trunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_intrin_fabs_double_src" +4: "test_shrink_intrin_fabs_double_src" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_fabs_double_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_intrin_fabs_fast_double_src" +4: "test_shrink_intrin_fabs_fast_double_src" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_intrin_fabs_fast_double_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_float_convertible_constant_intrin_floor" +4: "test_shrink_float_convertible_constant_intrin_floor" has unsupported operation after optimization: builtin.unregistered: llvm.intr.floor + +4: "test_shrink_float_convertible_constant_intrin_floor" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_ceil" +4: "test_shrink_float_convertible_constant_intrin_ceil" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +4: "test_shrink_float_convertible_constant_intrin_ceil" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_round" +4: "test_shrink_float_convertible_constant_intrin_round" has unsupported operation after optimization: builtin.unregistered: llvm.intr.round + +4: "test_shrink_float_convertible_constant_intrin_round" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_roundeven" +4: "test_shrink_float_convertible_constant_intrin_roundeven" has unsupported operation after optimization: builtin.unregistered: llvm.intr.roundeven + +4: "test_shrink_float_convertible_constant_intrin_roundeven" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_nearbyint" +4: "test_shrink_float_convertible_constant_intrin_nearbyint" has unsupported operation after optimization: builtin.unregistered: llvm.intr.nearbyint + +4: "test_shrink_float_convertible_constant_intrin_nearbyint" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_trunc" +4: "test_shrink_float_convertible_constant_intrin_trunc" has unsupported operation after optimization: builtin.unregistered: llvm.intr.trunc + +4: "test_shrink_float_convertible_constant_intrin_trunc" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_fabs" +4: "test_shrink_float_convertible_constant_intrin_fabs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_shrink_float_convertible_constant_intrin_fabs" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_float_convertible_constant_intrin_fabs_fast" +4: "test_shrink_float_convertible_constant_intrin_fabs_fast" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_shrink_float_convertible_constant_intrin_fabs_fast" has unsupported operation after optimization: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_floor" +4: "test_no_shrink_mismatched_type_intrin_floor" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test_no_shrink_mismatched_type_intrin_floor" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_ceil" +4: "test_no_shrink_mismatched_type_intrin_ceil" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test_no_shrink_mismatched_type_intrin_ceil" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_round" +4: "test_no_shrink_mismatched_type_intrin_round" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test_no_shrink_mismatched_type_intrin_round" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_roundeven" +4: "test_no_shrink_mismatched_type_intrin_roundeven" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test_no_shrink_mismatched_type_intrin_roundeven" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_nearbyint" +4: "test_no_shrink_mismatched_type_intrin_nearbyint" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test_no_shrink_mismatched_type_intrin_nearbyint" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_mismatched_type_intrin_trunc" +4: "test_no_shrink_mismatched_type_intrin_trunc" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test_no_shrink_mismatched_type_intrin_trunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_shrink_mismatched_type_intrin_fabs_double_src" +4: "test_shrink_mismatched_type_intrin_fabs_double_src" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_shrink_mismatched_type_intrin_fabs_double_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_mismatched_type_intrin_fabs_fast_double_src" +4: "test_mismatched_type_intrin_fabs_fast_double_src" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_mismatched_type_intrin_fabs_fast_double_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_shrink_intrin_floor_fp16_vec" +4: "test_shrink_intrin_floor_fp16_vec" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test_shrink_intrin_floor_fp16_vec" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_ceil_fp16_src" +4: "test_shrink_intrin_ceil_fp16_src" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test_shrink_intrin_ceil_fp16_src" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_round_fp16_vec" +4: "test_shrink_intrin_round_fp16_vec" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test_shrink_intrin_round_fp16_vec" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_roundeven_fp16_vec" +4: "test_shrink_intrin_roundeven_fp16_vec" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test_shrink_intrin_roundeven_fp16_vec" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_nearbyint_fp16_src" +4: "test_shrink_intrin_nearbyint_fp16_src" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test_shrink_intrin_nearbyint_fp16_src" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_trunc_fp16_src" +4: "test_shrink_intrin_trunc_fp16_src" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test_shrink_intrin_trunc_fp16_src" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_fabs_fp16_src" +4: "test_shrink_intrin_fabs_fp16_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_shrink_intrin_fabs_fp16_src" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_shrink_intrin_fabs_fast_fp16_src" +4: "test_shrink_intrin_fabs_fast_fp16_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_shrink_intrin_fabs_fast_fp16_src" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "test_no_shrink_intrin_floor_multi_use_fpext" +4: "test_no_shrink_intrin_floor_multi_use_fpext" has unsupported operation: llvm.mlir.undef + +4: "test_no_shrink_intrin_floor_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_no_shrink_intrin_floor_multi_use_fpext" has unsupported operation: llvm.store + +4: "test_no_shrink_intrin_floor_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test_no_shrink_intrin_floor_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_no_shrink_intrin_fabs_multi_use_fpext" +4: "test_no_shrink_intrin_fabs_multi_use_fpext" has unsupported operation: llvm.mlir.undef + +4: "test_no_shrink_intrin_fabs_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test_no_shrink_intrin_fabs_multi_use_fpext" has unsupported operation: llvm.store + +4: "test_no_shrink_intrin_fabs_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_no_shrink_intrin_fabs_multi_use_fpext" has unsupported operation: builtin.unregistered: llvm.fptrunc + diff --git a/SSA/Projects/InstCombine/tests/logs/early_constfold_changes_IR.txt b/SSA/Projects/InstCombine/tests/logs/early_constfold_changes_IR.txt new file mode 100644 index 000000000..5f17383ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/early_constfold_changes_IR.txt @@ -0,0 +1,8 @@ +1: "foo" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/early_dce_clobbers_callgraph.txt b/SSA/Projects/InstCombine/tests/logs/early_dce_clobbers_callgraph.txt new file mode 100644 index 000000000..bee2d4f23 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/early_dce_clobbers_callgraph.txt @@ -0,0 +1,8 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "bar" +7: "bar" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/element-atomic-memintrins.txt b/SSA/Projects/InstCombine/tests/logs/element-atomic-memintrins.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/enforce-known-alignment.txt b/SSA/Projects/InstCombine/tests/logs/enforce-known-alignment.txt new file mode 100644 index 000000000..c3fdecc08 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/enforce-known-alignment.txt @@ -0,0 +1,2 @@ +3: enforce-known-alignment.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/eq-of-parts.txt b/SSA/Projects/InstCombine/tests/logs/eq-of-parts.txt new file mode 100644 index 000000000..d92e33ab6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/eq-of-parts.txt @@ -0,0 +1,552 @@ +1: "use.i32" +5: "use.i32" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "use.i1" +5: "use.i1" is empty + +1: "eq_10" +4: "eq_10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_210" +4: "eq_210" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_210" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_210" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_3210" +4: "eq_3210" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21" +4: "eq_21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_comm_and" +4: "eq_21_comm_and" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_and" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_comm_eq" +4: "eq_21_comm_eq" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_eq" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_comm_eq2" +4: "eq_21_comm_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_comm_eq2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_vector" +4: "eq_21_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_irregular_bit_widths" +4: "eq_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_extra_use_lshr" +4: "eq_21_extra_use_lshr" has unsupported operation: llvm.call + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_extra_use_trunc" +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_trunc" has unsupported operation: llvm.call + +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_extra_use_eq1" +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_extra_use_eq1" has unsupported operation: llvm.call + +4: "eq_21_extra_use_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_extra_use_eq2" +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_extra_use_eq2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_extra_use_eq2" has unsupported operation: llvm.call + +1: "eq_21_logical" +4: "eq_21_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_op1" +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_op2" +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_op3" +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_op4" +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_shift1" +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_shift2" +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_not_adjacent" +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_shift_in_zeros" +4: "eq_shift_in_zeros" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_pred1" +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_21_wrong_pred2" +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_10" +4: "ne_10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_210" +4: "ne_210" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_210" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_210" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_3210" +4: "ne_3210" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21" +4: "ne_21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_comm_or" +4: "ne_21_comm_or" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_or" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_or" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_comm_ne" +4: "ne_21_comm_ne" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_ne" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_comm_ne2" +4: "ne_21_comm_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_comm_ne2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_vector" +4: "ne_21_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_irregular_bit_widths" +4: "ne_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_irregular_bit_widths" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_extra_use_lshr" +4: "ne_21_extra_use_lshr" has unsupported operation: llvm.call + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_extra_use_trunc" +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_trunc" has unsupported operation: llvm.call + +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_extra_use_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_extra_use_ne1" +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_extra_use_ne1" has unsupported operation: llvm.call + +4: "ne_21_extra_use_ne1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_extra_use_ne2" +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_extra_use_ne2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_extra_use_ne2" has unsupported operation: llvm.call + +1: "ne_21_logical" +4: "ne_21_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_op1" +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_op2" +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_op3" +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_op3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_op4" +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_op4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_shift1" +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_shift2" +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_shift2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_not_adjacent" +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_not_adjacent" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_shift_in_zeros" +4: "ne_shift_in_zeros" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_pred1" +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_21_wrong_pred2" +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_21_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_optimized_highbits_cmp" +4: "eq_optimized_highbits_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_optimized_highbits_cmp_todo_overlapping" +4: "eq_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_optimized_highbits_cmp_fail_not_pow2" +4: "eq_optimized_highbits_cmp_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_optimized_highbits_cmp_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_optimized_highbits_cmp_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_optimized_highbits_cmp_fail_not_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_optimized_highbits_cmp" +4: "ne_optimized_highbits_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_optimized_highbits_cmp_fail_not_mask" +4: "ne_optimized_highbits_cmp_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_optimized_highbits_cmp_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_optimized_highbits_cmp_fail_no_combined_int" +4: "ne_optimized_highbits_cmp_fail_no_combined_int" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_optimized_highbits_cmp_fail_no_combined_int" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_fail_no_combined_int" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_fail_no_combined_int" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_optimized_highbits_cmp_todo_overlapping" +4: "ne_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_optimized_highbits_cmp_todo_overlapping" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/erase-dbg-values-at-dead-alloc-site.txt b/SSA/Projects/InstCombine/tests/logs/erase-dbg-values-at-dead-alloc-site.txt new file mode 100644 index 000000000..5a0d88aac --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/erase-dbg-values-at-dead-alloc-site.txt @@ -0,0 +1,9 @@ +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "t1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/err-rep-cold.txt b/SSA/Projects/InstCombine/tests/logs/err-rep-cold.txt new file mode 100644 index 000000000..648517128 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/err-rep-cold.txt @@ -0,0 +1,51 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +1: "fprintf" +5: "fprintf" is empty + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +1: "fwrite" +5: "fwrite" is empty + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/exact.txt b/SSA/Projects/InstCombine/tests/logs/exact.txt new file mode 100644 index 000000000..99e479d4e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/exact.txt @@ -0,0 +1,141 @@ +1: "sdiv1" +7: "sdiv1" is unchanged by InstCombine + +1: "sdiv2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.return + +1: "sdiv2_vec" +"sdiv2_vec" contains vectors which are unsupported + +1: "sdiv3" +4: "sdiv3" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "sdiv4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.mul +2: llvm.return + +1: "sdiv5" +4: "sdiv5" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "sdiv6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.mul +2: llvm.return + +1: "udiv1" +4: "udiv1" has unsupported operation after optimization: llvm.udiv + +1: "udiv2" +4: "udiv2" has unsupported operation after optimization: llvm.udiv + +1: "ashr1" +7: "ashr1" is unchanged by InstCombine + +1: "ashr1_vec" +7: "ashr1_vec" is unchanged by InstCombine + +1: "ashr_icmp1" +4: "ashr_icmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_icmp2" +4: "ashr_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_icmp2_vec" +4: "ashr_icmp2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr9998" +4: "pr9998" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr9998vec" +4: "pr9998vec" has unsupported operation: builtin.unregistered: llvm.sext + +4: "pr9998vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_icmp1" +4: "udiv_icmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_icmp1_vec" +4: "udiv_icmp1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_icmp2" +4: "udiv_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_icmp2_vec" +4: "udiv_icmp2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp1" +4: "sdiv_icmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp1_vec" +4: "sdiv_icmp1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp2" +4: "sdiv_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp2_vec" +4: "sdiv_icmp2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp3" +4: "sdiv_icmp3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp3_vec" +4: "sdiv_icmp3_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp4" +4: "sdiv_icmp4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp4_vec" +4: "sdiv_icmp4_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp5" +4: "sdiv_icmp5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp5_vec" +4: "sdiv_icmp5_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp6" +4: "sdiv_icmp6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_icmp6_vec" +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 + +1: "mul_of_sdiv" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.mul +2: llvm.return + +1: "mul_of_sdiv_non_splat" +"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 + +1: "mul_of_sdiv_fail_ub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.mul +2: llvm.return + +1: "mul_of_sdiv_fail_ub_non_splat" +7: "mul_of_sdiv_fail_ub_non_splat" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/exp2-1.txt b/SSA/Projects/InstCombine/tests/logs/exp2-1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/exp2-2.txt b/SSA/Projects/InstCombine/tests/logs/exp2-2.txt new file mode 100644 index 000000000..333cd4f06 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/exp2-2.txt @@ -0,0 +1,8 @@ +1: "exp2" +5: "exp2" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/exp2-to-ldexp.txt b/SSA/Projects/InstCombine/tests/logs/exp2-to-ldexp.txt new file mode 100644 index 000000000..6972ed3e9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/exp2-to-ldexp.txt @@ -0,0 +1,2 @@ +3: exp2-to-ldexp.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt b/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt new file mode 100644 index 000000000..e49ec4964 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/extract-select-agg.txt @@ -0,0 +1,63 @@ +1: "test_select_agg_constant_agg" +4: "test_select_agg_constant_agg" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_select_agg_constant_agg_multiuse" +4: "test_select_agg_constant_agg_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "test_select_agg_constant" +4: "test_select_agg_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_select_agg_constant" has unsupported operation: llvm.mlir.undef + +4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_constant" has unsupported operation: llvm.mlir.undef + +4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_constant" has unsupported operation: llvm.insertvalue + +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" +4: "test_select_agg_multiuse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_select_agg_multiuse" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_multiuse" has unsupported operation: llvm.insertvalue + +4: "test_select_agg_multiuse" has unsupported operation: llvm.insertvalue + +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 + +4: "test_select_agg_multiuse" has unsupported operation: llvm.extractvalue + +4: "test_select_agg_multiuse" has unsupported operation: llvm.call + +4: "test_select_agg_multiuse" has unsupported operation: llvm.return + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt new file mode 100644 index 000000000..a66b6f32b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/extractelement-inseltpoison.txt @@ -0,0 +1,157 @@ +1: "extractelement_out_of_range" +4: "extractelement_out_of_range" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "extractelement_type_out_of_range" +4: "extractelement_type_out_of_range" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_equal_num_elts" +4: "bitcasted_inselt_equal_num_elts" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test2" +"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 + +1: "bitcasted_inselt_wide_source_modulo_elt" +4: "bitcasted_inselt_wide_source_modulo_elt" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bitcasted_inselt_wide_source_not_modulo_elt" +4: "bitcasted_inselt_wide_source_not_modulo_elt" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bitcasted_inselt_wide_source_not_modulo_elt_not_half" +4: "bitcasted_inselt_wide_source_not_modulo_elt_not_half" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bitcasted_inselt_wide_source_not_modulo_elt_not_half_weird_types" +4: "bitcasted_inselt_wide_source_not_modulo_elt_not_half_weird_types" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bitcasted_inselt_wide_source_wrong_insert" +4: "bitcasted_inselt_wide_source_wrong_insert" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_wide_source_wrong_insert" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "use" +5: "use" is empty + +1: "bitcasted_inselt_wide_source_uses" +4: "bitcasted_inselt_wide_source_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_wide_source_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_wide_source_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_wide_source_uses" has unsupported operation: llvm.call + +4: "bitcasted_inselt_wide_source_uses" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_to_FP" +4: "bitcasted_inselt_to_FP" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "bitcasted_inselt_to_FP" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "use_v2i128" +5: "use_v2i128" is empty + +1: "use_v8f32" +5: "use_v8f32" is empty + +1: "bitcasted_inselt_to_FP_uses" +4: "bitcasted_inselt_to_FP_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_to_FP_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_to_FP_uses" has unsupported operation: llvm.call + +4: "bitcasted_inselt_to_FP_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_to_FP_uses" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_to_FP_uses2" +4: "bitcasted_inselt_to_FP_uses2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_to_FP_uses2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_to_FP_uses2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_to_FP_uses2" has unsupported operation: llvm.call + +4: "bitcasted_inselt_to_FP_uses2" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_from_FP" +4: "bitcasted_inselt_from_FP" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_from_FP" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use_v2f64" +5: "use_v2f64" is empty + +1: "use_v8i16" +5: "use_v8i16" is empty + +1: "bitcasted_inselt_from_FP_uses" +4: "bitcasted_inselt_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_from_FP_uses" has unsupported operation: llvm.call + +4: "bitcasted_inselt_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_from_FP_uses2" +4: "bitcasted_inselt_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_from_FP_uses2" has unsupported operation: llvm.call + +4: "bitcasted_inselt_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_to_and_from_FP" +4: "bitcasted_inselt_to_and_from_FP" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_to_and_from_FP" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_to_and_from_FP" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_to_and_from_FP" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "bitcasted_inselt_to_and_from_FP_uses" +4: "bitcasted_inselt_to_and_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_to_and_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_to_and_from_FP_uses" has unsupported operation: llvm.call + +4: "bitcasted_inselt_to_and_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_to_and_from_FP_uses" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "use_v4f32" +5: "use_v4f32" is empty + +1: "bitcasted_inselt_to_and_from_FP_uses2" +4: "bitcasted_inselt_to_and_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bitcasted_inselt_to_and_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcasted_inselt_to_and_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasted_inselt_to_and_from_FP_uses2" has unsupported operation: llvm.call + +4: "bitcasted_inselt_to_and_from_FP_uses2" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "invalid_extractelement" +4: "invalid_extractelement" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "invalid_extractelement" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "invalid_extractelement" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "invalid_extractelement" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "invalid_extractelement" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/extractelement.txt b/SSA/Projects/InstCombine/tests/logs/extractelement.txt new file mode 100644 index 000000000..622d5b889 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/extractelement.txt @@ -0,0 +1,2 @@ +3: extractelement.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/extractinsert-tbaa.txt b/SSA/Projects/InstCombine/tests/logs/extractinsert-tbaa.txt new file mode 100644 index 000000000..affc15e82 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/extractinsert-tbaa.txt @@ -0,0 +1,24 @@ +1: "teststructextract" +4: "teststructextract" has unsupported operation: llvm.load + +1: "testarrayextract" +4: "testarrayextract" has unsupported operation: llvm.load + +1: "teststructinsert" +4: "teststructinsert" has unsupported operation: llvm.store + +4: "teststructinsert" has unsupported operation: llvm.getelementptr + +4: "teststructinsert" has unsupported operation: llvm.store + +4: "teststructinsert" has unsupported operation: llvm.return + +1: "testarrayinsert" +4: "testarrayinsert" has unsupported operation: llvm.store + +4: "testarrayinsert" has unsupported operation: llvm.getelementptr + +4: "testarrayinsert" has unsupported operation: llvm.store + +4: "testarrayinsert" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/extractvalue.txt b/SSA/Projects/InstCombine/tests/logs/extractvalue.txt new file mode 100644 index 000000000..497d946f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/extractvalue.txt @@ -0,0 +1,2 @@ +3: extractvalue.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fabs-as-int.txt b/SSA/Projects/InstCombine/tests/logs/fabs-as-int.txt new file mode 100644 index 000000000..b20dafa02 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fabs-as-int.txt @@ -0,0 +1,2 @@ +3: fabs-as-int.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fabs-copysign.txt b/SSA/Projects/InstCombine/tests/logs/fabs-copysign.txt new file mode 100644 index 000000000..3a17c1470 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fabs-copysign.txt @@ -0,0 +1,45 @@ +1: "use" +5: "use" is empty + +1: "fabs_copysign" +4: "fabs_copysign" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysign_commuted" +4: "fabs_copysign_commuted" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysign_vec" +4: "fabs_copysign_vec" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysign_vec_commuted" +4: "fabs_copysign_vec_commuted" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysignf" +4: "fabs_copysignf" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysign_use" +4: "fabs_copysign_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fabs_copysign_use" has unsupported operation: llvm.call + +4: "fabs_copysign_use" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +1: "fabs_copysign_mismatch" +4: "fabs_copysign_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fabs_copysign_mismatch" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fabs_copysign_commuted_mismatch" +4: "fabs_copysign_commuted_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fabs_copysign_commuted_mismatch" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fabs_copysign_no_nnan" +4: "fabs_copysign_no_nnan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fabs_copysign_no_nnan" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fabs_copysign_no_ninf" +4: "fabs_copysign_no_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fabs_copysign_no_ninf" has unsupported operation: builtin.unregistered: llvm.fdiv + diff --git a/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt b/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt new file mode 100644 index 000000000..788e08763 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fabs-fneg-fold.txt @@ -0,0 +1,63 @@ +1: "fabs_fneg_basic" +4: "fabs_fneg_basic" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_fneg_v2f32" +4: "fabs_fneg_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_fneg_f64" +4: "fabs_fneg_f64" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_fneg_v4f64" +4: "fabs_fneg_v4f64" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_fneg_f16" +4: "fabs_fneg_f16" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_nnan" +4: "fabs_copysign_nnan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_ninf" +4: "fabs_copysign_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_nsz" +4: "fabs_copysign_nsz" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_nnan_negative" +4: "fabs_copysign_nnan_negative" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_ninf_negative" +4: "fabs_copysign_ninf_negative" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_copysign_nsz_negative" +4: "fabs_copysign_nsz_negative" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fabs_fneg_no_fabs" +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 + +1: "fabs_fneg_splat_poison_v2f32" +4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: llvm.mlir.undef + +4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fabs_fneg_splat_poison_v2f32" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "use" +5: "use" is empty + +1: "fabs_fneg_multi_use" +4: "fabs_fneg_multi_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fabs_fneg_multi_use" has unsupported operation: llvm.call + +4: "fabs_fneg_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/fabs-libcall.txt b/SSA/Projects/InstCombine/tests/logs/fabs-libcall.txt new file mode 100644 index 000000000..67f8bdc83 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fabs-libcall.txt @@ -0,0 +1,9 @@ +1: "fabsl" +5: "fabsl" is empty + +1: "replace_fabs_call_f80" +4: "replace_fabs_call_f80" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fmf_replace_fabs_call_f80" +4: "fmf_replace_fabs_call_f80" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/fabs.txt b/SSA/Projects/InstCombine/tests/logs/fabs.txt new file mode 100644 index 000000000..d3179e5fc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fabs.txt @@ -0,0 +1,535 @@ +1: "fabsf" +5: "fabsf" is empty + +1: "fabs" +5: "fabs" is empty + +1: "fabsl" +5: "fabsl" is empty + +1: "use" +5: "use" is empty + +1: "usebool" +5: "usebool" is empty + +1: "replace_fabs_call_f32" +4: "replace_fabs_call_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "replace_fabs_call_f64" +4: "replace_fabs_call_f64" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "replace_fabs_call_f128" +4: "replace_fabs_call_f128" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fmf_replace_fabs_call_f32" +4: "fmf_replace_fabs_call_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_fabs_intrinsic_f32" +4: "square_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "square_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_fabs_intrinsic_f64" +4: "square_fabs_intrinsic_f64" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "square_fabs_intrinsic_f64" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_fabs_intrinsic_f128" +4: "square_fabs_intrinsic_f128" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "square_fabs_intrinsic_f128" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_nnan_fabs_intrinsic_f32" +4: "square_nnan_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "square_fabs_shrink_call1" +4: "square_fabs_shrink_call1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "square_fabs_shrink_call1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_fabs_shrink_call2" +4: "square_fabs_shrink_call2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "square_fabs_shrink_call2" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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" +4: "fabs_select_var_constant_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "square_fma_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_nnan_fma_fabs_intrinsic_f32" +4: "square_nnan_fma_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "square_fmuladd_fabs_intrinsic_f32" +4: "square_fmuladd_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +4: "square_fmuladd_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "square_nnan_fmuladd_fabs_intrinsic_f32" +4: "square_nnan_fmuladd_fabs_intrinsic_f32" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "multi_use_fabs_fpext" +4: "multi_use_fabs_fpext" has unsupported operation: llvm.mlir.undef + +4: "multi_use_fabs_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "multi_use_fabs_fpext" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "multi_use_fabs_fpext" has unsupported operation: llvm.store + +1: "select_fcmp_ole_zero" +4: "select_fcmp_ole_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_ole_zero" +4: "select_fcmp_nnan_ole_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_nnan_fcmp_nnan_ole_zero" +4: "select_nnan_fcmp_nnan_ole_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_ule_zero" +4: "select_fcmp_nnan_ule_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_olt_zero" +4: "select_fcmp_nnan_olt_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_nnan_fcmp_nnan_ole_negzero" +4: "select_nnan_fcmp_nnan_ole_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_ogt_zero" +4: "select_fcmp_ogt_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_nsz_fcmp_ogt_fneg" +4: "select_nsz_fcmp_ogt_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +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 + +1: "select_fcmp_nnan_ogt_zero" +4: "select_fcmp_nnan_ogt_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_nnan_fcmp_nnan_ogt_zero" +4: "select_nnan_fcmp_nnan_ogt_zero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_ogt_negzero" +4: "select_fcmp_nnan_ogt_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_nnan_fcmp_nnan_ogt_negzero" +4: "select_nnan_fcmp_nnan_ogt_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_ugt_negzero" +4: "select_fcmp_nnan_ugt_negzero" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "select_fcmp_nnan_oge_negzero" +4: "select_fcmp_nnan_oge_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_olt_zero" +4: "select_fcmp_nnan_nsz_olt_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_ult_zero" +4: "select_fcmp_nnan_nsz_ult_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_ult_negzero" +4: "select_fcmp_nnan_nsz_ult_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_ule_zero" +4: "select_fcmp_nnan_nsz_ule_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_ule_negzero" +4: "select_fcmp_nnan_nsz_ule_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fcmp_nnan_nsz_ogt_zero" +4: "select_fcmp_nnan_nsz_ogt_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "select_fneg_use1" +4: "select_fneg_use1" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "select_fneg_use1" has unsupported operation: llvm.call + +4: "select_fneg_use1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "select_fneg_vec" +4: "select_fneg_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_neg_negx_x" +4: "test_select_neg_negx_x" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_nneg_negx_x" +4: "test_select_nneg_negx_x" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_select_nneg_negx_x" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_select_neg_x_negx" +4: "test_select_neg_x_negx" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_select_neg_x_negx" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_select_nneg_x_negx" +4: "test_select_nneg_x_negx" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_neg_negx_x_multiuse1" +4: "test_select_neg_negx_x_multiuse1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_select_neg_negx_x_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_select_neg_negx_x_multiuse1" has unsupported operation: llvm.call + +4: "test_select_neg_negx_x_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_neg_negx_x_multiuse2" +4: "test_select_neg_negx_x_multiuse2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_select_neg_negx_x_multiuse2" has unsupported operation: llvm.call + +4: "test_select_neg_negx_x_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_neg_negx_x_multiuse3" +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: llvm.call + +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: llvm.call + +4: "test_select_neg_negx_x_multiuse3" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_neg_negx_x_fmf" +4: "test_select_neg_negx_x_fmf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_select_nneg_negx_x_fmf" +4: "test_select_nneg_negx_x_fmf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_select_nneg_negx_x_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_select_nneg_negx_x_multiuse4" +4: "test_select_nneg_negx_x_multiuse4" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_select_nneg_negx_x_multiuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +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.fneg + +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 + +4: "test_select_neg_negx_x_mismatched1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test_select_neg_negx_x_mismatched2" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test_select_neg_negx_x_mismatched3" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test_select_neg_negx_x_wrong_type" has unsupported operation: builtin.unregistered: llvm.icmp + +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/fadd-fsub-factor.txt b/SSA/Projects/InstCombine/tests/logs/fadd-fsub-factor.txt new file mode 100644 index 000000000..577cc3d24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fadd-fsub-factor.txt @@ -0,0 +1,298 @@ +1: "fmul_fadd" +4: "fmul_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fadd_commute1_vec" +4: "fmul_fadd_commute1_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_commute1_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fadd_commute2_vec" +4: "fmul_fadd_commute2_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_commute2_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fadd_commute3" +4: "fmul_fadd_commute3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_commute3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fadd_not_enough_FMF" +4: "fmul_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "use" +5: "use" is empty + +1: "fmul_fadd_uses1" +4: "fmul_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_uses1" has unsupported operation: llvm.call + +1: "fmul_fadd_uses2" +4: "fmul_fadd_uses2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_uses2" has unsupported operation: llvm.call + +1: "fmul_fadd_uses3" +4: "fmul_fadd_uses3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fadd_uses3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fmul_fadd_uses3" has unsupported operation: llvm.call + +4: "fmul_fadd_uses3" has unsupported operation: llvm.call + +1: "fmul_fsub" +4: "fmul_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fsub_commute1_vec" +4: "fmul_fsub_commute1_vec" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_commute1_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fsub_commute2_vec" +4: "fmul_fsub_commute2_vec" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_commute2_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fsub_commute3" +4: "fmul_fsub_commute3" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_commute3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_fsub_not_enough_FMF" +4: "fmul_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fsub_uses1" +4: "fmul_fsub_uses1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_uses1" has unsupported operation: llvm.call + +1: "fmul_fsub_uses2" +4: "fmul_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_uses2" has unsupported operation: llvm.call + +1: "fmul_fsub_uses3" +4: "fmul_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fmul_fsub_uses3" has unsupported operation: llvm.call + +4: "fmul_fsub_uses3" has unsupported operation: llvm.call + +1: "fdiv_fadd" +4: "fdiv_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fdiv_fadd" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fsub" +4: "fdiv_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fdiv_fsub" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fadd_vec" +4: "fdiv_fadd_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fdiv_fadd_vec" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fsub_vec" +4: "fdiv_fsub_vec" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fdiv_fsub_vec" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fadd_commute1" +4: "fdiv_fadd_commute1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_commute1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_commute1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fsub_commute2" +4: "fdiv_fsub_commute2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_commute2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_commute2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fadd_not_enough_FMF" +4: "fdiv_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fsub_not_enough_FMF" +4: "fdiv_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fadd_uses1" +4: "fdiv_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_uses1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fdiv_fadd_uses1" has unsupported operation: llvm.call + +1: "fdiv_fsub_uses2" +4: "fdiv_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_uses2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fdiv_fsub_uses2" has unsupported operation: llvm.call + +1: "fdiv_fsub_uses3" +4: "fdiv_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_uses3" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fdiv_fsub_uses3" has unsupported operation: llvm.call + +4: "fdiv_fsub_uses3" has unsupported operation: llvm.call + +1: "fdiv_fadd_not_denorm" +4: "fdiv_fadd_not_denorm" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fadd_denorm" +4: "fdiv_fadd_denorm" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_denorm" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fadd_denorm" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fsub_denorm" +4: "fdiv_fsub_denorm" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_denorm" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fsub_denorm" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "lerp_commute0" +4: "lerp_commute0" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute0" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute0" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute1" +4: "lerp_commute1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute2" +4: "lerp_commute2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute3" +4: "lerp_commute3" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute4" +4: "lerp_commute4" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute4" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute5" +4: "lerp_commute5" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute5" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute6" +4: "lerp_commute6" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute6" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute6" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_commute7" +4: "lerp_commute7" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_commute7" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_commute7" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_extra_use1" +4: "lerp_extra_use1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_extra_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use1" has unsupported operation: llvm.call + +4: "lerp_extra_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_extra_use2" +4: "lerp_extra_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use2" has unsupported operation: llvm.call + +4: "lerp_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "lerp_extra_use3" +4: "lerp_extra_use3" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "lerp_extra_use3" has unsupported operation: llvm.call + +4: "lerp_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "lerp_extra_use3" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/fadd-maximum-minimum.txt b/SSA/Projects/InstCombine/tests/logs/fadd-maximum-minimum.txt new file mode 100644 index 000000000..8ea165c20 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fadd-maximum-minimum.txt @@ -0,0 +1,21 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_comm1" +4: "test_comm1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_comm2" +4: "test_comm2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_comm3" +4: "test_comm3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_vect" +4: "test_vect" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_flags" +4: "test_flags" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_flags2" +4: "test_flags2" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/fadd.txt b/SSA/Projects/InstCombine/tests/logs/fadd.txt new file mode 100644 index 000000000..956c57be2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fadd.txt @@ -0,0 +1,600 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "fneg_op0" +4: "fneg_op0" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fneg_op1" +4: "fneg_op1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg1" +4: "fdiv_fneg1" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg2" +4: "fdiv_fneg2" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg1" +4: "fmul_fneg1" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg2" +4: "fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg1_commute" +4: "fdiv_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg2_commute" +4: "fdiv_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg1_commute" +4: "fmul_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg1_commute" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg2_commute" +4: "fmul_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg2_commute" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg1_extra_use" +4: "fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg1_extra_use" has unsupported operation: llvm.call + +4: "fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fneg2_extra_use" +4: "fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg2_extra_use" has unsupported operation: llvm.call + +4: "fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_fneg1_extra_use" +4: "fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg1_extra_use" has unsupported operation: llvm.call + +4: "fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_fneg2_extra_use" +4: "fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg2_extra_use" has unsupported operation: llvm.call + +4: "fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fneg1_extra_use2" +4: "fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg1_extra_use2" has unsupported operation: llvm.call + +4: "fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg2_extra_use2" +4: "fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg2_extra_use2" has unsupported operation: llvm.call + +4: "fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg1_extra_use2" +4: "fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg1_extra_use2" has unsupported operation: llvm.call + +4: "fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fneg2_extra_use2" +4: "fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg2_extra_use2" has unsupported operation: llvm.call + +4: "fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_fneg1_extra_use3" +4: "fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fdiv_fneg2_extra_use3" +4: "fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fdiv_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_fneg1_extra_use3" +4: "fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_fneg2_extra_use3" +4: "fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.frem + +4: "fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fmul_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_rdx" +4: "fadd_rdx" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +1: "fadd_rdx_commute" +4: "fadd_rdx_commute" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fadd_rdx_commute" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +1: "fadd_rdx_fmf" +4: "fadd_rdx_fmf" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +4: "fadd_rdx_fmf" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_rdx_extra_use" +4: "fadd_rdx_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +4: "fadd_rdx_extra_use" has unsupported operation: llvm.call + +4: "fadd_rdx_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_rdx_nonzero_start_const_op" +4: "fadd_rdx_nonzero_start_const_op" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +1: "fadd_rdx_nonzero_start_variable_op" +4: "fadd_rdx_nonzero_start_variable_op" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +4: "fadd_rdx_nonzero_start_variable_op" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_fmul_common_op" +4: "fadd_fmul_common_op" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_fmul_common_op_vec" +4: "fadd_fmul_common_op_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_fmul_common_op_commute_vec" +4: "fadd_fmul_common_op_commute_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_fmul_common_op_commute_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_fmul_common_op_use" +4: "fadd_fmul_common_op_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_fmul_common_op_use" has unsupported operation: llvm.call + +4: "fadd_fmul_common_op_use" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_fmul_common_op_wrong_fmf" +4: "fadd_fmul_common_op_wrong_fmf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_fmul_common_op_wrong_fmf" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_fneg_reass_commute0" +4: "fadd_fneg_reass_commute0" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fadd_fneg_reass_commute0" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute0" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fadd_fneg_reass_commute1" +4: "fadd_fneg_reass_commute1" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fadd_fneg_reass_commute1" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fadd_fneg_reass_commute1" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fadd_fneg_reass_commute2" +4: "fadd_fneg_reass_commute2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fadd_fneg_reass_commute2" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fadd_fneg_reass_commute2" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_fneg_reass_commute2" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fadd_fneg_reass_commute3" +4: "fadd_fneg_reass_commute3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fadd_fneg_reass_commute3" has unsupported operation: llvm.call + +4: "fadd_fneg_reass_commute3" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fadd_fneg_commute0" +4: "fadd_fneg_commute0" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fadd_fneg_commute0" has unsupported operation: llvm.call + +4: "fadd_fneg_commute0" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fadd_fneg_commute0" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_fneg_commute0" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varA" +4: "fadd_reduce_sqr_sum_varA" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_order2" +4: "fadd_reduce_sqr_sum_varA_order2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_order2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_order3" +4: "fadd_reduce_sqr_sum_varA_order3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_order3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_order4" +4: "fadd_reduce_sqr_sum_varA_order4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_order4" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_order5" +4: "fadd_reduce_sqr_sum_varA_order5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_order5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB" +4: "fadd_reduce_sqr_sum_varB" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB_order1" +4: "fadd_reduce_sqr_sum_varB_order1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_order1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB_order2" +4: "fadd_reduce_sqr_sum_varB_order2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_order2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB_order3" +4: "fadd_reduce_sqr_sum_varB_order3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_order3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB2" +4: "fadd_reduce_sqr_sum_varB2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB2_order1" +4: "fadd_reduce_sqr_sum_varB2_order1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_order1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB2_order2" +4: "fadd_reduce_sqr_sum_varB2_order2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_order2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB2_order3" +4: "fadd_reduce_sqr_sum_varB2_order3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_order3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_not_one_use1" +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_not_one_use1" has unsupported operation: llvm.call + +1: "fadd_reduce_sqr_sum_varA_not_one_use2" +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_not_one_use2" has unsupported operation: llvm.call + +1: "fadd_reduce_sqr_sum_varB_not_one_use1" +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_not_one_use1" has unsupported operation: llvm.call + +1: "fadd_reduce_sqr_sum_varB_not_one_use2" +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_not_one_use2" has unsupported operation: llvm.call + +1: "fadd_reduce_sqr_sum_varB2_not_one_use" +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_not_one_use" has unsupported operation: llvm.call + +1: "fadd_reduce_sqr_sum_varA_invalid1" +4: "fadd_reduce_sqr_sum_varA_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varA_invalid2" +4: "fadd_reduce_sqr_sum_varA_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varA_invalid3" +4: "fadd_reduce_sqr_sum_varA_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varA_invalid4" +4: "fadd_reduce_sqr_sum_varA_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid4" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varA_invalid5" +4: "fadd_reduce_sqr_sum_varA_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varA_invalid5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varA_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fadd_reduce_sqr_sum_varB_invalid1" +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB_invalid2" +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB_invalid3" +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB_invalid4" +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_invalid4" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB_invalid5" +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB_invalid5" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB2_invalid1" +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_invalid1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB2_invalid2" +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_invalid2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_reduce_sqr_sum_varB2_invalid3" +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_reduce_sqr_sum_varB2_invalid3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fake_func" +5: "fake_func" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fast-basictest.txt b/SSA/Projects/InstCombine/tests/logs/fast-basictest.txt new file mode 100644 index 000000000..f601d2009 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fast-basictest.txt @@ -0,0 +1,296 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test1_minimal" +4: "test1_minimal" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test1_reassoc" +4: "test1_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test1_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test2_no_FMF" +4: "test2_no_FMF" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2_no_FMF" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2_no_FMF" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test2_reassoc" +4: "test2_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test7" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test7_unary_fneg" +4: "test7_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test7_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test7_reassoc_nsz" +4: "test7_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test7_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test7_reassoc" +4: "test7_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test7_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test7_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test8_reassoc_nsz" +4: "test8_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test8_reassoc" +4: "test8_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test8_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test9_reassoc_nsz" +4: "test9_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test9_reassoc" +4: "test9_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test9_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test9_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test10_reassoc_nsz" +4: "test10_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test10_reassoc" +4: "test10_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test10_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test10_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test11" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test11_reassoc_nsz" +4: "test11_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test11_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test11_reassoc" +4: "test11_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test11_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test11_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test11_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test11_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test12" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test12_unary_fneg" +4: "test12_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test12_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test12_reassoc_nsz" +4: "test12_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test12_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test12_reassoc" +4: "test12_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test12_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test12_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test12_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test13_reassoc_nsz" +4: "test13_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test13_reassoc" +4: "test13_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test13_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test14_reassoc" +4: "test14_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test15_unary_fneg" +4: "test15_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test15_reassoc_nsz" +4: "test15_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test15_reassoc" +4: "test15_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test15_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test15_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test16" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test16_unary_fneg" +4: "test16_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test16_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test16_reassoc_nsz" +4: "test16_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test16_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test16_reassoc" +4: "test16_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test16_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test16_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test17_unary_fneg" +4: "test17_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test17_reassoc_nsz" +4: "test17_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test17_reassoc" +4: "test17_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test17_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "test17_unary_fneg_no_FMF" +4: "test17_unary_fneg_no_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_unary_fneg_no_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test17_reassoc_unary_fneg" +4: "test17_reassoc_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test17_reassoc_unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test18" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test18" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test18_reassoc" +4: "test18_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test18_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test18_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test19" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test19_reassoc_nsz" +4: "test19_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test19_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test19_reassoc" +4: "test19_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test19_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test19_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + diff --git a/SSA/Projects/InstCombine/tests/logs/fast-math.txt b/SSA/Projects/InstCombine/tests/logs/fast-math.txt new file mode 100644 index 000000000..464d47373 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fast-math.txt @@ -0,0 +1,335 @@ +1: "fold" +4: "fold" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "notfold" +4: "notfold" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "notfold" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold2" +4: "fold2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold3" +4: "fold3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold3_reassoc_nsz" +4: "fold3_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold3_reassoc" +4: "fold3_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fold3_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold4" +4: "fold4" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold4" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fold4_reassoc_nsz" +4: "fold4_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold4_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fold4_reassoc" +4: "fold4_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fold4_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fold4_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold5" +4: "fold5" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold5_reassoc_nsz" +4: "fold5_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold5_reassoc" +4: "fold5_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold5_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold6" +4: "fold6" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold6_reassoc_nsz" +4: "fold6_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold6_reassoc" +4: "fold6_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold6_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold6_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold7" +4: "fold7" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold7_reassoc_nsz" +4: "fold7_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold7_reassoc" +4: "fold7_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fold7_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold7_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold8" +4: "fold8" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold8_reassoc_nsz" +4: "fold8_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fold8_reassoc" +4: "fold8_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold8_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold8_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold8_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fadd_common_op_fneg" +4: "fsub_fadd_common_op_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fadd_common_op_fneg_reassoc_nsz" +4: "fsub_fadd_common_op_fneg_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fadd_common_op_fneg_vec" +4: "fsub_fadd_common_op_fneg_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fadd_common_op_fneg_commute" +4: "fsub_fadd_common_op_fneg_commute" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fadd_common_op_fneg_commute_vec" +4: "fsub_fadd_common_op_fneg_commute_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fsub_common_op_fneg" +4: "fsub_fsub_common_op_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_fsub_common_op_fneg_vec" +4: "fsub_fsub_common_op_fneg_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fold9_reassoc" +4: "fold9_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold9_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fold10" +4: "fold10" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold10" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold10_reassoc_nsz" +4: "fold10_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold10_reassoc_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fold10_reassoc" +4: "fold10_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold10_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fold10_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fail1" +4: "fail1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fail1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fail2" +4: "fail2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fail2" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fsub_op0_fmul_const" +4: "fsub_op0_fmul_const" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fsub_op0_fmul_const_vec" +4: "fsub_op0_fmul_const_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fsub_op1_fmul_const" +4: "fsub_op1_fmul_const" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fsub_op1_fmul_const_vec" +4: "fsub_op1_fmul_const_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fsub_op0_fmul_const_wrong_FMF" +4: "fsub_op0_fmul_const_wrong_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_op0_fmul_const_wrong_FMF" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fold16" +4: "fold16" has unsupported operation: builtin.unregistered: llvm.fcmp + +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" +4: "fneg1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fneg2" +4: "fneg2" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg2_vec_poison" +4: "fneg2_vec_poison" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fdiv1" +4: "fdiv1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv2" +4: "fdiv2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv2_vec" +4: "fdiv2_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv3" +4: "fdiv3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv3" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv4" +4: "fdiv4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv4" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_intrinsic_arg_squared" +4: "sqrt_intrinsic_arg_squared" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "sqrt_intrinsic_three_args1" +4: "sqrt_intrinsic_three_args1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args1" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_three_args2" +4: "sqrt_intrinsic_three_args2" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args2" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_three_args3" +4: "sqrt_intrinsic_three_args3" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args3" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_three_args4" +4: "sqrt_intrinsic_three_args4" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args4" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args4" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_three_args5" +4: "sqrt_intrinsic_three_args5" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_three_args6" +4: "sqrt_intrinsic_three_args6" has unsupported operation: llvm.load + +4: "sqrt_intrinsic_three_args6" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "sqrt_intrinsic_three_args6" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_three_args6" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_not_so_fast" +4: "sqrt_intrinsic_not_so_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_intrinsic_not_so_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_intrinsic_not_so_fast" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "sqrt_intrinsic_arg_4th" +4: "sqrt_intrinsic_arg_4th" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_intrinsic_arg_5th" +4: "sqrt_intrinsic_arg_5th" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_intrinsic_arg_5th" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic_arg_5th" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrtf" +5: "sqrtf" is empty + +1: "sqrt" +5: "sqrt" is empty + +1: "sqrtl" +5: "sqrtl" is empty + +1: "sqrt_call_squared_f32" +4: "sqrt_call_squared_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "sqrt_call_squared_f64" +4: "sqrt_call_squared_f64" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "sqrt_call_squared_f128" +4: "sqrt_call_squared_f128" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fmax" +5: "fmax" is empty + +1: "fmin" +5: "fmin" is empty + +1: "fmaxf" +5: "fmaxf" is empty + +1: "fminf" +5: "fminf" is empty + +1: "fmaxl" +5: "fmaxl" is empty + +1: "fminl" +5: "fminl" is empty + +1: "max1" +4: "max1" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "fmax_no_fmf" +4: "fmax_no_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "max2" +4: "max2" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "max3" +4: "max3" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "max4" +4: "max4" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "min1" +4: "min1" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "fmin_no_fmf" +4: "fmin_no_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "min2" +4: "min2" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "min3" +4: "min3" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "min4" +4: "min4" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "test55" +4: "test55" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test55" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test55" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp-denormals-are-zero.txt b/SSA/Projects/InstCombine/tests/logs/fcmp-denormals-are-zero.txt new file mode 100644 index 000000000..07ae2fefb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fcmp-denormals-are-zero.txt @@ -0,0 +1,241 @@ +1: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_olt_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_uge_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_oge_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_fcmp_ult_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_olt_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_uge_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_oge_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_vector_fcmp_ult_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: llvm.store + +4: "denormal_input_positive_zero_fcmp_olt_smallest_normalized" has unsupported operation: llvm.return + +1: "denormal_input_ieee" +4: "denormal_input_ieee" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_ieee" has unsupported operation: llvm.store + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_ieee" has unsupported operation: llvm.store + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "denormal_input_ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_ieee" has unsupported operation: llvm.store + +4: "denormal_input_ieee" has unsupported operation: llvm.return + +1: "denormal_input_preserve_sign_f32_only" +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: llvm.mlir.addressof + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: llvm.store + +4: "denormal_input_preserve_sign_f32_only" has unsupported operation: llvm.return + +1: "wrong_fcmp_type_ole" +4: "wrong_fcmp_type_ole" has unsupported operation: llvm.mlir.addressof + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "wrong_fcmp_type_ole" has unsupported operation: llvm.store + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "wrong_fcmp_type_ole" has unsupported operation: llvm.store + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "wrong_fcmp_type_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "wrong_fcmp_type_ole" has unsupported operation: llvm.store + +4: "wrong_fcmp_type_ole" has unsupported operation: llvm.return + +1: "missing_fabs" +4: "missing_fabs" has unsupported operation: llvm.mlir.addressof + +4: "missing_fabs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "missing_fabs" has unsupported operation: llvm.store + +4: "missing_fabs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "missing_fabs" has unsupported operation: llvm.store + +4: "missing_fabs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "missing_fabs" has unsupported operation: llvm.store + +4: "missing_fabs" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp-range-check-idiom.txt b/SSA/Projects/InstCombine/tests/logs/fcmp-range-check-idiom.txt new file mode 100644 index 000000000..019b1de7e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fcmp-range-check-idiom.txt @@ -0,0 +1,143 @@ +1: "use" +5: "use" is empty + +1: "test_and_olt" +4: "test_and_olt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_ole" +4: "test_and_ole" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_or_ogt" +4: "test_or_ogt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_or_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_or_oge" +4: "test_or_oge" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_or_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_ult" +4: "test_and_ult" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_ule" +4: "test_and_ule" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_or_ugt" +4: "test_or_ugt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_or_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_or_uge" +4: "test_or_uge" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_or_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_commuted" +4: "test_and_olt_commuted" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_commuted" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_subnormal" +4: "test_and_olt_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_subnormal" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_infinity" +4: "test_and_olt_infinity" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_infinity" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_zero" +4: "test_and_olt_zero" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_zero" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_and_ole_zero" +4: "test_and_ole_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_logical" +4: "test_and_olt_logical" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_poison" +4: "test_and_olt_poison" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_nan" +4: "test_and_olt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_and_ult_nan" +4: "test_and_ult_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_and_ult_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_or_ogt_nan" +4: "test_or_ogt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_or_ogt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_or_ugt_nan" +4: "test_or_ugt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_or_ugt_nan" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_and_ogt" +4: "test_and_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_and_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_or_olt" +4: "test_or_olt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_or_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_multiuse" +4: "test_and_olt_multiuse" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_multiuse" has unsupported operation: llvm.call + +4: "test_and_olt_multiuse" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_mismatched_lhs" +4: "test_and_olt_mismatched_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_mismatched_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_same_sign" +4: "test_and_olt_same_sign" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_same_sign" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_mismatched_mag" +4: "test_and_olt_mismatched_mag" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_mismatched_mag" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_wrong_pred2" +4: "test_and_olt_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_and_olt_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_fmf_propagation" +4: "test_and_olt_fmf_propagation" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_fmf_propagation" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_and_olt_fmf_propagation_union" +4: "test_and_olt_fmf_propagation_union" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_and_olt_fmf_propagation_union" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt b/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt new file mode 100644 index 000000000..a404f02f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fcmp-select.txt @@ -0,0 +1,120 @@ +1: "use" +5: "use" is empty + +1: "usef64" +5: "usef64" is empty + +1: "oeq" +4: "oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "oeq" has unsupported operation: llvm.call + +1: "oeq_swapped" +4: "oeq_swapped" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "oeq_swapped" has unsupported operation: llvm.call + +1: "une" +4: "une" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "une" has unsupported operation: llvm.call + +1: "une_swapped" +4: "une_swapped" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "une_swapped" has unsupported operation: llvm.call + +1: "une_could_be_negzero" +4: "une_could_be_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "fcmp_uno_select" +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" +4: "test_fcmp_select_const_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fcmp_select_var_const" +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.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 + +4: "test_fcmp_select_maxnum" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +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 + +1: "test_fcmp_select_const_const_unordered" +4: "test_fcmp_select_const_const_unordered" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fcmp_select_var_const_unordered" +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.fcmp + +4: "test_fcmp_select_var_const_unordered" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp-special.txt b/SSA/Projects/InstCombine/tests/logs/fcmp-special.txt new file mode 100644 index 000000000..069622e63 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fcmp-special.txt @@ -0,0 +1,91 @@ +1: "oeq_self" +4: "oeq_self" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "une_self" +4: "une_self" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_zero" +4: "ord_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_nonzero" +4: "ord_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_self" +4: "ord_self" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_zero" +4: "uno_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_nonzero" +4: "uno_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_self" +4: "uno_self" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_zero_vec" +4: "ord_zero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_nonzero_vec" +4: "ord_nonzero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_self_vec" +4: "ord_self_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_zero_vec" +4: "uno_zero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_nonzero_vec" +4: "uno_nonzero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_self_vec" +4: "uno_self_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_vec_with_nan" +4: "uno_vec_with_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "uno_vec_with_poison" +4: "uno_vec_with_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ord_vec_with_poison" +4: "ord_vec_with_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ord_vec_with_poison" has unsupported operation: llvm.mlir.undef + +4: "ord_vec_with_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ord_vec_with_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ord_vec_with_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_ops_to_fcmp_ord" +4: "nnan_ops_to_fcmp_ord" has unsupported operation after optimization: builtin.unregistered: llvm.fmul + +4: "nnan_ops_to_fcmp_ord" has unsupported operation after optimization: builtin.unregistered: llvm.fdiv + +4: "nnan_ops_to_fcmp_ord" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "nnan_ops_to_fcmp_uno" +4: "nnan_ops_to_fcmp_uno" has unsupported operation after optimization: builtin.unregistered: llvm.fmul + +4: "nnan_ops_to_fcmp_uno" has unsupported operation after optimization: builtin.unregistered: llvm.fdiv + +4: "nnan_ops_to_fcmp_uno" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "negative_zero_oeq" +4: "negative_zero_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "negative_zero_oge" +4: "negative_zero_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "negative_zero_uge" +4: "negative_zero_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "negative_zero_olt_vec" +4: "negative_zero_olt_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "negative_zero_une_vec_poison" +4: "negative_zero_une_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "negative_zero_ule_vec_mixed" +4: "negative_zero_ule_vec_mixed" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/fcmp.txt b/SSA/Projects/InstCombine/tests/logs/fcmp.txt new file mode 100644 index 000000000..dd78f6ad6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fcmp.txt @@ -0,0 +1,799 @@ +1: "use" +5: "use" is empty + +1: "fpext_fpext" +4: "fpext_fpext" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fpext_constant" +4: "fpext_constant" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fpext_constant_vec_splat" +4: "fpext_constant_vec_splat" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fpext_constant_lossy" +4: "fpext_constant_lossy" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fpext_constant_lossy" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fpext_constant_denorm" +4: "fpext_constant_denorm" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fpext_constant_denorm" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_constant_swap_pred" +4: "fneg_constant_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_constant_swap_pred" +4: "unary_fneg_constant_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_constant_swap_pred_vec" +4: "fneg_constant_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_constant_swap_pred_vec" +4: "unary_fneg_constant_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_constant_swap_pred_vec_poison" +4: "fneg_constant_swap_pred_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_fmf" +4: "fneg_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_fmf" +4: "unary_fneg_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fneg_fmf_vec" +4: "fcmp_fneg_fmf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_fneg_swap_pred" +4: "fneg_fneg_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_unary_fneg_swap_pred" +4: "unary_fneg_unary_fneg_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_fneg_swap_pred" +4: "unary_fneg_fneg_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_unary_fneg_swap_pred" +4: "fneg_unary_fneg_swap_pred" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_fneg_swap_pred_vec" +4: "fneg_fneg_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_unary_fneg_swap_pred_vec" +4: "unary_fneg_unary_fneg_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_fneg_swap_pred_vec" +4: "unary_fneg_fneg_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_unary_fneg_swap_pred_vec" +4: "fneg_unary_fneg_swap_pred_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_fneg_swap_pred_vec_poison" +4: "fneg_fneg_swap_pred_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "unary_fneg_fneg_swap_pred_vec_poison" +4: "unary_fneg_fneg_swap_pred_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_unary_fneg_swap_pred_vec_poison" +4: "fneg_unary_fneg_swap_pred_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "fabs_uge" +6: Cannot find function after optimization with sym name: "fabs_uge" + +1: "fabs_olt" +6: Cannot find function after optimization with sym name: "fabs_olt" + +1: "fabs_ole" +4: "fabs_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ule" +4: "fabs_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ogt" +4: "fabs_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ugt" +4: "fabs_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_oge" +4: "fabs_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ult" +4: "fabs_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ult_nnan" +6: Cannot find function after optimization with sym name: "fabs_ult_nnan" + +1: "fabs_une" +4: "fabs_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_oeq" +4: "fabs_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_one" +4: "fabs_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ueq" +4: "fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_ord" +4: "fabs_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs_uno" +4: "fabs_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test17" +4: "test17" has unsupported operation: llvm.call + +4: "test17" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test17" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test18_undef_unordered" +6: Cannot find function after optimization with sym name: "test18_undef_unordered" + +1: "test18_undef_ordered" +6: Cannot find function after optimization with sym name: "test18_undef_ordered" + +1: "test19_undef_unordered" +6: Cannot find function after optimization with sym name: "test19_undef_unordered" + +1: "test19_undef_ordered" +6: Cannot find function after optimization with sym name: "test19_undef_ordered" + +1: "test20_recipX_olt_0" +4: "test20_recipX_olt_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test21_recipX_ole_0" +4: "test21_recipX_ole_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test22_recipX_ogt_0" +4: "test22_recipX_ogt_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test23_recipX_oge_0" +4: "test23_recipX_oge_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test24_recipX_noninf_cmp" +4: "test24_recipX_noninf_cmp" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "test24_recipX_noninf_cmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test25_recipX_noninf_div" +4: "test25_recipX_noninf_div" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "test25_recipX_noninf_div" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test26_recipX_unorderd" +4: "test26_recipX_unorderd" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "test26_recipX_unorderd" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test27_recipX_gt_vecsplat" +4: "test27_recipX_gt_vecsplat" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set" +4: "is_signbit_set" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "is_signbit_set" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_signbit_set_1" +4: "is_signbit_set_1" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_set_1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set_2" +4: "is_signbit_set_2" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_set_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set_3" +4: "is_signbit_set_3" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_set_3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set_anyzero" +4: "is_signbit_set_anyzero" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "is_signbit_set_anyzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_signbit_clear" +4: "is_signbit_clear" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_clear" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_clear_1" +4: "is_signbit_clear_1" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_clear_1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_clear_2" +4: "is_signbit_clear_2" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_clear_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_clear_3" +4: "is_signbit_clear_3" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_clear_3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set_extra_use" +4: "is_signbit_set_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_set_extra_use" has unsupported operation: llvm.store + +4: "is_signbit_set_extra_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_clear_nonzero" +4: "is_signbit_clear_nonzero" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "is_signbit_clear_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "is_signbit_set_simplify_zero" +6: Cannot find function after optimization with sym name: "is_signbit_set_simplify_zero" + +1: "is_signbit_set_simplify_nan" +6: Cannot find function after optimization with sym name: "is_signbit_set_simplify_nan" + +1: "lossy_oeq" +6: Cannot find function after optimization with sym name: "lossy_oeq" + +1: "lossy_one" +4: "lossy_one" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_one" has unsupported operation: llvm.store + +4: "lossy_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ueq" +4: "lossy_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_une" +6: Cannot find function after optimization with sym name: "lossy_une" + +1: "lossy_ogt" +4: "lossy_ogt" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_oge" +4: "lossy_oge" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_oge" has unsupported operation: llvm.store + +4: "lossy_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_olt" +4: "lossy_olt" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ole" +4: "lossy_ole" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ugt" +4: "lossy_ugt" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_uge" +4: "lossy_uge" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_uge" has unsupported operation: llvm.store + +4: "lossy_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ult" +4: "lossy_ult" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ule" +4: "lossy_ule" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "lossy_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_ord" +4: "lossy_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "lossy_uno" +4: "lossy_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_oeq" +4: "fneg_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ogt" +4: "fneg_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_oge" +4: "fneg_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_olt" +4: "fneg_olt" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_olt" has unsupported operation: llvm.store + +4: "fneg_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ole" +4: "fneg_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_one" +4: "fneg_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ord" +4: "fneg_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_uno" +4: "fneg_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ueq" +4: "fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ugt" +4: "fneg_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_uge" +4: "fneg_uge" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_uge" has unsupported operation: llvm.store + +4: "fneg_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ult" +4: "fneg_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ule" +4: "fneg_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_une" +4: "fneg_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_oeq_swap" +4: "fneg_oeq_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_oeq_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ogt_swap" +4: "fneg_ogt_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ogt_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_oge_swap" +4: "fneg_oge_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_oge_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_olt_swap" +4: "fneg_olt_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_olt_swap" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_olt_swap" has unsupported operation: llvm.store + +4: "fneg_olt_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ole_swap" +4: "fneg_ole_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ole_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_one_swap" +4: "fneg_one_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_one_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ord_swap" +4: "fneg_ord_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ord_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_uno_swap" +4: "fneg_uno_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_uno_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ueq_swap" +4: "fneg_ueq_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ueq_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ugt_swap" +4: "fneg_ugt_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ugt_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_uge_swap" +4: "fneg_uge_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_uge_swap" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_uge_swap" has unsupported operation: llvm.store + +4: "fneg_uge_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ult_swap" +4: "fneg_ult_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ult_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_ule_swap" +4: "fneg_ule_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_ule_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fneg_une_swap" +4: "fneg_une_swap" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_une_swap" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "bitcast_eq0" +4: "bitcast_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitcast_ne0" +4: "bitcast_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bitcast_eq0_use" +4: "bitcast_eq0_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_eq0_use" has unsupported operation: llvm.call + +4: "bitcast_eq0_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "bitcast_nonint_eq0" +4: "bitcast_nonint_eq0" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_nonint_eq0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "bitcast_gt0" +4: "bitcast_gt0" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_gt0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "bitcast_1vec_eq0" +4: "bitcast_1vec_eq0" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_1vec_eq0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ugt" +4: "fcmp_fadd_zero_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_uge" +4: "fcmp_fadd_zero_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ogt" +4: "fcmp_fadd_zero_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_oge" +4: "fcmp_fadd_zero_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ult" +4: "fcmp_fadd_zero_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ule" +4: "fcmp_fadd_zero_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_olt" +4: "fcmp_fadd_zero_olt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ole" +4: "fcmp_fadd_zero_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_oeq" +4: "fcmp_fadd_zero_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_one" +4: "fcmp_fadd_zero_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ueq" +4: "fcmp_fadd_zero_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_une" +4: "fcmp_fadd_zero_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_ord" +4: "fcmp_fadd_zero_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_uno" +4: "fcmp_fadd_zero_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_neg_zero" +4: "fcmp_fadd_neg_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_switched" +4: "fcmp_fadd_zero_switched" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_zero_vec" +4: "fcmp_fadd_zero_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fast_fadd_fast_zero" +4: "fcmp_fast_fadd_fast_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fast_fadd_zero" +4: "fcmp_fast_fadd_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_fadd_fast_zero" +4: "fcmp_fadd_fast_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_sel_x_negx" +4: "fcmp_ueq_sel_x_negx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_sel_x_negx" +4: "fcmp_une_sel_x_negx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_sel_x_negx" +4: "fcmp_oeq_sel_x_negx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_sel_x_negx" +4: "fcmp_one_sel_x_negx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_sel_x_negx_nzero" +4: "fcmp_ueq_sel_x_negx_nzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_sel_x_negx_nzero" +4: "fcmp_une_sel_x_negx_nzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_sel_x_negx_nzero" +4: "fcmp_oeq_sel_x_negx_nzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_sel_x_negx_nzero" +4: "fcmp_one_sel_x_negx_nzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_sel_x_negx_vec" +4: "fcmp_ueq_sel_x_negx_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_sel_x_negx_vec" +4: "fcmp_une_sel_x_negx_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_sel_x_negx_vec" +4: "fcmp_oeq_sel_x_negx_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_sel_x_negx_vec" +4: "fcmp_one_sel_x_negx_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_sel_x_negx_with_any_fpzero_ninf_vec" +4: "fcmp_oeq_sel_x_negx_with_any_fpzero_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_sel_x_negx_with_any_fpzero_ninf_vec" +4: "fcmp_one_sel_x_negx_with_any_fpzero_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_sel_x_negx_with_any_fpzero_ninf_vec" +4: "fcmp_ueq_sel_x_negx_with_any_fpzero_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_sel_x_negx_with_any_fpzero_ninf_vec" +4: "fcmp_une_sel_x_negx_with_any_fpzero_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_sel_x_negx_with_any_fpzero_nnan_vec" +4: "fcmp_oeq_sel_x_negx_with_any_fpzero_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_sel_x_negx_with_any_fpzero_nnan_vec" +4: "fcmp_one_sel_x_negx_with_any_fpzero_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_sel_x_negx_with_any_fpzero_nnan_vec" +4: "fcmp_ueq_sel_x_negx_with_any_fpzero_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_sel_x_negx_with_any_fpzero_nnan_vec" +4: "fcmp_une_sel_x_negx_with_any_fpzero_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_fsub_nnan_const_extra_use" +4: "fcmp_ueq_fsub_nnan_const_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ueq_fsub_nnan_const_extra_use" has unsupported operation: llvm.call + +4: "fcmp_ueq_fsub_nnan_const_extra_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_fsub_ninf_const_extra_use" +4: "fcmp_oeq_fsub_ninf_const_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_oeq_fsub_ninf_const_extra_use" has unsupported operation: llvm.call + +4: "fcmp_oeq_fsub_ninf_const_extra_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_fsub_const" +4: "fcmp_oeq_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_oeq_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oge_fsub_const" +4: "fcmp_oge_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_oge_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ole_fsub_const" +4: "fcmp_ole_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ole_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_fsub_const" +4: "fcmp_ueq_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_uge_fsub_const" +4: "fcmp_uge_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ule_fsub_const" +4: "fcmp_ule_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ugt_fsub_const" +4: "fcmp_ugt_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ugt_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ult_fsub_const" +4: "fcmp_ult_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ult_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_fsub_const" +4: "fcmp_une_fsub_const" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_une_fsub_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_uge_fsub_const_ninf_vec" +4: "fcmp_uge_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ule_fsub_const_ninf_vec" +4: "fcmp_ule_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_fsub_const_ninf_vec" +4: "fcmp_ueq_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oge_fsub_const_ninf_vec" +4: "fcmp_oge_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ole_fsub_const_ninf_vec" +4: "fcmp_ole_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_fsub_const_ninf_vec" +4: "fcmp_oeq_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ogt_fsub_const_ninf_vec" +4: "fcmp_ogt_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_olt_fsub_const_ninf_vec" +4: "fcmp_olt_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_fsub_const_ninf_vec" +4: "fcmp_one_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ugt_fsub_const_ninf_vec" +4: "fcmp_ugt_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ult_fsub_const_ninf_vec" +4: "fcmp_ult_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_fsub_const_ninf_vec" +4: "fcmp_une_fsub_const_ninf_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_uge_fsub_const_nnan_vec" +4: "fcmp_uge_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ule_fsub_const_nnan_vec" +4: "fcmp_ule_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ueq_fsub_const_nnan_vec" +4: "fcmp_ueq_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oge_fsub_const_nnan_vec" +4: "fcmp_oge_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ole_fsub_const_nnan_vec" +4: "fcmp_ole_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_fsub_const_nnan_vec" +4: "fcmp_oeq_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ogt_fsub_const_nnan_vec" +4: "fcmp_ogt_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_olt_fsub_const_nnan_vec" +4: "fcmp_olt_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_one_fsub_const_nnan_vec" +4: "fcmp_one_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ugt_fsub_const_nnan_vec" +4: "fcmp_ugt_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ult_fsub_const_nnan_vec" +4: "fcmp_ult_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_une_fsub_const_nnan_vec" +4: "fcmp_une_fsub_const_nnan_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ugt_fsub_const_vec_denormal_positive-zero" +4: "fcmp_ugt_fsub_const_vec_denormal_positive-zero" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ugt_fsub_const_vec_denormal_positive-zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ogt_fsub_const_vec_denormal_dynamic" +4: "fcmp_ogt_fsub_const_vec_denormal_dynamic" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ogt_fsub_const_vec_denormal_dynamic" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ogt_fsub_const_vec_denormal_preserve-sign" +4: "fcmp_ogt_fsub_const_vec_denormal_preserve-sign" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fcmp_ogt_fsub_const_vec_denormal_preserve-sign" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_olt" +6: Cannot find function after optimization with sym name: "fcmp_sqrt_zero_olt" + +1: "fcmp_sqrt_zero_ult" +4: "fcmp_sqrt_zero_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_fmf" +4: "fcmp_sqrt_zero_ult_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_fmf_sqrt_ninf" +4: "fcmp_sqrt_zero_ult_fmf_sqrt_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_nzero" +4: "fcmp_sqrt_zero_ult_nzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_vec" +4: "fcmp_sqrt_zero_ult_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_vec_mixed_zero" +4: "fcmp_sqrt_zero_ult_vec_mixed_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ole" +4: "fcmp_sqrt_zero_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ule" +4: "fcmp_sqrt_zero_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ogt" +4: "fcmp_sqrt_zero_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ugt" +4: "fcmp_sqrt_zero_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_oge" +4: "fcmp_sqrt_zero_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_uge" +6: Cannot find function after optimization with sym name: "fcmp_sqrt_zero_uge" + +1: "fcmp_sqrt_zero_oeq" +4: "fcmp_sqrt_zero_oeq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ueq" +4: "fcmp_sqrt_zero_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_one" +4: "fcmp_sqrt_zero_one" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_une" +4: "fcmp_sqrt_zero_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ord" +4: "fcmp_sqrt_zero_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_uno" +4: "fcmp_sqrt_zero_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_uno_fmf" +4: "fcmp_sqrt_zero_uno_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_uno_fmf_sqrt_ninf" +4: "fcmp_sqrt_zero_uno_fmf_sqrt_ninf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_var" +4: "fcmp_sqrt_zero_ult_var" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "fcmp_sqrt_zero_ult_var" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_sqrt_zero_ult_nonzero" +4: "fcmp_sqrt_zero_ult_nonzero" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "fcmp_sqrt_zero_ult_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/fdim.txt b/SSA/Projects/InstCombine/tests/logs/fdim.txt new file mode 100644 index 000000000..575495611 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fdim.txt @@ -0,0 +1,56 @@ +1: "fdim_double" +4: "fdim_double" has unsupported operation after optimization: llvm.call + +1: "fdim_double1" +4: "fdim_double1" has unsupported operation after optimization: llvm.call + +1: "fdim_float" +4: "fdim_float" has unsupported operation after optimization: llvm.call + +1: "fdim_float1" +4: "fdim_float1" has unsupported operation after optimization: llvm.call + +1: "fdim_poison1" +4: "fdim_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "fdim_poison2" +4: "fdim_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "fdim_poison3" +4: "fdim_poison3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "fdim_undef1" +4: "fdim_undef1" has unsupported operation: llvm.mlir.undef + +4: "fdim_undef1" has unsupported operation: llvm.call + +1: "fdim_inf_ninf" +4: "fdim_inf_ninf" has unsupported operation after optimization: llvm.call + +1: "fdim_inf" +4: "fdim_inf" has unsupported operation after optimization: llvm.call + +1: "fdim_nzero" +4: "fdim_nzero" has unsupported operation after optimization: llvm.call + +1: "fdim_strictfp" +4: "fdim_strictfp" has unsupported operation: llvm.call + +1: "fdim_nan1" +4: "fdim_nan1" has unsupported operation after optimization: llvm.call + +1: "fdim_nan2" +4: "fdim_nan2" has unsupported operation after optimization: llvm.call + +1: "fdim_snan1" +4: "fdim_snan1" has unsupported operation after optimization: llvm.call + +1: "fdim_snan2" +4: "fdim_snan2" has unsupported operation after optimization: llvm.call + +1: "fdim" +5: "fdim" is empty + +1: "fdimf" +5: "fdimf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fdiv-cos-sin.txt b/SSA/Projects/InstCombine/tests/logs/fdiv-cos-sin.txt new file mode 100644 index 000000000..f36896e23 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fdiv-cos-sin.txt @@ -0,0 +1,67 @@ +1: "fdiv_cos_sin" +4: "fdiv_cos_sin" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_cos_sin" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_cos_sin" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_strict_cos_strict_sin_reassoc" +4: "fdiv_strict_cos_strict_sin_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_strict_cos_strict_sin_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_strict_cos_strict_sin_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_reassoc_cos_strict_sin_strict" +4: "fdiv_reassoc_cos_strict_sin_strict" has unsupported operation: llvm.call + +4: "fdiv_reassoc_cos_strict_sin_strict" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_reassoc_cos_reassoc_sin_strict" +4: "fdiv_reassoc_cos_reassoc_sin_strict" has unsupported operation: llvm.call + +4: "fdiv_reassoc_cos_reassoc_sin_strict" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_cos_sin_reassoc_multiple_uses" +4: "fdiv_cos_sin_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_cos_sin_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_cos_sin_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_cos_sin_reassoc_multiple_uses" has unsupported operation: llvm.call + +1: "fdiv_cos_sin_reassoc" +4: "fdiv_cos_sin_reassoc" has unsupported operation: llvm.call + +4: "fdiv_cos_sin_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_cosf16_sinf16_reassoc" +4: "fdiv_cosf16_sinf16_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_cosf16_sinf16_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_cosf16_sinf16_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_cosf_sinf_reassoc" +4: "fdiv_cosf_sinf_reassoc" has unsupported operation: llvm.call + +4: "fdiv_cosf_sinf_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_cosfp128_sinfp128_reassoc" +4: "fdiv_cosfp128_sinfp128_reassoc" has unsupported operation: llvm.call + +4: "fdiv_cosfp128_sinfp128_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "use" +5: "use" is empty + +1: "tan" +5: "tan" is empty + +1: "tanf" +5: "tanf" is empty + +1: "tanl" +5: "tanl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fdiv-sin-cos.txt b/SSA/Projects/InstCombine/tests/logs/fdiv-sin-cos.txt new file mode 100644 index 000000000..a143ea6b4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fdiv-sin-cos.txt @@ -0,0 +1,50 @@ +1: "fdiv_sin_cos" +4: "fdiv_sin_cos" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_sin_cos" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_sin_cos" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_strict_sin_strict_cos_reassoc" +4: "fdiv_strict_sin_strict_cos_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_strict_sin_strict_cos_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_strict_sin_strict_cos_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_reassoc_sin_strict_cos_strict" +4: "fdiv_reassoc_sin_strict_cos_strict" has unsupported operation: llvm.call + +1: "fdiv_reassoc_sin_reassoc_cos_strict" +4: "fdiv_reassoc_sin_reassoc_cos_strict" has unsupported operation: llvm.call + +1: "fdiv_sin_cos_reassoc_multiple_uses" +4: "fdiv_sin_cos_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.sin + +4: "fdiv_sin_cos_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.cos + +4: "fdiv_sin_cos_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_sin_cos_reassoc_multiple_uses" has unsupported operation: llvm.call + +1: "fdiv_sin_cos_reassoc" +4: "fdiv_sin_cos_reassoc" has unsupported operation: llvm.call + +1: "fdiv_sinf_cosf_reassoc" +4: "fdiv_sinf_cosf_reassoc" has unsupported operation: llvm.call + +1: "fdiv_sinfp128_cosfp128_reassoc" +4: "fdiv_sinfp128_cosfp128_reassoc" has unsupported operation: llvm.call + +1: "use" +5: "use" is empty + +1: "tan" +5: "tan" is empty + +1: "tanf" +5: "tanf" is empty + +1: "tanl" +5: "tanl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fdiv-sqrt.txt b/SSA/Projects/InstCombine/tests/logs/fdiv-sqrt.txt new file mode 100644 index 000000000..486eecdda --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fdiv-sqrt.txt @@ -0,0 +1,93 @@ +1: "sqrt_div_fast" +4: "sqrt_div_fast" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_fast" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_div" +4: "sqrt_div" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_reassoc_arcp" +4: "sqrt_div_reassoc_arcp" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_reassoc_arcp" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_reassoc_arcp" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_div_reassoc_missing" +4: "sqrt_div_reassoc_missing" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_reassoc_missing" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_reassoc_missing" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_reassoc_missing2" +4: "sqrt_div_reassoc_missing2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_reassoc_missing2" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_reassoc_missing2" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_reassoc_missing3" +4: "sqrt_div_reassoc_missing3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_reassoc_missing3" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_reassoc_missing3" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_arcp_missing" +4: "sqrt_div_arcp_missing" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_arcp_missing" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_arcp_missing" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_div_arcp_missing2" +4: "sqrt_div_arcp_missing2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_arcp_missing2" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_arcp_missing2" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_arcp_missing3" +4: "sqrt_div_arcp_missing3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_arcp_missing3" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_arcp_missing3" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "use" +5: "use" is empty + +1: "sqrt_div_fast_multiple_uses_1" +4: "sqrt_div_fast_multiple_uses_1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_fast_multiple_uses_1" has unsupported operation: llvm.call + +4: "sqrt_div_fast_multiple_uses_1" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_fast_multiple_uses_1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_div_fast_multiple_uses_2" +4: "sqrt_div_fast_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_div_fast_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_div_fast_multiple_uses_2" has unsupported operation: llvm.call + +4: "sqrt_div_fast_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_non_div_operator" +4: "sqrt_non_div_operator" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "sqrt_non_div_operator" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_non_div_operator" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_non_div_operator" has unsupported operation: builtin.unregistered: llvm.fptrunc + diff --git a/SSA/Projects/InstCombine/tests/logs/fdiv.txt b/SSA/Projects/InstCombine/tests/logs/fdiv.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ffs-1.txt b/SSA/Projects/InstCombine/tests/logs/ffs-1.txt new file mode 100644 index 000000000..bd34e2502 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ffs-1.txt @@ -0,0 +1,58 @@ +1: "ffs" +5: "ffs" is empty + +1: "ffsl" +5: "ffsl" is empty + +1: "ffsll" +5: "ffsll" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation after optimization: llvm.call + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.call + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.call + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: llvm.call + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: llvm.call + +1: "test_simplify11" +4: "test_simplify11" has unsupported operation: llvm.call + +1: "test_simplify12" +4: "test_simplify12" has unsupported operation: llvm.call + +1: "test_simplify13" +4: "test_simplify13" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +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 + +1: "test_simplify15" +4: "test_simplify15" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/ffs-i16.txt b/SSA/Projects/InstCombine/tests/logs/ffs-i16.txt new file mode 100644 index 000000000..570f51e07 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ffs-i16.txt @@ -0,0 +1,21 @@ +1: "ffs" +5: "ffs" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_ffs" +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.call + +4: "fold_ffs" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/float-shrink-compare.txt b/SSA/Projects/InstCombine/tests/logs/float-shrink-compare.txt new file mode 100644 index 000000000..af752bc4a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/float-shrink-compare.txt @@ -0,0 +1,236 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test1_intrin" +4: "test1_intrin" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test1_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test2_intrin" +4: "test2_intrin" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test2_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fmf_test2" +4: "fmf_test2" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fmf_test2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test3_intrin" +4: "test3_intrin" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test3_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test4" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "shrink_nearbyint_intrin" +4: "shrink_nearbyint_intrin" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "shrink_nearbyint_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.rint + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test6" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test6_intrin" +4: "test6_intrin" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test6_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test6a" +4: "test6a" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test6a" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test6a_intrin" +4: "test6a_intrin" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test6a_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test7" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test7_intrin" +4: "test7_intrin" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test7_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test8" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test8_intrin" +4: "test8_intrin" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "test8_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test9" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test9_intrin" +4: "test9_intrin" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test9_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test10" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test10_intrin" +4: "test10_intrin" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "test10_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test11" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test11_intrin" +4: "test11_intrin" has unsupported operation: builtin.unregistered: llvm.intr.nearbyint + +4: "test11_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.intr.rint + +4: "test12" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test13" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test13_intrin" +4: "test13_intrin" has unsupported operation: builtin.unregistered: llvm.intr.round + +4: "test13_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test13a" +4: "test13a" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test13a" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test13a_intrin" +4: "test13a_intrin" has unsupported operation: builtin.unregistered: llvm.intr.roundeven + +4: "test13a_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test14" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test14_intrin" +4: "test14_intrin" has unsupported operation: builtin.unregistered: llvm.intr.trunc + +4: "test14_intrin" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "test15" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "test16" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "test17" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "test18" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test19" +4: "test19" has unsupported operation: llvm.call + +4: "test19" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test20" +4: "test20" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "test20" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test21" +4: "test21" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test21" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test21" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "test21" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fabs" +5: "fabs" is empty + +1: "ceil" +5: "ceil" is empty + +1: "copysign" +5: "copysign" is empty + +1: "floor" +5: "floor" is empty + +1: "nearbyint" +5: "nearbyint" is empty + +1: "rint" +5: "rint" is empty + +1: "round" +5: "round" is empty + +1: "roundeven" +5: "roundeven" is empty + +1: "trunc" +5: "trunc" is empty + +1: "fmin" +5: "fmin" is empty + +1: "fmax" +5: "fmax" is empty + +1: "fminf" +5: "fminf" is empty + +1: "fmaxf" +5: "fmaxf" is empty + +1: "copysignf" +5: "copysignf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fls-i16.txt b/SSA/Projects/InstCombine/tests/logs/fls-i16.txt new file mode 100644 index 000000000..bb7d06b7b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fls-i16.txt @@ -0,0 +1,21 @@ +1: "fls" +5: "fls" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_fls" +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.call + +4: "fold_fls" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/fls.txt b/SSA/Projects/InstCombine/tests/logs/fls.txt new file mode 100644 index 000000000..760409ad7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fls.txt @@ -0,0 +1,26 @@ +1: "myfls" +4: "myfls" has unsupported operation after optimization: llvm.call + +1: "myflsl" +4: "myflsl" has unsupported operation after optimization: llvm.call + +1: "myflsll" +4: "myflsll" has unsupported operation after optimization: llvm.call + +1: "flsnotconst" +4: "flsnotconst" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "flsnotconst" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "flszero" +4: "flszero" has unsupported operation after optimization: llvm.call + +1: "fls" +5: "fls" is empty + +1: "flsl" +5: "flsl" is empty + +1: "flsll" +5: "flsll" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fma.txt b/SSA/Projects/InstCombine/tests/logs/fma.txt new file mode 100644 index 000000000..1e228ef5a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fma.txt @@ -0,0 +1,418 @@ +1: "use_vec" +5: "use_vec" is empty + +1: "use_vec3" +5: "use_vec3" is empty + +1: "fma_fneg_x_fneg_y" +4: "fma_fneg_x_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_fneg_x_unary_fneg_y" +4: "fma_unary_fneg_x_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fneg_x_fneg_y_vec" +4: "fma_fneg_x_fneg_y_vec" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_fneg_x_unary_fneg_y_vec" +4: "fma_unary_fneg_x_unary_fneg_y_vec" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fneg_x_fneg_y_vec_poison" +4: "fma_fneg_x_fneg_y_vec_poison" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fneg_x_fneg_y_fast" +4: "fma_fneg_x_fneg_y_fast" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_fneg_x_unary_fneg_y_fast" +4: "fma_unary_fneg_x_unary_fneg_y_fast" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fneg_const_fneg_y" +4: "fma_fneg_const_fneg_y" has unsupported operation: llvm.mlir.addressof + +4: "fma_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fma_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fma_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_fneg_const_unary_fneg_y" +4: "fma_unary_fneg_const_unary_fneg_y" has unsupported operation: llvm.mlir.addressof + +4: "fma_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fma_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fma_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fneg_x_fneg_const" +4: "fma_fneg_x_fneg_const" has unsupported operation: llvm.mlir.addressof + +4: "fma_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fma_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fma_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_fneg_x_unary_fneg_const" +4: "fma_unary_fneg_x_unary_fneg_const" has unsupported operation: llvm.mlir.addressof + +4: "fma_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fma_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fma_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fabs_x_fabs_y" +4: "fma_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fma_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fma_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fabs_x_fabs_x" +4: "fma_fabs_x_fabs_x" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_fabs_x_fabs_x_fast" +4: "fma_fabs_x_fabs_x_fast" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fmuladd_fneg_x_fneg_y" +4: "fmuladd_fneg_x_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unary_fneg_x_unary_fneg_y" +4: "fmuladd_unary_fneg_x_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fneg_x_fneg_y_fast" +4: "fmuladd_fneg_x_fneg_y_fast" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unfold" +4: "fmuladd_unfold" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unfold_vec" +4: "fmuladd_unfold_vec" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unary_fneg_x_unary_fneg_y_fast" +4: "fmuladd_unary_fneg_x_unary_fneg_y_fast" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fneg_const_fneg_y" +4: "fmuladd_fneg_const_fneg_y" has unsupported operation: llvm.mlir.addressof + +4: "fmuladd_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fmuladd_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fmuladd_fneg_const_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unary_fneg_const_unary_fneg_y" +4: "fmuladd_unary_fneg_const_unary_fneg_y" has unsupported operation: llvm.mlir.addressof + +4: "fmuladd_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fmuladd_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fmuladd_unary_fneg_const_unary_fneg_y" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fneg_x_fneg_const" +4: "fmuladd_fneg_x_fneg_const" has unsupported operation: llvm.mlir.addressof + +4: "fmuladd_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fmuladd_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fmuladd_fneg_x_fneg_const" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_unary_fneg_x_unary_fneg_const" +4: "fmuladd_unary_fneg_x_unary_fneg_const" has unsupported operation: llvm.mlir.addressof + +4: "fmuladd_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fmuladd_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fmuladd_unary_fneg_x_unary_fneg_const" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fabs_x_fabs_y" +4: "fmuladd_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fmuladd_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fmuladd_fabs_x_fabs_y" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fabs_x_fabs_x" +4: "fmuladd_fabs_x_fabs_x" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_fabs_x_fabs_x_fast" +4: "fmuladd_fabs_x_fabs_x_fast" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fma_k_y_z" +4: "fma_k_y_z" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_k_y_z_fast" +4: "fma_k_y_z_fast" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fmuladd_k_y_z_fast" +4: "fmuladd_k_y_z_fast" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fma_1_y_z" +4: "fma_1_y_z" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_x_1_z" +4: "fma_x_1_z" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_x_1_z_v2f32" +4: "fma_x_1_z_v2f32" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_x_1_2_z_v2f32" +4: "fma_x_1_2_z_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_x_1_z_fast" +4: "fma_x_1_z_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_1_1_z" +4: "fma_1_1_z" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_x_y_0" +4: "fma_x_y_0" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_x_y_0_nsz" +4: "fma_x_y_0_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fma_x_y_0_v" +4: "fma_x_y_0_v" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_x_y_0_nsz_v" +4: "fma_x_y_0_nsz_v" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmuladd_x_y_0" +4: "fmuladd_x_y_0" has unsupported operation: builtin.unregistered: llvm.intr.fmuladd + +1: "fmuladd_x_y_0_nsz" +4: "fmuladd_x_y_0_nsz" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fma_x_y_m0" +4: "fma_x_y_m0" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fma_x_y_m0_v" +4: "fma_x_y_m0_v" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmuladd_x_y_m0" +4: "fmuladd_x_y_m0" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmuladd_x_1_z_fast" +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 + +1: "fmuladd_0_a_b" +"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 + +1: "fma_0_a_b" +"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 + +1: "fma_sqrt" +4: "fma_sqrt" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fma_const_fmul" +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 + +1: "fma_const_fmul_zero2" +"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 + +1: "fma_const_fmul_one2" +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 + +1: "fma_nan_and_const_1" +"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 + +1: "fma_undef_0" +"fma_undef_0" contains vectors which are unsupported + +1: "fma_undef_1" +"fma_undef_1" contains vectors which are unsupported + +1: "fma_undef_2" +"fma_undef_2" contains vectors which are unsupported + +1: "fma_partial_undef_0" +4: "fma_partial_undef_0" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_0" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_partial_undef_0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_partial_undef_0" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_partial_undef_1" +4: "fma_partial_undef_1" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_1" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_partial_undef_1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_partial_undef_1" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_partial_undef_2" +4: "fma_partial_undef_2" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_2" has unsupported operation: llvm.mlir.undef + +4: "fma_partial_undef_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_partial_undef_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "fma_nan_1" +"fma_nan_1" contains vectors which are unsupported + +1: "fma_nan_2" +"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 + +1: "fmuladd_nan_and_const_1" +"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 + +1: "fmuladd_nan_0" +"fmuladd_nan_0" contains vectors which are unsupported + +1: "fmuladd_nan_1" +"fmuladd_nan_1" contains vectors which are unsupported + +1: "fmuladd_undef_0" +"fmuladd_undef_0" contains vectors which are unsupported + +1: "fmuladd_undef_1" +"fmuladd_undef_1" contains vectors which are unsupported + +1: "fmuladd_undef_2" +"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 + +4: "fma_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.intr.fma + +4: "fma_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fma_unary_shuffle_ops_widening" +4: "fma_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fma_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_widening" has unsupported operation: llvm.call + +4: "fma_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.intr.fma + +4: "fma_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fma_unary_shuffle_ops_narrowing" +4: "fma_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fma_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_narrowing" has unsupported operation: llvm.call + +4: "fma_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.intr.fma + +4: "fma_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fma_unary_shuffle_ops_unshuffled" +4: "fma_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fma_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_shuffle_ops_wrong_mask" +4: "fma_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fma_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_unary_shuffle_ops_uses" +4: "fma_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fma_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_negone" +4: "fma_negone" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmuladd_negone" +4: "fmuladd_negone" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fma_negone_fmf" +4: "fma_negone_fmf" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmuladd_negone_fmf" +4: "fmuladd_negone_fmf" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fma_negone_vec" +4: "fma_negone_vec" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fma_negone_vec_partial_undef" +4: "fma_negone_vec_partial_undef" has unsupported operation: llvm.mlir.undef + +4: "fma_negone_vec_partial_undef" has unsupported operation: llvm.mlir.undef + +4: "fma_negone_vec_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_negone_vec_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fma_negone_vec_partial_undef" has unsupported operation: builtin.unregistered: llvm.intr.fma + +1: "fma_non_negone" +4: "fma_non_negone" has unsupported operation: builtin.unregistered: llvm.intr.fma + diff --git a/SSA/Projects/InstCombine/tests/logs/fmod.txt b/SSA/Projects/InstCombine/tests/logs/fmod.txt new file mode 100644 index 000000000..b0bc19d1d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmod.txt @@ -0,0 +1,46 @@ +1: "test_inf_const" +4: "test_inf_const" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_inf_const" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_inf_const" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inf_const" has unsupported operation: builtin.unregistered: llvm.frem + +1: "test_const_zero" +4: "test_const_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_const_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_const_zero" has unsupported operation: builtin.unregistered: llvm.frem + +1: "test_unknown_const" +4: "test_unknown_const" has unsupported operation: llvm.call + +1: "test_noinf_nozero" +4: "test_noinf_nozero" has unsupported operation: builtin.unregistered: llvm.frem + +1: "test_double" +4: "test_double" has unsupported operation: builtin.unregistered: llvm.frem + +1: "test_fp128" +4: "test_fp128" has unsupported operation: builtin.unregistered: llvm.frem + +1: "test_noinf_nozero_dazpreservesign" +4: "test_noinf_nozero_dazpreservesign" has unsupported operation: llvm.call + +1: "test_noinf_nozero_dazdynamic" +4: "test_noinf_nozero_dazdynamic" has unsupported operation: llvm.call + +1: "test_nnan" +4: "test_nnan" has unsupported operation: builtin.unregistered: llvm.frem + +1: "fmodf" +5: "fmodf" is empty + +1: "fmod" +5: "fmod" is empty + +1: "fmodl" +5: "fmodl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt b/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt new file mode 100644 index 000000000..81b404879 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-bool.txt @@ -0,0 +1,11 @@ +1: "fmul_bool" +4: "fmul_bool" has unsupported operation: builtin.unregistered: llvm.select + +1: "fmul_bool_vec" +4: "fmul_bool_vec" has unsupported operation: builtin.unregistered: llvm.select + +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/fmul-exp.txt b/SSA/Projects/InstCombine/tests/logs/fmul-exp.txt new file mode 100644 index 000000000..28d4b6cea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-exp.txt @@ -0,0 +1,56 @@ +1: "use" +5: "use" is empty + +1: "exp_a_exp_b" +4: "exp_a_exp_b" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "exp_a_exp_b_multiple_uses" +4: "exp_a_exp_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_exp_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b_multiple_uses" has unsupported operation: llvm.call + +1: "exp_a_exp_b_multiple_uses_both" +4: "exp_a_exp_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_exp_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "exp_a_exp_b_multiple_uses_both" has unsupported operation: llvm.call + +4: "exp_a_exp_b_multiple_uses_both" has unsupported operation: llvm.call + +1: "exp_a_exp_b_reassoc" +4: "exp_a_exp_b_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_exp_b_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "exp_a_a" +4: "exp_a_a" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_a" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "exp_a_a_extra_use" +4: "exp_a_a_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.exp + +4: "exp_a_a_extra_use" has unsupported operation: llvm.call + +4: "exp_a_a_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "exp_a_exp_b_exp_c_exp_d_fast" +4: "exp_a_exp_b_exp_c_exp_d_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_exp_b_exp_c_exp_d_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_exp_b_exp_c_exp_d_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp_a_exp_b_exp_c_exp_d_fast" has unsupported operation: builtin.unregistered: llvm.intr.exp + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-exp2.txt b/SSA/Projects/InstCombine/tests/logs/fmul-exp2.txt new file mode 100644 index 000000000..086d12c16 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-exp2.txt @@ -0,0 +1,49 @@ +1: "use" +5: "use" is empty + +1: "exp2_a_exp2_b" +4: "exp2_a_exp2_b" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "exp2_a_exp2_b_multiple_uses" +4: "exp2_a_exp2_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_exp2_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b_multiple_uses" has unsupported operation: llvm.call + +1: "exp2_a_a" +4: "exp2_a_a" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_a" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "exp2_a_exp2_b_multiple_uses_both" +4: "exp2_a_exp2_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +4: "exp2_a_exp2_b_multiple_uses_both" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "exp2_a_exp2_b_multiple_uses_both" has unsupported operation: llvm.call + +4: "exp2_a_exp2_b_multiple_uses_both" has unsupported operation: llvm.call + +1: "exp2_a_exp2_b_reassoc" +4: "exp2_a_exp2_b_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_exp2_b_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "exp2_a_exp2_b_exp2_c_exp2_d" +4: "exp2_a_exp2_b_exp2_c_exp2_d" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_exp2_b_exp2_c_exp2_d" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_exp2_b_exp2_c_exp2_d" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "exp2_a_exp2_b_exp2_c_exp2_d" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/fmul-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-maximum-minimum.txt b/SSA/Projects/InstCombine/tests/logs/fmul-maximum-minimum.txt new file mode 100644 index 000000000..0527ebb2c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-maximum-minimum.txt @@ -0,0 +1,21 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_comm1" +4: "test_comm1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_comm2" +4: "test_comm2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_comm3" +4: "test_comm3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_vect" +4: "test_vect" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_flags" +4: "test_flags" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_flags2" +4: "test_flags2" has unsupported operation: builtin.unregistered: llvm.fmul + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-pow.txt b/SSA/Projects/InstCombine/tests/logs/fmul-pow.txt new file mode 100644 index 000000000..3073e9b24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-pow.txt @@ -0,0 +1,156 @@ +1: "use" +5: "use" is empty + +1: "pow_ab_a" +4: "pow_ab_a" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_a" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow_ab_a_reassoc" +4: "pow_ab_a_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_a_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_a_reassoc_commute" +4: "pow_ab_a_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_a_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_a_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_a_reassoc_use" +4: "pow_ab_a_reassoc_use" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_a_reassoc_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_a_reassoc_use" has unsupported operation: llvm.call + +1: "pow_ab_recip_a" +4: "pow_ab_recip_a" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "pow_ab_recip_a" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_recip_a" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow_ab_recip_a_reassoc" +4: "pow_ab_recip_a_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_recip_a_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_recip_a_reassoc_commute" +4: "pow_ab_recip_a_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_recip_a_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_recip_a_reassoc_use1" +4: "pow_ab_recip_a_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "pow_ab_recip_a_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_recip_a_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_recip_a_reassoc_use1" has unsupported operation: llvm.call + +1: "pow_ab_recip_a_reassoc_use2" +4: "pow_ab_recip_a_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_recip_a_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "pow_ab_recip_a_reassoc_use2" has unsupported operation: llvm.call + +1: "pow_ab_recip_a_reassoc_use3" +4: "pow_ab_recip_a_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "pow_ab_recip_a_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_recip_a_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_recip_a_reassoc_use3" has unsupported operation: llvm.call + +4: "pow_ab_recip_a_reassoc_use3" has unsupported operation: llvm.call + +1: "pow_ab_pow_cb" +4: "pow_ab_pow_cb" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow_ab_pow_cb_reassoc" +4: "pow_ab_pow_cb_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_pow_cb_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_pow_cb_reassoc_use1" +4: "pow_ab_pow_cb_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_pow_cb_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use1" has unsupported operation: llvm.call + +1: "pow_ab_pow_cb_reassoc_use2" +4: "pow_ab_pow_cb_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_pow_cb_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use2" has unsupported operation: llvm.call + +1: "pow_ab_pow_cb_reassoc_use3" +4: "pow_ab_pow_cb_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_cb_reassoc_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_pow_cb_reassoc_use3" has unsupported operation: llvm.call + +4: "pow_ab_pow_cb_reassoc_use3" has unsupported operation: llvm.call + +1: "pow_ab_pow_ac" +4: "pow_ab_pow_ac" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_ac" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_pow_ac" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow_ab_x_pow_ac_reassoc" +4: "pow_ab_x_pow_ac_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_x_pow_ac_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_reassoc" +4: "pow_ab_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_ab_reassoc_extra_use" +4: "pow_ab_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_reassoc_extra_use" has unsupported operation: llvm.call + +1: "pow_ab_x_pow_ac_reassoc_extra_use" +4: "pow_ab_x_pow_ac_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_x_pow_ac_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pow_ab_x_pow_ac_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_x_pow_ac_reassoc_extra_use" has unsupported operation: llvm.call + +1: "pow_ab_x_pow_ac_reassoc_multiple_uses" +4: "pow_ab_x_pow_ac_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_x_pow_ac_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "pow_ab_x_pow_ac_reassoc_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ab_x_pow_ac_reassoc_multiple_uses" has unsupported operation: llvm.call + +4: "pow_ab_x_pow_ac_reassoc_multiple_uses" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul-sqrt.txt b/SSA/Projects/InstCombine/tests/logs/fmul-sqrt.txt new file mode 100644 index 000000000..4789f0e22 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fmul-sqrt.txt @@ -0,0 +1,107 @@ +1: "use" +5: "use" is empty + +1: "sqrt_a_sqrt_b" +4: "sqrt_a_sqrt_b" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_a_sqrt_b_multiple_uses" +4: "sqrt_a_sqrt_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_a_sqrt_b_multiple_uses" has unsupported operation: llvm.call + +1: "sqrt_a_sqrt_b_reassoc_nnan" +4: "sqrt_a_sqrt_b_reassoc_nnan" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_a_sqrt_b_reassoc_nnan" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "sqrt_a_sqrt_b_reassoc" +4: "sqrt_a_sqrt_b_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_a_sqrt_b_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_a_sqrt_b_sqrt_c_sqrt_d_reassoc" +4: "sqrt_a_sqrt_b_sqrt_c_sqrt_d_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_a_sqrt_b_sqrt_c_sqrt_d_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_a_sqrt_b_sqrt_c_sqrt_d_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_a_sqrt_b_sqrt_c_sqrt_d_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "rsqrt_squared" +4: "rsqrt_squared" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "rsqrt_x_reassociate_extra_use" +4: "rsqrt_x_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "rsqrt_x_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "rsqrt_x_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "rsqrt_x_reassociate_extra_use" has unsupported operation: llvm.store + +1: "x_add_y_rsqrt_reassociate_extra_use" +4: "x_add_y_rsqrt_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "x_add_y_rsqrt_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "x_add_y_rsqrt_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "x_add_y_rsqrt_reassociate_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "x_add_y_rsqrt_reassociate_extra_use" has unsupported operation: llvm.store + +1: "sqrt_divisor_squared" +4: "sqrt_divisor_squared" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_divisor_squared" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_dividend_squared" +4: "sqrt_dividend_squared" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_dividend_squared" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_divisor_squared_extra_use" +4: "sqrt_divisor_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_divisor_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_divisor_squared_extra_use" has unsupported operation: llvm.call + +4: "sqrt_divisor_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrt_dividend_squared_extra_use" +4: "sqrt_dividend_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_dividend_squared_extra_use" has unsupported operation: llvm.call + +4: "sqrt_dividend_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "sqrt_dividend_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "sqrt_divisor_not_enough_FMF" +4: "sqrt_divisor_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_divisor_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "sqrt_divisor_not_enough_FMF" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "rsqrt_squared_extra_use" +4: "rsqrt_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "rsqrt_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "rsqrt_squared_extra_use" has unsupported operation: llvm.call + +4: "rsqrt_squared_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + diff --git a/SSA/Projects/InstCombine/tests/logs/fmul.txt b/SSA/Projects/InstCombine/tests/logs/fmul.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fneg-as-int.txt b/SSA/Projects/InstCombine/tests/logs/fneg-as-int.txt new file mode 100644 index 000000000..14f9c774f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fneg-as-int.txt @@ -0,0 +1,2 @@ +3: fneg-as-int.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fneg-fabs-as-int.txt b/SSA/Projects/InstCombine/tests/logs/fneg-fabs-as-int.txt new file mode 100644 index 000000000..0fac89531 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fneg-fabs-as-int.txt @@ -0,0 +1,2 @@ +3: fneg-fabs-as-int.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt b/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt new file mode 100644 index 000000000..461cb9689 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fneg-fabs.txt @@ -0,0 +1,153 @@ +1: "select_noFMF_nfabs_lt" +4: "select_noFMF_nfabs_lt" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nfabs_lt_fmfProp" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nnan_nfabs_lt_fmfProp" +4: "select_nsz_nnan_nfabs_lt_fmfProp" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "select_nsz_nnan_nfabs_lt_fmfProp" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_ult" +4: "select_nsz_nfabs_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_ult" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_ole" +4: "select_nsz_nfabs_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_ole" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_ule" +4: "select_nsz_nfabs_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_ule" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_noFMF_nfabs_gt" +4: "select_noFMF_nfabs_gt" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nfabs_gt_fmfProp" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nnan_nfabs_gt_fmfProp" +4: "select_nsz_nnan_nfabs_gt_fmfProp" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "select_nsz_nnan_nfabs_gt_fmfProp" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_ogt" +4: "select_nsz_nfabs_ogt" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_ogt" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_ugt" +4: "select_nsz_nfabs_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_ugt" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_oge" +4: "select_nsz_nfabs_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_oge" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_nsz_nfabs_uge" +4: "select_nsz_nfabs_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "select_nsz_nnan_nfabs_uge" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "select_noFMF_fsubfabs_le" +4: "select_noFMF_fsubfabs_le" has unsupported operation: builtin.unregistered: llvm.fcmp + +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/fneg.txt b/SSA/Projects/InstCombine/tests/logs/fneg.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fold-a-or-b-zero.txt b/SSA/Projects/InstCombine/tests/logs/fold-a-or-b-zero.txt new file mode 100644 index 000000000..65c6e70c2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-a-or-b-zero.txt @@ -0,0 +1,54 @@ +1: "use" +5: "use" is empty + +1: "a_or_b" +4: "a_or_b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "a_or_b_not_inv" +4: "a_or_b_not_inv" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_not_inv" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_not_inv" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_not_inv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "a_or_b_const" +4: "a_or_b_const" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "a_or_b_const2" +4: "a_or_b_const2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_const2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "a_or_b_nullptr" +4: "a_or_b_nullptr" has unsupported operation: llvm.mlir.zero + +4: "a_or_b_nullptr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_nullptr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "a_or_b_multiple_uses" +4: "a_or_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses" has unsupported operation: llvm.call + +1: "a_or_b_multiple_uses_2" +4: "a_or_b_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses_2" has unsupported operation: llvm.call + +4: "a_or_b_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "a_or_b_multiple_uses_2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-add-sub.txt b/SSA/Projects/InstCombine/tests/logs/fold-add-sub.txt new file mode 100644 index 000000000..272174e97 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-add-sub.txt @@ -0,0 +1,63 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "test_add_nsw" +4: "test_add_nsw" has unsupported operation: llvm.call + +4: "test_add_nsw" has unsupported operation: llvm.call + +1: "test_add_nsw_no_prop" +4: "test_add_nsw_no_prop" has unsupported operation: llvm.call + +4: "test_add_nsw_no_prop" has unsupported operation: llvm.call + +1: "test_add" +4: "test_add" has unsupported operation: llvm.call + +4: "test_add" has unsupported operation: llvm.call + +1: "test_add_fail" +4: "test_add_fail" has unsupported operation: llvm.call + +4: "test_add_fail" has unsupported operation: llvm.call + +1: "test_add_nuw" +4: "test_add_nuw" has unsupported operation: llvm.call + +4: "test_add_nuw" has unsupported operation: llvm.call + +1: "test_add_nuw_no_prop" +4: "test_add_nuw_no_prop" has unsupported operation: llvm.call + +4: "test_add_nuw_no_prop" has unsupported operation: llvm.call + +1: "test_sub_nuw" +4: "test_sub_nuw" has unsupported operation: llvm.call + +4: "test_sub_nuw" has unsupported operation: llvm.call + +1: "test_sub_nuw_no_prop" +4: "test_sub_nuw_no_prop" has unsupported operation: llvm.call + +4: "test_sub_nuw_no_prop" has unsupported operation: llvm.call + +1: "test_sub_nsw" +4: "test_sub_nsw" has unsupported operation: llvm.call + +4: "test_sub_nsw" has unsupported operation: llvm.call + +1: "test_sub_nsw_no_prop" +4: "test_sub_nsw_no_prop" has unsupported operation: llvm.call + +4: "test_sub_nsw_no_prop" has unsupported operation: llvm.call + +1: "test_sub_none" +4: "test_sub_none" has unsupported operation: llvm.call + +4: "test_sub_none" has unsupported operation: llvm.call + +1: "test_sub_none_fail" +4: "test_sub_none_fail" has unsupported operation: llvm.call + +4: "test_sub_none_fail" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-bin-operand.txt b/SSA/Projects/InstCombine/tests/logs/fold-bin-operand.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fold-calls.txt b/SSA/Projects/InstCombine/tests/logs/fold-calls.txt new file mode 100644 index 000000000..1065330e0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-calls.txt @@ -0,0 +1,9 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +1: "bar" +4: "bar" has unsupported operation: llvm.call + +1: "sin" +5: "sin" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt b/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt new file mode 100644 index 000000000..ad795f660 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-ctpop-of-not.txt @@ -0,0 +1,80 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "fold_sub_c_ctpop" +4: "fold_sub_c_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_sub_var_ctpop_fail" +4: "fold_sub_var_ctpop_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_sub_ctpop_c" +4: "fold_sub_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_add_ctpop_c" +4: "fold_add_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_distjoint_or_ctpop_c" +4: "fold_distjoint_or_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_or_ctpop_c_fail" +4: "fold_or_ctpop_c_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_add_ctpop_var_fail" +4: "fold_add_ctpop_var_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "fold_icmp_sgt_ctpop_c_i2_fail" +4: "fold_icmp_sgt_ctpop_c_i2_fail" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "fold_icmp_sgt_ctpop_c_i2_fail" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_cmp_eq_ctpop_c" +4: "fold_cmp_eq_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_eq_ctpop_c" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_cmp_eq_ctpop_c_multiuse_fail" +4: "fold_cmp_eq_ctpop_c_multiuse_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_eq_ctpop_c_multiuse_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_cmp_eq_ctpop_c_multiuse_fail" has unsupported operation: llvm.call + +1: "fold_cmp_ne_ctpop_c" +4: "fold_cmp_ne_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_ne_ctpop_c" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_cmp_ne_ctpop_var_fail" +4: "fold_cmp_ne_ctpop_var_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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 + +1: "fold_cmp_ult_ctpop_c_no_not_inst_save_fail" +4: "fold_cmp_ult_ctpop_c_no_not_inst_save_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_ult_ctpop_c_no_not_inst_save_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_cmp_ugt_ctpop_c" +4: "fold_cmp_ugt_ctpop_c" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_ugt_ctpop_c" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_cmp_ugt_ctpop_c_out_of_range_fail" +4: "fold_cmp_ugt_ctpop_c_out_of_range_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "fold_cmp_ugt_ctpop_c_out_of_range_fail" 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 new file mode 100644 index 000000000..de4add054 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-ext-eq-c-with-op.txt @@ -0,0 +1,27 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "fold_add_zext_eq_0" +4: "fold_add_zext_eq_0" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "fold_add_sext_eq_4_6" +4: "fold_add_sext_eq_4_6" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "fold_add_zext_eq_0_fail_multiuse_exp" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_add_zext_eq_0_fail_multiuse_exp" has unsupported operation: llvm.call + +1: "fold_add_sext_eq_4_fail_wrong_cond" +4: "fold_add_sext_eq_4_fail_wrong_cond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_add_sext_eq_4_fail_wrong_cond" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_add_sext_eq_4_fail_wrong_cond" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt b/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt new file mode 100644 index 000000000..9dd8c2967 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-fops-into-selects.txt @@ -0,0 +1,33 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.select + +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 new file mode 100644 index 000000000..9c784993b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-inc-of-add-of-not-x-and-y-to-sub-x-from-y.txt @@ -0,0 +1,69 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "t1_vec_splat" +"t1_vec_splat" contains vectors which are unsupported + +1: "t2_vec_poison0" +"t2_vec_poison0" contains vectors which are unsupported + +1: "t3_vec_poison1" +"t3_vec_poison1" contains vectors which are unsupported + +1: "t4_vec_poison2" +"t4_vec_poison2" contains vectors which are unsupported + +1: "use32" +5: "use32" is empty + +1: "t5" +4: "t5" has unsupported operation: llvm.call + +1: "t6" +4: "t6" has unsupported operation: llvm.call + +1: "t7" +4: "t7" has unsupported operation: llvm.call + +4: "t7" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t8_commutative0" +4: "t8_commutative0" has unsupported operation: llvm.call + +4: "t8_commutative0" has unsupported operation: llvm.call + +4: "t8_commutative0" has unsupported operation: llvm.call + +1: "t9_commutative1" +4: "t9_commutative1" has unsupported operation: llvm.call + +4: "t9_commutative1" has unsupported operation: llvm.call + +1: "t10_commutative2" +4: "t10_commutative2" has unsupported operation: llvm.call + +4: "t10_commutative2" has unsupported operation: llvm.call + +4: "t10_commutative2" has unsupported operation: llvm.call + +1: "n11" +7: "n11" is unchanged by InstCombine + +1: "n12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-log2-ceil-idiom.txt b/SSA/Projects/InstCombine/tests/logs/fold-log2-ceil-idiom.txt new file mode 100644 index 000000000..84d8e8869 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-log2-ceil-idiom.txt @@ -0,0 +1,139 @@ +1: "log2_ceil_idiom" +4: "log2_ceil_idiom" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "log2_ceil_idiom_trunc" +4: "log2_ceil_idiom_trunc" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "log2_ceil_idiom_zext" +4: "log2_ceil_idiom_zext" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_power2_test2" +4: "log2_ceil_idiom_power2_test2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "log2_ceil_idiom_commuted" +4: "log2_ceil_idiom_commuted" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "log2_ceil_idiom_multiuse1" +4: "log2_ceil_idiom_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_multiuse1" has unsupported operation: llvm.call + +4: "log2_ceil_idiom_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "log2_ceil_idiom_x_may_be_zero" +4: "log2_ceil_idiom_x_may_be_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_x_may_be_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_x_may_be_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_x_may_be_zero" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_trunc_too_short" +4: "log2_ceil_idiom_trunc_too_short" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_trunc_too_short" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "log2_ceil_idiom_trunc_too_short" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_trunc_too_short" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_trunc_too_short" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_mismatched_operands" +4: "log2_ceil_idiom_mismatched_operands" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_mismatched_operands" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_mismatched_operands" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_mismatched_operands" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_wrong_constant" +4: "log2_ceil_idiom_wrong_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_wrong_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_wrong_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_wrong_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_not_a_power2_test1" +4: "log2_ceil_idiom_not_a_power2_test1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_not_a_power2_test1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_not_a_power2_test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_not_a_power2_test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_not_a_power2_test2" +4: "log2_ceil_idiom_not_a_power2_test2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_not_a_power2_test2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_not_a_power2_test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_not_a_power2_test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_multiuse2" +4: "log2_ceil_idiom_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_multiuse2" has unsupported operation: llvm.call + +4: "log2_ceil_idiom_multiuse2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_multiuse2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_multiuse3" +4: "log2_ceil_idiom_multiuse3" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_multiuse3" has unsupported operation: llvm.call + +4: "log2_ceil_idiom_multiuse3" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_multiuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_multiuse3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_trunc_multiuse4" +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: llvm.call + +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_trunc_multiuse4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "log2_ceil_idiom_zext_multiuse5" +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: llvm.call + +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "log2_ceil_idiom_zext_multiuse5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "use5" +5: "use5" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt b/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt new file mode 100644 index 000000000..842aef680 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-minmax-i1.txt @@ -0,0 +1,24 @@ +1: "umin_scalar" +4: "umin_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "smin_scalar" +4: "smin_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "umax_scalar" +4: "umax_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "smax_scalar" +4: "smax_scalar" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "umin_vector" +"umin_vector" contains vectors which are unsupported + +1: "smin_vector" +"smin_vector" contains vectors which are unsupported + +1: "umax_vector" +"umax_vector" contains vectors which are unsupported + +1: "smax_vector" +"smax_vector" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-phi-load-metadata.txt b/SSA/Projects/InstCombine/tests/logs/fold-phi-load-metadata.txt new file mode 100644 index 000000000..cf1e53a12 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-phi-load-metadata.txt @@ -0,0 +1,19 @@ +1: "phi_load_metadata" +4: "phi_load_metadata" has unsupported operation: llvm.mlir.addressof + +4: "phi_load_metadata" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_load_metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_load_metadata" has unsupported operation: llvm.getelementptr + +4: "phi_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_load_metadata" has unsupported operation: llvm.load + +4: "phi_load_metadata" has unsupported operation: llvm.load + +4: "phi_load_metadata" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-phi.txt b/SSA/Projects/InstCombine/tests/logs/fold-phi.txt new file mode 100644 index 000000000..7eb1a52d5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-phi.txt @@ -0,0 +1,22 @@ +1: "no_crash" +4: "no_crash" has unsupported operation: builtin.unregistered: llvm.br + +4: "no_crash" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "no_crash" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "no_crash" has unsupported operation: builtin.unregistered: llvm.br + +1: "pr21377" +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr21377" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-select-fmul-if-zero.txt b/SSA/Projects/InstCombine/tests/logs/fold-select-fmul-if-zero.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt b/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt new file mode 100644 index 000000000..966e88ee1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-select-trunc.txt @@ -0,0 +1,30 @@ +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-signbit-test-power2.txt b/SSA/Projects/InstCombine/tests/logs/fold-signbit-test-power2.txt new file mode 100644 index 000000000..5231cc72a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-signbit-test-power2.txt @@ -0,0 +1,56 @@ +1: "use" +5: "use" is empty + +1: "use_i1" +5: "use_i1" is empty + +1: "use_i1_vec" +5: "use_i1_vec" is empty + +1: "pow2_or_zero_is_negative" +4: "pow2_or_zero_is_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_negative" has unsupported operation: llvm.call + +1: "pow2_or_zero_is_negative_commute" +4: "pow2_or_zero_is_negative_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pow2_or_zero_is_negative_vec" +4: "pow2_or_zero_is_negative_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_negative_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_negative_vec" has unsupported operation: llvm.call + +1: "pow2_or_zero_is_negative_vec_commute" +4: "pow2_or_zero_is_negative_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pow2_or_zero_is_not_negative" +4: "pow2_or_zero_is_not_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_not_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_not_negative" has unsupported operation: llvm.call + +1: "pow2_or_zero_is_not_negative_commute" +4: "pow2_or_zero_is_not_negative_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pow2_or_zero_is_not_negative_vec" +4: "pow2_or_zero_is_not_negative_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_not_negative_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_is_not_negative_vec" has unsupported operation: llvm.call + +1: "pow2_or_zero_is_not_negative_vec_commute" +4: "pow2_or_zero_is_not_negative_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pow2_or_zero_is_negative_extra_use" +4: "pow2_or_zero_is_negative_extra_use" has unsupported operation: llvm.call + +4: "pow2_or_zero_is_negative_extra_use" has unsupported operation: llvm.call + +4: "pow2_or_zero_is_negative_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-sqrt-sqrtf.txt b/SSA/Projects/InstCombine/tests/logs/fold-sqrt-sqrtf.txt new file mode 100644 index 000000000..412078a29 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-sqrt-sqrtf.txt @@ -0,0 +1,9 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +1: "sqrt" +5: "sqrt" is empty + +1: "sqrtf" +5: "sqrtf" is empty + 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 new file mode 100644 index 000000000..e5a45be1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-sub-of-not-to-inc-of-add.txt @@ -0,0 +1,31 @@ +1: "p0_scalar" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "p0_scalar_not_truly_negatable" +7: "p0_scalar_not_truly_negatable" is unchanged by InstCombine + +1: "p1_vector_splat" +"p1_vector_splat" contains vectors which are unsupported + +1: "p2_vector_poison" +"p2_vector_poison" contains vectors which are unsupported + +1: "use32" +5: "use32" is empty + +1: "p3_oneuse" +4: "p3_oneuse" has unsupported operation: llvm.call + +1: "n4" +7: "n4" is unchanged by InstCombine + +1: "n5_is_not_not" +7: "n5_is_not_not" is unchanged by InstCombine + +1: "n5_is_not_not_vec_splat" +7: "n5_is_not_not_vec_splat" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-vector-select.txt b/SSA/Projects/InstCombine/tests/logs/fold-vector-select.txt new file mode 100644 index 000000000..d988923e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-vector-select.txt @@ -0,0 +1,131 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-vector-zero-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/fold-vector-zero-inseltpoison.txt new file mode 100644 index 000000000..cc1a6fc8a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-vector-zero-inseltpoison.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.inttoptr + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.inttoptr + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/fold-vector-zero.txt b/SSA/Projects/InstCombine/tests/logs/fold-vector-zero.txt new file mode 100644 index 000000000..cc1a6fc8a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fold-vector-zero.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.inttoptr + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.inttoptr + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/force-opaque-ptr.txt b/SSA/Projects/InstCombine/tests/logs/force-opaque-ptr.txt new file mode 100644 index 000000000..4812f3ee4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/force-opaque-ptr.txt @@ -0,0 +1,19 @@ +1: "gep_constexpr_gv_1" +4: "gep_constexpr_gv_1" has unsupported operation: llvm.mlir.addressof + +4: "gep_constexpr_gv_1" has unsupported operation: llvm.getelementptr + +1: "gep_constexpr_gv_2" +4: "gep_constexpr_gv_2" has unsupported operation: llvm.mlir.addressof + +4: "gep_constexpr_gv_2" has unsupported operation: llvm.getelementptr + +1: "gep_constexpr_inttoptr" +4: "gep_constexpr_inttoptr" has unsupported operation: llvm.mlir.addressof + +4: "gep_constexpr_inttoptr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "gep_constexpr_inttoptr" has unsupported operation: llvm.inttoptr + +4: "gep_constexpr_inttoptr" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/fortify-folding.txt b/SSA/Projects/InstCombine/tests/logs/fortify-folding.txt new file mode 100644 index 000000000..f0c294bdf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fortify-folding.txt @@ -0,0 +1,294 @@ +1: "test_memccpy" +4: "test_memccpy" has unsupported operation: llvm.mlir.addressof + +4: "test_memccpy" has unsupported operation: llvm.mlir.addressof + +4: "test_memccpy" has unsupported operation: llvm.call + +1: "test_not_memccpy" +4: "test_not_memccpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_memccpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_memccpy" has unsupported operation: llvm.call + +1: "test_memccpy_tail" +4: "test_memccpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_memccpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_memccpy_tail" has unsupported operation: llvm.call + +1: "test_mempcpy" +4: "test_mempcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_mempcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_mempcpy" has unsupported operation: llvm.getelementptr + +4: "test_mempcpy" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_not_mempcpy" +4: "test_not_mempcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_mempcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_mempcpy" has unsupported operation: llvm.call + +1: "test_mempcpy_tail" +4: "test_mempcpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_mempcpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_mempcpy_tail" has unsupported operation: llvm.getelementptr + +4: "test_mempcpy_tail" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_snprintf" +4: "test_snprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_snprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_snprintf" has unsupported operation: llvm.call + +1: "test_not_snprintf" +4: "test_not_snprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_snprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_snprintf" has unsupported operation: llvm.call + +4: "test_not_snprintf" has unsupported operation: llvm.call + +1: "test_snprintf_tail" +4: "test_snprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_snprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_snprintf_tail" has unsupported operation: llvm.call + +1: "test_sprintf" +4: "test_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_sprintf" has unsupported operation: llvm.call + +1: "test_not_sprintf" +4: "test_not_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_sprintf" has unsupported operation: llvm.call + +4: "test_not_sprintf" has unsupported operation: llvm.call + +1: "test_sprintf_tail" +4: "test_sprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_sprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_sprintf_tail" has unsupported operation: llvm.call + +1: "test_strcat" +4: "test_strcat" has unsupported operation: llvm.mlir.addressof + +4: "test_strcat" has unsupported operation: llvm.mlir.addressof + +4: "test_strcat" has unsupported operation: llvm.call + +1: "test_not_strcat" +4: "test_not_strcat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strcat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strcat" has unsupported operation: llvm.call + +1: "test_strcat_tail" +4: "test_strcat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strcat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strcat_tail" has unsupported operation: llvm.call + +1: "test_strlcat" +4: "test_strlcat" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcat" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcat" has unsupported operation: llvm.call + +1: "test_not_strlcat" +4: "test_not_strlcat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strlcat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strlcat" has unsupported operation: llvm.call + +1: "test_strlcat_tail" +4: "test_strlcat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcat_tail" has unsupported operation: llvm.call + +1: "test_strncat" +4: "test_strncat" has unsupported operation: llvm.mlir.addressof + +4: "test_strncat" has unsupported operation: llvm.mlir.addressof + +4: "test_strncat" has unsupported operation: llvm.call + +1: "test_not_strncat" +4: "test_not_strncat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strncat" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strncat" has unsupported operation: llvm.call + +1: "test_strncat_tail" +4: "test_strncat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strncat_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strncat_tail" has unsupported operation: llvm.call + +1: "test_strlcpy" +4: "test_strlcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcpy" has unsupported operation: llvm.call + +1: "test_not_strlcpy" +4: "test_not_strlcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strlcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_not_strlcpy" has unsupported operation: llvm.call + +1: "test_strlcpy_tail" +4: "test_strlcpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcpy_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_strlcpy_tail" has unsupported operation: llvm.call + +1: "test_vsnprintf" +4: "test_vsnprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_vsnprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_vsnprintf" has unsupported operation: llvm.mlir.zero + +4: "test_vsnprintf" has unsupported operation: llvm.call + +1: "test_not_vsnprintf" +4: "test_not_vsnprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_vsnprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_vsnprintf" has unsupported operation: llvm.mlir.zero + +4: "test_not_vsnprintf" has unsupported operation: llvm.call + +4: "test_not_vsnprintf" has unsupported operation: llvm.call + +1: "test_vsnprintf_tail" +4: "test_vsnprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_vsnprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_vsnprintf_tail" has unsupported operation: llvm.mlir.zero + +4: "test_vsnprintf_tail" has unsupported operation: llvm.call + +1: "test_vsprintf" +4: "test_vsprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_vsprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_vsprintf" has unsupported operation: llvm.mlir.zero + +4: "test_vsprintf" has unsupported operation: llvm.call + +1: "test_not_vsprintf" +4: "test_not_vsprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_vsprintf" has unsupported operation: llvm.mlir.addressof + +4: "test_not_vsprintf" has unsupported operation: llvm.mlir.zero + +4: "test_not_vsprintf" has unsupported operation: llvm.call + +4: "test_not_vsprintf" has unsupported operation: llvm.call + +1: "test_vsprintf_tail" +4: "test_vsprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_vsprintf_tail" has unsupported operation: llvm.mlir.addressof + +4: "test_vsprintf_tail" has unsupported operation: llvm.mlir.zero + +4: "test_vsprintf_tail" has unsupported operation: llvm.call + +1: "__mempcpy_chk" +5: "__mempcpy_chk" is empty + +1: "__memccpy_chk" +5: "__memccpy_chk" is empty + +1: "__snprintf_chk" +5: "__snprintf_chk" is empty + +1: "__sprintf_chk" +5: "__sprintf_chk" is empty + +1: "__strcat_chk" +5: "__strcat_chk" is empty + +1: "__strlcat_chk" +5: "__strlcat_chk" is empty + +1: "__strncat_chk" +5: "__strncat_chk" is empty + +1: "__strlcpy_chk" +5: "__strlcpy_chk" is empty + +1: "__vsnprintf_chk" +5: "__vsnprintf_chk" is empty + +1: "__vsprintf_chk" +5: "__vsprintf_chk" is empty + +1: "memccpy" +5: "memccpy" is empty + +1: "mempcpy" +5: "mempcpy" is empty + +1: "snprintf" +5: "snprintf" is empty + +1: "sprintf" +5: "sprintf" is empty + +1: "strcat" +5: "strcat" is empty + +1: "strlcat" +5: "strlcat" is empty + +1: "strncat" +5: "strncat" is empty + +1: "strlcpy" +5: "strlcpy" is empty + +1: "vsnprintf" +5: "vsnprintf" is empty + +1: "vsprintf" +5: "vsprintf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt b/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt new file mode 100644 index 000000000..3651379cd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fp-floor-ceil.txt @@ -0,0 +1,110 @@ +1: "floor_x_ole" +4: "floor_x_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "floor_x_ule" +4: "floor_x_ule" has unsupported operation after optimization: builtin.unregistered: llvm.intr.floor + +4: "floor_x_ule" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "floor_x_ogt" +4: "floor_x_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.intr.floor + +4: "floor_x_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "floor_x_ugt" +4: "floor_x_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_floor_oge" +4: "x_floor_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_floor_uge" +4: "x_floor_uge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.floor + +4: "x_floor_uge" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "x_floor_olt" +4: "x_floor_olt" has unsupported operation after optimization: builtin.unregistered: llvm.intr.floor + +4: "x_floor_olt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "x_floor_ult" +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 + +1: "x_floor_ole_neg" +4: "x_floor_ole_neg" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "x_floor_ole_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_floor_ogt_neg" +4: "x_floor_ogt_neg" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "x_floor_ogt_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_floor_ueq_neg" +4: "x_floor_ueq_neg" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "x_floor_ueq_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_floor_une_neg" +4: "x_floor_une_neg" has unsupported operation: builtin.unregistered: llvm.intr.floor + +4: "x_floor_une_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ceil_x_oge" +4: "ceil_x_oge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "ceil_x_uge" +4: "ceil_x_uge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +4: "ceil_x_uge" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "ceil_x_olt" +4: "ceil_x_olt" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +4: "ceil_x_olt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "ceil_x_ult" +4: "ceil_x_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_ceil_ole" +4: "x_ceil_ole" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_ceil_ule" +4: "x_ceil_ule" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_ule" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "x_ceil_ogt" +4: "x_ceil_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_ogt" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "x_ceil_ugt" +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 + +1: "x_ceil_oge_neg" +4: "x_ceil_oge_neg" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_oge_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_ceil_olt_neg" +4: "x_ceil_olt_neg" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_olt_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_ceil_oeq_neg" +4: "x_ceil_oeq_neg" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_oeq_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "x_ceil_one_neg" +4: "x_ceil_one_neg" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +4: "x_ceil_one_neg" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/fp-ret-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/fp-ret-bitcast.txt new file mode 100644 index 000000000..994257e42 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fp-ret-bitcast.txt @@ -0,0 +1,20 @@ +1: "bork" +4: "bork" has unsupported operation: llvm.mlir.addressof + +4: "bork" has unsupported operation: llvm.mlir.addressof + +4: "bork" has unsupported operation: llvm.alloca + +4: "bork" has unsupported operation: llvm.load + +4: "bork" has unsupported operation: llvm.load + +4: "bork" has unsupported operation: llvm.call + +4: "bork" has unsupported operation: builtin.unregistered: llvm.br + +4: "bork" has unsupported operation: llvm.return + +1: "objc_msgSend_fpret" +5: "objc_msgSend_fpret" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fpcast.txt b/SSA/Projects/InstCombine/tests/logs/fpcast.txt new file mode 100644 index 000000000..d160f8852 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fpcast.txt @@ -0,0 +1,169 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "fneg_fptrunc" +4: "fneg_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fneg_fptrunc" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_fneg_fptrunc" +4: "unary_fneg_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "unary_fneg_fptrunc" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_fptrunc_vec_poison" +4: "fneg_fptrunc_vec_poison" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fneg_fptrunc_vec_poison" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_fneg_fptrunc_vec" +4: "unary_fneg_fptrunc_vec" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "unary_fneg_fptrunc_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test4-fast" +4: "test4-fast" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test4-fast" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test4_unary_fneg-fast" +4: "test4_unary_fneg-fast" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test4_unary_fneg-fast" has unsupported operation: builtin.unregistered: llvm.fneg + +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" +4: "test6" has unsupported operation: builtin.unregistered: llvm.frem + +4: "test6" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.frem + +4: "test7" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test8" has unsupported operation: builtin.unregistered: llvm.frem + +4: "test8" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test_fptrunc_fptrunc" +4: "test_fptrunc_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "test_fptrunc_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sint_to_fptrunc" +4: "sint_to_fptrunc" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "sint_to_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "masked_sint_to_fptrunc1" +4: "masked_sint_to_fptrunc1" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_sint_to_fptrunc2" +4: "masked_sint_to_fptrunc2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_sint_to_fptrunc3" +4: "masked_sint_to_fptrunc3" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "masked_sint_to_fptrunc3" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sint_to_fpext" +4: "sint_to_fpext" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "sint_to_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "masked_sint_to_fpext1" +4: "masked_sint_to_fpext1" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_sint_to_fpext2" +4: "masked_sint_to_fpext2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_sint_to_fpext3" +4: "masked_sint_to_fpext3" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "masked_sint_to_fpext3" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "uint_to_fptrunc" +4: "uint_to_fptrunc" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "uint_to_fptrunc" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "masked_uint_to_fptrunc1" +4: "masked_uint_to_fptrunc1" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_uint_to_fptrunc2" +4: "masked_uint_to_fptrunc2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_uint_to_fptrunc3" +4: "masked_uint_to_fptrunc3" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "masked_uint_to_fptrunc3" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "uint_to_fpext" +4: "uint_to_fpext" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "uint_to_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "masked_uint_to_fpext1" +4: "masked_uint_to_fpext1" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_uint_to_fpext2" +4: "masked_uint_to_fpext2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "masked_uint_to_fpext3" +4: "masked_uint_to_fpext3" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "masked_uint_to_fpext3" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "fptosi_nonnorm" +4: "fptosi_nonnorm" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + +1: "fptoui_nonnorm" +4: "fptoui_nonnorm" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "fptosi_nonnnorm" +4: "fptosi_nonnnorm" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "fptoui_nonnnorm" +4: "fptoui_nonnnorm" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "fptosi_nonnorm_copysign" +4: "fptosi_nonnorm_copysign" has unsupported operation after optimization: builtin.unregistered: llvm.intr.copysign + +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 + +1: "fptosi_nonnorm_fmul" +4: "fptosi_nonnorm_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fptosi_nonnorm_fmul" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "fptosi_select" +4: "fptosi_select" has unsupported operation: builtin.unregistered: llvm.select + +1: "mul_pos_zero_convert" +4: "mul_pos_zero_convert" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "mul_pos_zero_convert" has unsupported operation after optimization: builtin.unregistered: llvm.fmul + +4: "mul_pos_zero_convert" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + diff --git a/SSA/Projects/InstCombine/tests/logs/fpclass-check-idioms.txt b/SSA/Projects/InstCombine/tests/logs/fpclass-check-idioms.txt new file mode 100644 index 000000000..49a5921e9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fpclass-check-idioms.txt @@ -0,0 +1,2 @@ +3: fpclass-check-idioms.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fpclass-from-dom-cond.txt b/SSA/Projects/InstCombine/tests/logs/fpclass-from-dom-cond.txt new file mode 100644 index 000000000..88b57b8f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fpclass-from-dom-cond.txt @@ -0,0 +1,148 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test8" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test10" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test11_and" +4: "test11_and" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test11_and" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11_and" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test12_or" +4: "test12_or" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test12_or" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12_or" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test1_no_dominating" +4: "test1_no_dominating" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_no_dominating" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test1_no_dominating" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_no_dominating" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_signbit_check" +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_signbit_check_fail" +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_signbit_check_fail" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "test_signbit_check_wrong_type" +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_signbit_check_wrong_type" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/fpextend.txt b/SSA/Projects/InstCombine/tests/logs/fpextend.txt new file mode 100644 index 000000000..bcc2f9959 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fpextend.txt @@ -0,0 +1,2 @@ +3: fpextend.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/fpextend_x86.txt b/SSA/Projects/InstCombine/tests/logs/fpextend_x86.txt new file mode 100644 index 000000000..1f8bf7ed8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fpextend_x86.txt @@ -0,0 +1,41 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test4" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fptrunc + diff --git a/SSA/Projects/InstCombine/tests/logs/fprintf-1.txt b/SSA/Projects/InstCombine/tests/logs/fprintf-1.txt new file mode 100644 index 000000000..ef4991ca9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fprintf-1.txt @@ -0,0 +1,71 @@ +1: "fprintf" +5: "fprintf" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.call + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.call + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.call + +4: "test_no_simplify2" has unsupported operation: llvm.return + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify4" +4: "test_no_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify4" has unsupported operation: llvm.call + +4: "test_no_simplify4" has unsupported operation: llvm.return + +1: "fwrite" +5: "fwrite" is empty + +1: "fputc" +5: "fputc" is empty + +1: "fputs" +5: "fputs" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fprintf-wrong-sig.txt b/SSA/Projects/InstCombine/tests/logs/fprintf-wrong-sig.txt new file mode 100644 index 000000000..6b26051cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fprintf-wrong-sig.txt @@ -0,0 +1,8 @@ +1: "fprintf" +5: "fprintf" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/fptrunc.txt b/SSA/Projects/InstCombine/tests/logs/fptrunc.txt new file mode 100644 index 000000000..89a36e271 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fptrunc.txt @@ -0,0 +1,94 @@ +1: "fadd_fpext_op0" +4: "fadd_fpext_op0" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fadd_fpext_op0" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_fpext_op0" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "fsub_fpext_op1" +4: "fsub_fpext_op1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fsub_fpext_op1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fpext_op1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "fdiv_constant_op0" +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "fmul_constant_op1" +4: "fmul_constant_op1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_constant_op1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +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 + +1: "fptrunc_select_true_val_extra_use" +4: "fptrunc_select_true_val_extra_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fptrunc_select_true_val_extra_use" has unsupported operation: llvm.call + +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 + +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" +4: "ItoFtoF_s54_f64_f32" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "ItoFtoF_u24_f32_f16" +4: "ItoFtoF_u24_f32_f16" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "ItoFtoF_u24_f32_f16" has unsupported operation: llvm.call + +4: "ItoFtoF_u24_f32_f16" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "ItoFtoF_s55_f64_f32" +4: "ItoFtoF_s55_f64_f32" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "ItoFtoF_s55_f64_f32" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "ItoFtoF_u25_f32_f16" +4: "ItoFtoF_u25_f32_f16" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "ItoFtoF_u25_f32_f16" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "fptrunc_to_bfloat_bitcast_to_half" +4: "fptrunc_to_bfloat_bitcast_to_half" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fptrunc_to_bfloat_bitcast_to_half" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/fputs-1.txt b/SSA/Projects/InstCombine/tests/logs/fputs-1.txt new file mode 100644 index 000000000..793f18ec2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fputs-1.txt @@ -0,0 +1,24 @@ +1: "fputs" +5: "fputs" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.call + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "fwrite" +5: "fwrite" is empty + +1: "fputc" +5: "fputc" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/fputs-opt-size.txt b/SSA/Projects/InstCombine/tests/logs/fputs-opt-size.txt new file mode 100644 index 000000000..19ff166e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fputs-opt-size.txt @@ -0,0 +1,31 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: llvm.call + +1: "fopen" +5: "fopen" is empty + +1: "fputs" +5: "fputs" is empty + +1: "main_pgso" +4: "main_pgso" has unsupported operation: llvm.mlir.addressof + +4: "main_pgso" has unsupported operation: llvm.mlir.addressof + +4: "main_pgso" has unsupported operation: llvm.mlir.addressof + +4: "main_pgso" has unsupported operation: llvm.call + +4: "main_pgso" has unsupported operation: llvm.call + +1: "fwrite" +5: "fwrite" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/free-inversion.txt b/SSA/Projects/InstCombine/tests/logs/free-inversion.txt new file mode 100644 index 000000000..baf6ab631 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/free-inversion.txt @@ -0,0 +1,204 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "use.i1" +5: "use.i1" is empty + +1: "xor_1" +4: "xor_1" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_2" +4: "xor_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_fail" +4: "xor_fail" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_1" +4: "add_1" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_2" +4: "add_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_fail" +4: "add_fail" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_1" +4: "sub_1" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_2" +4: "sub_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "sub_3" +4: "sub_3" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "ashr_2_fail" +4: "ashr_2_fail" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_1" +4: "select_1" has unsupported operation: builtin.unregistered: llvm.select + +4: "select_1" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_2" +4: "select_2" has unsupported operation: builtin.unregistered: llvm.select + +4: "select_2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "sub_both_freely_invertable_always" +7: "sub_both_freely_invertable_always" is unchanged by InstCombine + +1: "add_both_freely_invertable_always" +7: "add_both_freely_invertable_always" is unchanged by InstCombine + +1: "xor_both_freely_invertable_always" +7: "xor_both_freely_invertable_always" is unchanged by InstCombine + +1: "ashr_both_freely_invertable_always" +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 + +1: "umin_both_freely_invertable_always" +4: "umin_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umax_both_freely_invertable_always" +4: "umax_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smin_both_freely_invertable_always" +4: "smin_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smax_both_freely_invertable_always" +4: "smax_both_freely_invertable_always" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "lshr_nneg" +4: "lshr_nneg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_nneg" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "lshr_not_nneg" +7: "lshr_not_nneg" is unchanged by InstCombine + +1: "lshr_not_nneg2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "test_inv_free" +4: "test_inv_free" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_inv_free_i32" +4: "test_inv_free_i32" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_i32" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_i32" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_i32" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_inv_free_multiuse" +4: "test_inv_free_multiuse" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_multiuse" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_multiuse" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_multiuse" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_multiuse" has unsupported operation: llvm.call + +4: "test_inv_free_multiuse" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_inv_free_i32_newinst" +4: "test_inv_free_i32_newinst" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_i32_newinst" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_i32_newinst" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_i32_newinst" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_inv_free_loop" +4: "test_inv_free_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inv_free_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inv_free_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/freeze-fp-ops.txt b/SSA/Projects/InstCombine/tests/logs/freeze-fp-ops.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/freeze-integer-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/freeze-integer-intrinsics.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/freeze-landingpad.txt b/SSA/Projects/InstCombine/tests/logs/freeze-landingpad.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/freeze-phi.txt b/SSA/Projects/InstCombine/tests/logs/freeze-phi.txt new file mode 100644 index 000000000..0379bde45 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/freeze-phi.txt @@ -0,0 +1,78 @@ +1: "const" +4: "const" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "const" has unsupported operation: builtin.unregistered: llvm.br + +4: "const" has unsupported operation: builtin.unregistered: llvm.br + +1: "vec" +4: "vec" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "vec" has unsupported operation: builtin.unregistered: llvm.br + +4: "vec" has unsupported operation: builtin.unregistered: llvm.br + +1: "vec_undef" +4: "vec_undef" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "vec_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "vec_undef" has unsupported operation: builtin.unregistered: llvm.br + +1: "one" +4: "one" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "one" has unsupported operation: builtin.unregistered: llvm.br + +4: "one" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "one" has unsupported operation: builtin.unregistered: llvm.br + +1: "two" +4: "two" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two" has unsupported operation: builtin.unregistered: llvm.br + +4: "two" has unsupported operation: builtin.unregistered: llvm.br + +4: "two" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "two_undef" +4: "two_undef" has unsupported operation: llvm.mlir.undef + +4: "two_undef" has unsupported operation: builtin.unregistered: llvm.switch + +4: "two_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_undef" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "one_undef" +4: "one_undef" has unsupported operation: builtin.unregistered: llvm.switch + +4: "one_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "one_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "one_undef" has unsupported operation: builtin.unregistered: llvm.br + +1: "one_constexpr" +4: "one_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "one_constexpr" has unsupported operation: llvm.getelementptr + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.switch + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.br + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.br + +4: "one_constexpr" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/freeze.txt b/SSA/Projects/InstCombine/tests/logs/freeze.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/fsh.txt b/SSA/Projects/InstCombine/tests/logs/fsh.txt new file mode 100644 index 000000000..f21743cec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fsh.txt @@ -0,0 +1,386 @@ +1: "use_v2" +5: "use_v2" is empty + +1: "use_v3" +5: "use_v3" is empty + +1: "fshl_mask_simplify1" +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 + +1: "fshl_mask_simplify3" +4: "fshl_mask_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_mask_simplify1" +4: "fshr_mask_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshl_mask_simplify2" +4: "fshl_mask_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_mask_simplify3" +4: "fshr_mask_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshl_mask_not_required" +4: "fshl_mask_not_required" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_mask_reduce_constant" +4: "fshl_mask_reduce_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_mask_negative" +4: "fshl_mask_negative" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_set_but_not_demanded_vec" +4: "fshr_set_but_not_demanded_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshl_set_but_not_demanded_vec" +4: "fshl_set_but_not_demanded_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_op0_undef" +4: "fshl_op0_undef" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshl_op0_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshl_op0_zero" +4: "fshl_op0_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshr_op0_undef" +4: "fshr_op0_undef" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshr_op0_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshr_op0_zero" +4: "fshr_op0_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshl_op1_undef" +4: "fshl_op1_undef" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshl_op1_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshl_op1_zero" +4: "fshl_op1_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshr_op1_undef" +4: "fshr_op1_undef" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshr_op1_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshr_op1_zero" +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 + +1: "fshl_op1_undef_splat_vec" +"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 + +1: "fshr_op1_zero_splat_vec" +"fshr_op1_zero_splat_vec" contains vectors which are unsupported + +1: "fshl_op0_zero_vec" +"fshl_op0_zero_vec" contains vectors which are unsupported + +1: "fshl_op1_undef_vec" +"fshl_op1_undef_vec" contains vectors which are unsupported + +1: "fshr_op0_undef_vec" +"fshr_op0_undef_vec" contains vectors which are unsupported + +1: "fshr_op1_zero_vec" +"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 + +1: "fshl_only_op1_demanded" +4: "fshl_only_op1_demanded" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshr_only_op1_demanded" +4: "fshr_only_op1_demanded" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshr_only_op0_demanded" +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 + +1: "fshl_constant_shift_amount_modulo_bitwidth" +4: "fshl_constant_shift_amount_modulo_bitwidth" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_constant_shift_amount_modulo_bitwidth" +4: "fshr_constant_shift_amount_modulo_bitwidth" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_undef_shift_amount" +4: "fshl_undef_shift_amount" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshl_undef_shift_amount" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshr_undef_shift_amount" +4: "fshr_undef_shift_amount" has unsupported operation after optimization: llvm.mlir.undef + +4: "fshr_undef_shift_amount" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshr_constant_shift_amount_modulo_bitwidth_constexpr" +4: "fshr_constant_shift_amount_modulo_bitwidth_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "fshr_constant_shift_amount_modulo_bitwidth_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fshr_constant_shift_amount_modulo_bitwidth_constexpr" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_constant_shift_amount_modulo_bitwidth_vec" +4: "fshr_constant_shift_amount_modulo_bitwidth_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_constant_shift_amount_modulo_bitwidth_vec" +4: "fshl_constant_shift_amount_modulo_bitwidth_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" +4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: llvm.mlir.addressof + +4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: llvm.mlir.undef + +4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshl_constant_shift_amount_modulo_bitwidth_vec_const_expr" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "fshr_undef_shift_amount_vec" +"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 + +1: "rotr_common_demanded" +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 + +1: "rotl_constant_shift_amount" +4: "rotl_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_constant_shift_amount_vec" +4: "rotl_constant_shift_amount_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_constant_shift_amount" +4: "rotr_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_constant_shift_amount_vec" +4: "rotr_constant_shift_amount_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_both_ops_demanded" +4: "fshl_both_ops_demanded" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_both_ops_demanded" +4: "fshr_both_ops_demanded" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_known_bits" +4: "fshl_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshr_known_bits" +4: "fshr_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshr + +1: "fshr_multi_use" +4: "fshr_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "expanded_fshr_multi_use" +4: "expanded_fshr_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_bswap" +4: "fshl_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "fshr_bswap" +4: "fshr_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "fshl_bswap_vector" +4: "fshl_bswap_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "fshl_bswap_wrong_op" +4: "fshl_bswap_wrong_op" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_bswap_wrong_amount" +4: "fshr_bswap_wrong_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_bswap_wrong_width" +4: "fshl_bswap_wrong_width" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_mask_args_same1" +4: "fshl_mask_args_same1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshl_mask_args_same2" +4: "fshl_mask_args_same2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshl_mask_args_same2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fshl_mask_args_same3" +4: "fshl_mask_args_same3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fshl_mask_args_different" +4: "fshl_mask_args_different" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fsh_andconst_rotate" +4: "fsh_andconst_rotate" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fshl + +1: "fsh_orconst_rotate" +4: "fsh_orconst_rotate" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fsh_rotate_5" +4: "fsh_rotate_5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_rotate_5" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fsh_rotate_18" +4: "fsh_rotate_18" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_rotate_18" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fsh_load_rotate_12" +4: "fsh_load_rotate_12" has unsupported operation: llvm.load + +4: "fsh_load_rotate_12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_12" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_12" has unsupported operation: llvm.load + +4: "fsh_load_rotate_12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_12" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_12" has unsupported operation: llvm.load + +4: "fsh_load_rotate_12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_12" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_12" has unsupported operation: llvm.load + +4: "fsh_load_rotate_12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_12" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fsh_load_rotate_25" +4: "fsh_load_rotate_25" has unsupported operation: llvm.load + +4: "fsh_load_rotate_25" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_25" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_25" has unsupported operation: llvm.load + +4: "fsh_load_rotate_25" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_25" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_25" has unsupported operation: llvm.load + +4: "fsh_load_rotate_25" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fsh_load_rotate_25" has unsupported operation: llvm.getelementptr + +4: "fsh_load_rotate_25" has unsupported operation: llvm.load + +4: "fsh_load_rotate_25" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "fshr_mask_args_same_vector2" +"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 + +1: "fsh_unary_shuffle_ops" +4: "fsh_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "fsh_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fsh_unary_shuffle_ops_widening" +4: "fsh_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_widening" has unsupported operation: llvm.call + +4: "fsh_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "fsh_unary_shuffle_ops_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fsh_unary_shuffle_ops_narrowing" +4: "fsh_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_narrowing" has unsupported operation: llvm.call + +4: "fsh_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "fsh_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fsh_unary_shuffle_ops_unshuffled" +4: "fsh_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_unshuffled" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fsh_unary_shuffle_ops_wrong_mask" +4: "fsh_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fsh_unary_shuffle_ops_uses" +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "fsh_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fsh_unary_shuffle_ops_partial_widening" +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsh_unary_shuffle_ops_partial_widening" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_vec_zero_elem" +4: "fshr_vec_zero_elem" has unsupported operation: builtin.unregistered: llvm.intr.fshr + diff --git a/SSA/Projects/InstCombine/tests/logs/fsub.txt b/SSA/Projects/InstCombine/tests/logs/fsub.txt new file mode 100644 index 000000000..7c639c803 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fsub.txt @@ -0,0 +1,474 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test1_unary" +4: "test1_unary" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "test1_unary" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "neg_sub_nsz" +4: "neg_sub_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "unary_neg_sub_nsz" +4: "unary_neg_sub_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "use" +5: "use" is empty + +1: "use2" +5: "use2" is empty + +1: "neg_sub_nsz_extra_use" +4: "neg_sub_nsz_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "neg_sub_nsz_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_sub_nsz_extra_use" has unsupported operation: llvm.call + +1: "unary_neg_sub_nsz_extra_use" +4: "unary_neg_sub_nsz_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "unary_neg_sub_nsz_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_sub_nsz_extra_use" has unsupported operation: llvm.call + +1: "sub_sub_nsz" +4: "sub_sub_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "sub_sub_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "sub_add_neg_x" +4: "sub_add_neg_x" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sub_sub_known_not_negzero" +4: "sub_sub_known_not_negzero" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "sub_sub_known_not_negzero" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "constant_op1" +4: "constant_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "constant_op1_vec" +4: "constant_op1_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "constant_op1_vec_poison" +4: "constant_op1_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "constant_op1_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "constant_op1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "constant_op1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "constant_op1_vec_poison" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_op1" +4: "neg_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "unary_neg_op1" +4: "unary_neg_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_op1_vec" +4: "neg_op1_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "unary_neg_op1_vec" +4: "unary_neg_op1_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_op1_vec_poison" +4: "neg_op1_vec_poison" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_ext_op1" +4: "neg_ext_op1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "neg_ext_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "unary_neg_ext_op1" +4: "unary_neg_ext_op1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "unary_neg_ext_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_trunc_op1" +4: "neg_trunc_op1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "neg_trunc_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "unary_neg_trunc_op1" +4: "unary_neg_trunc_op1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "unary_neg_trunc_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_ext_op1_fast" +4: "neg_ext_op1_fast" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "neg_ext_op1_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "unary_neg_ext_op1_fast" +4: "unary_neg_ext_op1_fast" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "unary_neg_ext_op1_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "neg_ext_op1_extra_use" +4: "neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "neg_ext_op1_extra_use" has unsupported operation: llvm.call + +1: "unary_neg_ext_op1_extra_use" +4: "unary_neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "unary_neg_ext_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "unary_neg_ext_op1_extra_use" has unsupported operation: llvm.call + +1: "neg_trunc_op1_extra_use" +4: "neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "neg_trunc_op1_extra_use" has unsupported operation: llvm.call + +1: "unary_neg_trunc_op1_extra_use" +4: "unary_neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "unary_neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_trunc_op1_extra_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "unary_neg_trunc_op1_extra_use" has unsupported operation: llvm.call + +1: "neg_trunc_op1_extra_uses" +4: "neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "neg_trunc_op1_extra_uses" has unsupported operation: llvm.call + +1: "unary_neg_trunc_op1_extra_uses" +4: "unary_neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "unary_neg_trunc_op1_extra_uses" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "unary_neg_trunc_op1_extra_uses" has unsupported operation: llvm.call + +1: "PR37605" +4: "PR37605" has unsupported operation: llvm.mlir.addressof + +4: "PR37605" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "PR37605" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "PR37605" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fdiv_fneg1" +4: "fsub_fdiv_fneg1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fdiv_fneg2" +4: "fsub_fdiv_fneg2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fmul_fneg1" +4: "fsub_fmul_fneg1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fmul_fneg2" +4: "fsub_fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fdiv_fneg1_extra_use" +4: "fsub_fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg1_extra_use" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fdiv_fneg2_extra_use" +4: "fsub_fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg2_extra_use" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "use_vec" +5: "use_vec" is empty + +1: "fsub_fmul_fneg1_extra_use" +4: "fsub_fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg1_extra_use" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg1_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fmul_fneg2_extra_use" +4: "fsub_fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg2_extra_use" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg2_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fdiv_fneg1_extra_use2" +4: "fsub_fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg1_extra_use2" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fdiv_fneg2_extra_use2" +4: "fsub_fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg2_extra_use2" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fmul_fneg1_extra_use2" +4: "fsub_fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg1_extra_use2" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg1_extra_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fmul_fneg2_extra_use2" +4: "fsub_fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg2_extra_use2" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg2_extra_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fdiv_fneg1_extra_use3" +4: "fsub_fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fdiv_fneg2_extra_use3" +4: "fsub_fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fdiv_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fdiv_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fdiv_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fmul_fneg1_extra_use3" +4: "fsub_fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg1_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg1_extra_use3" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fmul_fneg2_extra_use3" +4: "fsub_fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fsub_fmul_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fsub_fmul_fneg2_extra_use3" has unsupported operation: llvm.call + +4: "fsub_fmul_fneg2_extra_use3" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub" +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub_nsz" +4: "fsub_fsub_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fsub_nsz" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub_reassoc" +4: "fsub_fsub_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fsub_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub_nsz_reassoc" +4: "fsub_fsub_nsz_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fsub_nsz_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub_fast_vec" +4: "fsub_fsub_fast_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fsub_fast_vec" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fsub_nsz_reassoc_extra_use" +4: "fsub_fsub_nsz_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fsub_nsz_reassoc_extra_use" has unsupported operation: llvm.call + +4: "fsub_fsub_nsz_reassoc_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fneg_fsub" +4: "fneg_fsub" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fneg_fsub_nsz" +4: "fneg_fsub_nsz" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fneg_fsub_nsz" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fake_fneg_fsub_fast" +4: "fake_fneg_fsub_fast" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fake_fneg_fsub_fast" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fake_fneg_fsub_fast_extra_use" +4: "fake_fneg_fsub_fast_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fake_fneg_fsub_fast_extra_use" has unsupported operation: llvm.call + +4: "fake_fneg_fsub_fast_extra_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fake_fneg_fsub_vec" +4: "fake_fneg_fsub_vec" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fake_fneg_fsub_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "fneg_fsub_constant" +4: "fneg_fsub_constant" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_reassoc" +4: "fsub_fadd_fsub_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_reassoc_commute" +4: "fsub_fadd_fsub_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fsub_fadd_fsub_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_commute" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_reassoc_twice" +4: "fsub_fadd_fsub_reassoc_twice" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_twice" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_twice" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_twice" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_not_reassoc" +4: "fsub_fadd_fsub_not_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fadd_fsub_not_reassoc" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_not_reassoc" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_reassoc_use1" +4: "fsub_fadd_fsub_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fadd_fsub_reassoc_use1" has unsupported operation: llvm.call + +4: "fsub_fadd_fsub_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_use1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_fadd_fsub_reassoc_use2" +4: "fsub_fadd_fsub_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub_fadd_fsub_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fsub_fadd_fsub_reassoc_use2" has unsupported operation: llvm.call + +4: "fsub_fadd_fsub_reassoc_use2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_c1" +4: "fmul_c1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_c1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_c1_fmf" +4: "fmul_c1_fmf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_c1_fmf" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_c1_use" +4: "fmul_c1_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fmul_c1_use" has unsupported operation: llvm.call + +4: "fmul_c1_use" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_c0" +4: "fdiv_c0" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_c0" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_c0_fmf" +4: "fdiv_c0_fmf" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_c0_fmf" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_c1" +4: "fdiv_c1" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_c1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_c1_fmf" +4: "fdiv_c1_fmf" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_c1_fmf" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fdiv_c1_use" +4: "fdiv_c1_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_c1_use" has unsupported operation: llvm.call + +4: "fdiv_c1_use" has unsupported operation: builtin.unregistered: llvm.fsub + diff --git a/SSA/Projects/InstCombine/tests/logs/funnel.txt b/SSA/Projects/InstCombine/tests/logs/funnel.txt new file mode 100644 index 000000000..fcee655e7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/funnel.txt @@ -0,0 +1,195 @@ +1: "fshl_i32_constant" +4: "fshl_i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_i42_constant" +4: "fshr_i42_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_v2i16_constant_splat" +4: "fshl_v2i16_constant_splat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_v2i16_constant_splat_poison0" +4: "fshl_v2i16_constant_splat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_v2i16_constant_splat_poison1" +4: "fshl_v2i16_constant_splat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i17_constant_splat" +4: "fshr_v2i17_constant_splat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i17_constant_splat_poison0" +4: "fshr_v2i17_constant_splat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i17_constant_splat_poison1" +4: "fshr_v2i17_constant_splat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i32_constant_nonsplat" +4: "fshr_v2i32_constant_nonsplat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i32_constant_nonsplat_poison0" +4: "fshr_v2i32_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_v2i32_constant_nonsplat_poison1" +4: "fshr_v2i32_constant_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fshr_v2i32_constant_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "fshr_v2i32_constant_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshr_v2i32_constant_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshr_v2i32_constant_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_v2i36_constant_nonsplat" +4: "fshl_v2i36_constant_nonsplat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_v3i36_constant_nonsplat_poison0" +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fshl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_sub_mask" +4: "fshl_sub_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_sub_mask" +4: "fshr_sub_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_sub_mask_vector" +4: "fshr_sub_mask_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshl_16bit" +4: "fshl_16bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshl_16bit" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_commute_16bit_vec" +4: "fshl_commute_16bit_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshl_commute_16bit_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshr_8bit" +4: "fshr_8bit" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshr_8bit" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_commute_8bit" +4: "fshr_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_commute_8bit_unmasked_shl" +4: "fshr_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fshr_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshr_select" +4: "fshr_select" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "fshr_select" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "fshl_select" +4: "fshl_select" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "fshl_select" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_select_vector" +4: "fshl_select_vector" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "fshl_select_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_concat_i8_i24" +4: "fshl_concat_i8_i24" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i24" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i24" has unsupported operation: llvm.store + +4: "fshl_concat_i8_i24" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_concat_i8_i8" +4: "fshl_concat_i8_i8" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8" has unsupported operation: llvm.store + +4: "fshl_concat_i8_i8" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "fshl_concat_i8_i8_overlap" +4: "fshl_concat_i8_i8_overlap" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_overlap" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_overlap" has unsupported operation: llvm.store + +1: "fshl_concat_i8_i8_drop" +4: "fshl_concat_i8_i8_drop" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_drop" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_drop" has unsupported operation: llvm.store + +1: "fshl_concat_i8_i8_different_slot" +4: "fshl_concat_i8_i8_different_slot" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_different_slot" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_i8_i8_different_slot" has unsupported operation: llvm.store + +1: "fshl_concat_unknown_source" +4: "fshl_concat_unknown_source" has unsupported operation: llvm.store + +1: "fshl_concat_vector" +4: "fshl_concat_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fshl_concat_vector" has unsupported operation: llvm.store + +4: "fshl_concat_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "unmasked_shlop_unmasked_shift_amount" +4: "unmasked_shlop_unmasked_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "unmasked_shlop_insufficient_mask_shift_amount" +4: "unmasked_shlop_insufficient_mask_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "unmasked_shlop_masked_shift_amount" +4: "unmasked_shlop_masked_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "unmasked_shlop_masked_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "unmasked_shlop_masked_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "unmasked_shlop_masked_shift_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "test_rotl_and_neg" +4: "test_rotl_and_neg" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_rotl_and_neg_commuted" +4: "test_rotl_and_neg_commuted" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "test_rotr_and_neg" +4: "test_rotr_and_neg" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "test_fshl_and_neg" +7: "test_fshl_and_neg" is unchanged by InstCombine + +1: "test_rotl_and_neg_wrong_mask" +7: "test_rotl_and_neg_wrong_mask" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/fwrite-1.txt b/SSA/Projects/InstCombine/tests/logs/fwrite-1.txt new file mode 100644 index 000000000..58ba629aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/fwrite-1.txt @@ -0,0 +1,29 @@ +1: "fwrite" +5: "fwrite" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.call + +4: "test_no_simplify2" has unsupported operation: llvm.return + +1: "fputc" +5: "fputc" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt b/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt new file mode 100644 index 000000000..6c7804c07 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt @@ -0,0 +1,36 @@ +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/gand.txt b/SSA/Projects/InstCombine/tests/logs/gand.txt new file mode 100644 index 000000000..0a0456b8c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gand.txt @@ -0,0 +1,131 @@ +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/gandhxorhor.txt b/SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt new file mode 100644 index 000000000..c3b910ba7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt @@ -0,0 +1,596 @@ +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/gapinthadd.txt b/SSA/Projects/InstCombine/tests/logs/gapinthadd.txt new file mode 100644 index 000000000..0a64737ce --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gapinthadd.txt @@ -0,0 +1,33 @@ +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/gc.relocate-verify.txt b/SSA/Projects/InstCombine/tests/logs/gc.relocate-verify.txt new file mode 100644 index 000000000..4f9d844c1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gc.relocate-verify.txt @@ -0,0 +1,2 @@ +3: gc.relocate-verify.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gc.relocate.txt b/SSA/Projects/InstCombine/tests/logs/gc.relocate.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt b/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt new file mode 100644 index 000000000..00cdc61e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt @@ -0,0 +1,36 @@ +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/gdemorgan.txt b/SSA/Projects/InstCombine/tests/logs/gdemorgan.txt new file mode 100644 index 000000000..0f34975a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdemorgan.txt @@ -0,0 +1,123 @@ +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/gdivhi1.txt b/SSA/Projects/InstCombine/tests/logs/gdivhi1.txt new file mode 100644 index 000000000..b31939be4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gdivhi1.txt @@ -0,0 +1,61 @@ +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/gep-addrspace.txt b/SSA/Projects/InstCombine/tests/logs/gep-addrspace.txt new file mode 100644 index 000000000..b7e78920d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-addrspace.txt @@ -0,0 +1,2 @@ +3: gep-addrspace.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-alias.txt b/SSA/Projects/InstCombine/tests/logs/gep-alias.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/gep-can-replace-gep-idx-with-zero-typesize.txt b/SSA/Projects/InstCombine/tests/logs/gep-can-replace-gep-idx-with-zero-typesize.txt new file mode 100644 index 000000000..8f1633958 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-can-replace-gep-idx-with-zero-typesize.txt @@ -0,0 +1,2 @@ +3: gep-can-replace-gep-idx-with-zero-typesize.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-canonicalize-constant-indices.txt b/SSA/Projects/InstCombine/tests/logs/gep-canonicalize-constant-indices.txt new file mode 100644 index 000000000..9e447f8d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-canonicalize-constant-indices.txt @@ -0,0 +1,57 @@ +1: "use" +5: "use" is empty + +1: "basic" +4: "basic" has unsupported operation: llvm.getelementptr + +4: "basic" has unsupported operation: llvm.getelementptr + +4: "basic" has unsupported operation: llvm.getelementptr + +1: "partialConstant1" +4: "partialConstant1" has unsupported operation: llvm.getelementptr + +1: "partialConstant2" +4: "partialConstant2" has unsupported operation: llvm.getelementptr + +1: "merge" +4: "merge" has unsupported operation: llvm.getelementptr + +4: "merge" has unsupported operation: llvm.getelementptr + +4: "merge" has unsupported operation: llvm.getelementptr + +1: "nested" +4: "nested" has unsupported operation: llvm.getelementptr + +4: "nested" has unsupported operation: llvm.getelementptr + +4: "nested" has unsupported operation: llvm.getelementptr + +4: "nested" has unsupported operation: llvm.getelementptr + +4: "nested" has unsupported operation: llvm.getelementptr + +1: "multipleUses1" +4: "multipleUses1" has unsupported operation: llvm.getelementptr + +4: "multipleUses1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "multipleUses1" has unsupported operation: llvm.getelementptr + +1: "multipleUses2" +4: "multipleUses2" has unsupported operation: llvm.mlir.addressof + +4: "multipleUses2" has unsupported operation: llvm.getelementptr + +4: "multipleUses2" has unsupported operation: llvm.getelementptr + +4: "multipleUses2" has unsupported operation: llvm.call + +1: "multipleUses3" +4: "multipleUses3" has unsupported operation: llvm.getelementptr + +4: "multipleUses3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "multipleUses3" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-combine-loop-invariant.txt b/SSA/Projects/InstCombine/tests/logs/gep-combine-loop-invariant.txt new file mode 100644 index 000000000..ee7930a4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-combine-loop-invariant.txt @@ -0,0 +1,2 @@ +3: gep-combine-loop-invariant.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-custom-dl.txt b/SSA/Projects/InstCombine/tests/logs/gep-custom-dl.txt new file mode 100644 index 000000000..630a40a76 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-custom-dl.txt @@ -0,0 +1,2 @@ +3: gep-custom-dl.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-inbounds-null.txt b/SSA/Projects/InstCombine/tests/logs/gep-inbounds-null.txt new file mode 100644 index 000000000..c55538f94 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-inbounds-null.txt @@ -0,0 +1,2 @@ +3: gep-inbounds-null.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-merge-constant-indices.txt b/SSA/Projects/InstCombine/tests/logs/gep-merge-constant-indices.txt new file mode 100644 index 000000000..8dbec4593 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-merge-constant-indices.txt @@ -0,0 +1,2 @@ +3: gep-merge-constant-indices.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-object-size-less-than-or-equal-typesize.txt b/SSA/Projects/InstCombine/tests/logs/gep-object-size-less-than-or-equal-typesize.txt new file mode 100644 index 000000000..d7bbffa4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-object-size-less-than-or-equal-typesize.txt @@ -0,0 +1,2 @@ +3: gep-object-size-less-than-or-equal-typesize.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-sext.txt b/SSA/Projects/InstCombine/tests/logs/gep-sext.txt new file mode 100644 index 000000000..f3ee43000 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-sext.txt @@ -0,0 +1,59 @@ +1: "use" +5: "use" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation: llvm.getelementptr + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: llvm.getelementptr + +4: "test4" has unsupported operation: llvm.getelementptr + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test4" has unsupported operation: llvm.getelementptr + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-vector-indices.txt b/SSA/Projects/InstCombine/tests/logs/gep-vector-indices.txt new file mode 100644 index 000000000..25cfe1953 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-vector-indices.txt @@ -0,0 +1,2 @@ +3: gep-vector-indices.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gep-vector.txt b/SSA/Projects/InstCombine/tests/logs/gep-vector.txt new file mode 100644 index 000000000..09ca65140 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gep-vector.txt @@ -0,0 +1,2 @@ +3: gep-vector.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/gepgep.txt b/SSA/Projects/InstCombine/tests/logs/gepgep.txt new file mode 100644 index 000000000..a80194491 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gepgep.txt @@ -0,0 +1,16 @@ +1: "use" +5: "use" is empty + +1: "f" +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "f" has unsupported operation: llvm.getelementptr + +4: "f" has unsupported operation: llvm.getelementptr + +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/gepofconstgepi8.txt b/SSA/Projects/InstCombine/tests/logs/gepofconstgepi8.txt new file mode 100644 index 000000000..c10ed21cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gepofconstgepi8.txt @@ -0,0 +1,110 @@ +1: "use64" +5: "use64" is empty + +1: "useptr" +5: "useptr" is empty + +1: "test_zero" +4: "test_zero" has unsupported operation: llvm.getelementptr + +1: "test_nonzero" +4: "test_nonzero" has unsupported operation: llvm.getelementptr + +4: "test_nonzero" has unsupported operation: llvm.getelementptr + +1: "test_or_disjoint" +4: "test_or_disjoint" has unsupported operation: llvm.getelementptr + +1: "test_zero_multiuse_index" +4: "test_zero_multiuse_index" has unsupported operation: llvm.call + +4: "test_zero_multiuse_index" has unsupported operation: llvm.getelementptr + +1: "test_zero_multiuse_ptr" +4: "test_zero_multiuse_ptr" has unsupported operation: llvm.getelementptr + +4: "test_zero_multiuse_ptr" has unsupported operation: llvm.call + +4: "test_zero_multiuse_ptr" has unsupported operation: llvm.getelementptr + +1: "test_zero_sext_add_nsw" +4: "test_zero_sext_add_nsw" has unsupported operation: llvm.getelementptr + +4: "test_zero_sext_add_nsw" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_zero_sext_add_nsw" has unsupported operation: llvm.getelementptr + +4: "test_zero_sext_add_nsw" has unsupported operation: llvm.getelementptr + +1: "test_zero_trunc_add" +4: "test_zero_trunc_add" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_zero_trunc_add" has unsupported operation: llvm.getelementptr + +1: "test_non_i8" +4: "test_non_i8" has unsupported operation: llvm.getelementptr + +4: "test_non_i8" has unsupported operation: llvm.getelementptr + +1: "test_non_const" +4: "test_non_const" has unsupported operation: llvm.getelementptr + +4: "test_non_const" has unsupported operation: llvm.getelementptr + +4: "test_non_const" has unsupported operation: llvm.getelementptr + +1: "test_too_many_indices" +4: "test_too_many_indices" has unsupported operation: llvm.getelementptr + +4: "test_too_many_indices" has unsupported operation: llvm.getelementptr + +1: "test_wrong_op" +4: "test_wrong_op" has unsupported operation: llvm.getelementptr + +4: "test_wrong_op" has unsupported operation: llvm.getelementptr + +1: "test_sext_add_without_nsw" +4: "test_sext_add_without_nsw" has unsupported operation: llvm.getelementptr + +4: "test_sext_add_without_nsw" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_sext_add_without_nsw" has unsupported operation: llvm.getelementptr + +1: "test_or_without_disjoint" +4: "test_or_without_disjoint" has unsupported operation: llvm.getelementptr + +4: "test_or_without_disjoint" has unsupported operation: llvm.getelementptr + +1: "test_smul_overflow" +4: "test_smul_overflow" has unsupported operation: llvm.getelementptr + +4: "test_smul_overflow" has unsupported operation: llvm.getelementptr + +1: "test_sadd_overflow" +4: "test_sadd_overflow" has unsupported operation: llvm.getelementptr + +4: "test_sadd_overflow" has unsupported operation: llvm.getelementptr + +1: "test_nonzero_multiuse_index" +4: "test_nonzero_multiuse_index" has unsupported operation: llvm.getelementptr + +4: "test_nonzero_multiuse_index" has unsupported operation: llvm.call + +4: "test_nonzero_multiuse_index" has unsupported operation: llvm.getelementptr + +1: "test_nonzero_multiuse_ptr" +4: "test_nonzero_multiuse_ptr" has unsupported operation: llvm.getelementptr + +4: "test_nonzero_multiuse_ptr" has unsupported operation: llvm.call + +4: "test_nonzero_multiuse_ptr" has unsupported operation: llvm.getelementptr + +4: "test_nonzero_multiuse_ptr" has unsupported operation: llvm.getelementptr + +1: "test_scalable" +4: "test_scalable" has unsupported operation: llvm.getelementptr + +4: "test_scalable" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/gepphigep.txt b/SSA/Projects/InstCombine/tests/logs/gepphigep.txt new file mode 100644 index 000000000..5525e2a0d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gepphigep.txt @@ -0,0 +1,2 @@ +3: gepphigep.ll: parsing has 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 new file mode 100644 index 000000000..591484a6d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/get-lowbitmask-upto-and-including-bit.txt @@ -0,0 +1,95 @@ +1: "use8" +5: "use8" is empty + +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.or +2: llvm.return + +1: "t1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.or +2: llvm.return + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_poison0" +"t3_vec_poison0" contains vectors which are unsupported + +1: "t4_vec_poison1" +"t4_vec_poison1" contains vectors which are unsupported + +1: "t5_vec_poison2" +"t5_vec_poison2" contains vectors which are unsupported + +1: "t6_extrause0" +4: "t6_extrause0" has unsupported operation: llvm.call + +1: "t7_extrause1" +4: "t7_extrause1" has unsupported operation: llvm.call + +1: "t8_extrause2" +4: "t8_extrause2" has unsupported operation: llvm.call + +4: "t8_extrause2" has unsupported operation: llvm.call + +1: "t9_nocse" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.or +2: llvm.return + +1: "t10_nocse_extrause0" +4: "t10_nocse_extrause0" has unsupported operation: llvm.call + +1: "t11_nocse_extrause1" +4: "t11_nocse_extrause1" has unsupported operation: llvm.call + +1: "t12_nocse_extrause2" +4: "t12_nocse_extrause2" has unsupported operation: llvm.call + +1: "t13_nocse_extrause3" +4: "t13_nocse_extrause3" has unsupported operation: llvm.call + +4: "t13_nocse_extrause3" has unsupported operation: llvm.call + +1: "t14_nocse_extrause4" +4: "t14_nocse_extrause4" has unsupported operation: llvm.call + +4: "t14_nocse_extrause4" has unsupported operation: llvm.call + +1: "t15_nocse_extrause5" +4: "t15_nocse_extrause5" has unsupported operation: llvm.call + +4: "t15_nocse_extrause5" has unsupported operation: llvm.call + +1: "t16_nocse_extrause6" +4: "t16_nocse_extrause6" has unsupported operation: llvm.call + +4: "t16_nocse_extrause6" has unsupported operation: llvm.call + +4: "t16_nocse_extrause6" has unsupported operation: llvm.call + +1: "t17_nocse_mismatching_x" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/getelementptr-folding.txt b/SSA/Projects/InstCombine/tests/logs/getelementptr-folding.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/getelementptr.txt b/SSA/Projects/InstCombine/tests/logs/getelementptr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt b/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt new file mode 100644 index 000000000..2e24b4bf5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gmul_fold.txt @@ -0,0 +1,73 @@ +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/gorhshiftedhmasks.txt b/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt new file mode 100644 index 000000000..4ef49c587 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt @@ -0,0 +1,103 @@ +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/gorhxorhxor.txt b/SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt new file mode 100644 index 000000000..3745d2c35 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt @@ -0,0 +1,44 @@ +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/gshifthadd.txt b/SSA/Projects/InstCombine/tests/logs/gshifthadd.txt new file mode 100644 index 000000000..37c76dd75 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshifthadd.txt @@ -0,0 +1,61 @@ +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/gshifthamounthreassociation.txt b/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt new file mode 100644 index 000000000..91e6c8c73 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt @@ -0,0 +1,33 @@ +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/gshlhsub.txt b/SSA/Projects/InstCombine/tests/logs/gshlhsub.txt new file mode 100644 index 000000000..6f3b33453 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gshlhsub.txt @@ -0,0 +1,33 @@ +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/gxor.txt b/SSA/Projects/InstCombine/tests/logs/gxor.txt new file mode 100644 index 000000000..64b9f780b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/gxor.txt @@ -0,0 +1,114 @@ +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/high-bit-signmask-with-trunc.txt b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask-with-trunc.txt new file mode 100644 index 000000000..17f908f82 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask-with-trunc.txt @@ -0,0 +1,63 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t1_exact" +4: "t1_exact" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_exact" +4: "t3_exact" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5" +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use64" +5: "use64" is empty + +1: "use32" +5: "use32" is empty + +1: "t6" +4: "t6" has unsupported operation: llvm.call + +4: "t6" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n7" +4: "n7" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n7" has unsupported operation: llvm.call + +1: "n8" +4: "n8" has unsupported operation: llvm.call + +4: "n8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n8" has unsupported operation: llvm.call + +1: "n9" +4: "n9" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n10" +4: "n10" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt new file mode 100644 index 000000000..f5a03a85d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/high-bit-signmask.txt @@ -0,0 +1,80 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "t0_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "t2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.sub +2: llvm.return + +1: "t3_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.sub +2: llvm.return + +1: "t4" +"t4" contains vectors which are unsupported + +1: "t5" +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "use64" +5: "use64" is empty + +1: "use32" +5: "use32" is empty + +1: "t6" +4: "t6" has unsupported operation: llvm.call + +1: "n7" +4: "n7" has unsupported operation: llvm.call + +1: "n8" +4: "n8" has unsupported operation: llvm.call + +4: "n8" has unsupported operation: llvm.call + +1: "n9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "n10" +4: "n10" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n10" has unsupported operation: builtin.unregistered: llvm.zext + 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 new file mode 100644 index 000000000..d9dc95087 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation-with-constant.txt @@ -0,0 +1,38 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "t1_vec" +"t1_vec" contains vectors which are unsupported + +1: "t2_vec_undef" +4: "t2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t3_vec_nonsplat" +"t3_vec_nonsplat" contains vectors which are unsupported + +1: "use8" +5: "use8" is empty + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: llvm.call + +1: "n5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "n6" +7: "n6" is unchanged by InstCombine + 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 new file mode 100644 index 000000000..561e28c27 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/hoist-negation-out-of-bias-calculation.txt @@ -0,0 +1,48 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "gen8" +5: "gen8" is empty + +1: "t1_commutative" +4: "t1_commutative" has unsupported operation: llvm.call + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_poison" +"t3_vec_poison" contains vectors which are unsupported + +1: "use8" +5: "use8" is empty + +1: "n4_extrause0" +4: "n4_extrause0" has unsupported operation: llvm.call + +1: "n5_extrause1" +4: "n5_extrause1" has unsupported operation: llvm.call + +1: "n6_extrause2" +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +1: "n7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "n8" +7: "n8" is unchanged by InstCombine + +1: "n9" +7: "n9" is unchanged by InstCombine + 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 new file mode 100644 index 000000000..1d37f0956 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/hoist-not-from-ashr-operand.txt @@ -0,0 +1,26 @@ +1: "use8" +5: "use8" is empty + +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "t1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_poison" +"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 new file mode 100644 index 000000000..d4a128274 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/hoist-xor-by-constant-from-xor-by-value.txt @@ -0,0 +1,60 @@ +1: "gen8" +5: "gen8" is empty + +1: "use8" +5: "use8" is empty + +1: "t0_scalar" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "t1_splatvec" +"t1_splatvec" contains vectors which are unsupported + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_undef" +4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t4_extrause" +4: "t4_extrause" has unsupported operation: llvm.call + +1: "t5_commutativity" +4: "t5_commutativity" has unsupported operation: llvm.call + +1: "constantexpr" +4: "constantexpr" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constantexpr" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "constantexpr2" +4: "constantexpr2" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr2" has unsupported operation: llvm.getelementptr + +4: "constantexpr2" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr2" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "constantexpr2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "constantexpr2" has unsupported operation: llvm.load + +4: "constantexpr2" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/hoist_instr.txt b/SSA/Projects/InstCombine/tests/logs/hoist_instr.txt new file mode 100644 index 000000000..ebd97ac48 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/hoist_instr.txt @@ -0,0 +1,5 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-abs.txt b/SSA/Projects/InstCombine/tests/logs/icmp-abs.txt new file mode 100644 index 000000000..c1f246373 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-abs.txt @@ -0,0 +1,84 @@ +1: "icmp_sge_abs" +4: "icmp_sge_abs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_sge_abs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_sge_abs_false" +4: "icmp_sge_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_sge_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_eq_abs" +4: "icmp_eq_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_abs_false" +4: "icmp_eq_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_abs" +4: "icmp_ne_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_abs_false" +4: "icmp_ne_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_abs" +4: "icmp_sle_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_abs_false" +4: "icmp_sle_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_abs" +4: "icmp_slt_abs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_slt_abs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_slt_abs_false" +4: "icmp_slt_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_slt_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_abs" +4: "icmp_sgt_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_abs_false" +4: "icmp_sgt_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_abs" +4: "icmp_ugt_abs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_ugt_abs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_abs_false" +4: "icmp_ugt_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_ugt_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_uge_abs" +4: "icmp_uge_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_abs_false" +4: "icmp_uge_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_abs" +4: "icmp_ule_abs" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_ule_abs" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ule_abs_false" +4: "icmp_ule_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.intr.abs + +4: "icmp_ule_abs_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ult_abs" +4: "icmp_ult_abs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_abs_false" +4: "icmp_ult_abs_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_abs2" +4: "icmp_sge_abs2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_abs_mismatched_op" +4: "icmp_sge_abs_mismatched_op" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "icmp_sge_abs_mismatched_op" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-add.txt b/SSA/Projects/InstCombine/tests/logs/icmp-add.txt new file mode 100644 index 000000000..601e1e97e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-add.txt @@ -0,0 +1,2 @@ +3: icmp-add.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-and-add-sub-xor-p2.txt b/SSA/Projects/InstCombine/tests/logs/icmp-and-add-sub-xor-p2.txt new file mode 100644 index 000000000..69adb485f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-and-add-sub-xor-p2.txt @@ -0,0 +1,48 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "use.v2i8" +5: "use.v2i8" is empty + +1: "src_add_eq_p2" +4: "src_add_eq_p2" has unsupported operation: llvm.call + +4: "src_add_eq_p2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_add_eq_p2_fail_multiuse" +4: "src_add_eq_p2_fail_multiuse" has unsupported operation: llvm.call + +4: "src_add_eq_p2_fail_multiuse" has unsupported operation: llvm.call + +4: "src_add_eq_p2_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_xor_ne_zero" +4: "src_xor_ne_zero" has unsupported operation: llvm.call + +4: "src_xor_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_xor_ne_zero_fail_different_p2" +4: "src_xor_ne_zero_fail_different_p2" has unsupported operation: llvm.call + +4: "src_xor_ne_zero_fail_different_p2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_sub_ne_p2" +4: "src_sub_ne_p2" has unsupported operation: llvm.call + +4: "src_sub_ne_p2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_sub_eq_zero" +4: "src_sub_eq_zero" has unsupported operation: llvm.call + +4: "src_sub_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_sub_eq_zero_fail_commuted" +4: "src_sub_eq_zero_fail_commuted" has unsupported operation: llvm.call + +4: "src_sub_eq_zero_fail_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_sub_eq_zero_fail_non_p2" +4: "src_sub_eq_zero_fail_non_p2" has unsupported operation: llvm.call + +4: "src_sub_eq_zero_fail_non_p2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt b/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt new file mode 100644 index 000000000..91433bd9f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-and-lowbit-mask.txt @@ -0,0 +1,254 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "use.i16" +5: "use.i16" is empty + +1: "src_is_mask_zext" +4: "src_is_mask_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "src_is_mask_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_zext_fail_not_mask" +4: "src_is_mask_zext_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.zext + +4: "src_is_mask_zext_fail_not_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_sext" +4: "src_is_mask_sext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "src_is_mask_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_sext_fail_multiuse" +4: "src_is_mask_sext_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "src_is_mask_sext_fail_multiuse" has unsupported operation: llvm.call + +4: "src_is_mask_sext_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_and" +4: "src_is_mask_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_and_fail_mixed" +4: "src_is_mask_and_fail_mixed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_or" +4: "src_is_mask_or" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_xor" +4: "src_is_mask_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_xor_fail_notmask" +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" +4: "src_is_mask_shl_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_shl_lshr_fail_not_allones" +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" +4: "src_is_mask_p2_m1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_umax" +4: "src_is_mask_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "src_is_mask_umax" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_umin" +4: "src_is_mask_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "src_is_mask_umin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_umin_fail_mismatch" +4: "src_is_mask_umin_fail_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "src_is_mask_umin_fail_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_smax" +4: "src_is_mask_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "src_is_mask_smax" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_smin" +4: "src_is_mask_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "src_is_mask_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_bitreverse_not_mask" +4: "src_is_mask_bitreverse_not_mask" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "src_is_mask_bitreverse_not_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_sext" +4: "src_is_notmask_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "src_is_notmask_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "src_is_notmask_lshr_shl" +4: "src_is_notmask_lshr_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_lshr_shl_fail_mismatch_shifts" +4: "src_is_notmask_lshr_shl_fail_mismatch_shifts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_ashr" +4: "src_is_notmask_ashr" has unsupported operation: builtin.unregistered: llvm.sext + +4: "src_is_notmask_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_neg_p2" +4: "src_is_notmask_neg_p2" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "src_is_notmask_neg_p2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_neg_p2_fail_not_invertable" +4: "src_is_notmask_neg_p2_fail_not_invertable" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_notmask_xor_fail" +4: "src_is_notmask_xor_fail" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +4: "src_is_notmask_xor_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_const_slt" +4: "src_is_mask_const_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_const_sgt" +4: "src_is_mask_const_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_const_sle" +4: "src_is_mask_const_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_is_mask_const_sge" +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 + +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 + +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 + +1: "src_x_and_nmask_sge" +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-and-shift.txt b/SSA/Projects/InstCombine/tests/logs/icmp-and-shift.txt new file mode 100644 index 000000000..8143abd19 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-and-shift.txt @@ -0,0 +1,254 @@ +1: "use" +5: "use" is empty + +1: "icmp_eq_and_pow2_shl1" +4: "icmp_eq_and_pow2_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl1_vec" +4: "icmp_eq_and_pow2_shl1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_shl1" +4: "icmp_ne_and_pow2_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_shl1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_shl1_vec" +4: "icmp_ne_and_pow2_shl1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_shl1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl_pow2" +4: "icmp_eq_and_pow2_shl_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl_pow2_vec" +4: "icmp_eq_and_pow2_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_shl_pow2" +4: "icmp_ne_and_pow2_shl_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_shl_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_shl_pow2_vec" +4: "icmp_ne_and_pow2_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl_pow2_negative1" +4: "icmp_eq_and_pow2_shl_pow2_negative1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl_pow2_negative1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl_pow2_negative2" +4: "icmp_eq_and_pow2_shl_pow2_negative2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl_pow2_negative2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_shl_pow2_negative3" +4: "icmp_eq_and_pow2_shl_pow2_negative3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_shl_pow2_negative3" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl1" +4: "icmp_eq_and_pow2_minus1_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl1_vec" +4: "icmp_eq_and_pow2_minus1_shl1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_minus1_shl1" +4: "icmp_ne_and_pow2_minus1_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_minus1_shl1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_minus1_shl1_vec" +4: "icmp_ne_and_pow2_minus1_shl1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_minus1_shl1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl_pow2" +4: "icmp_eq_and_pow2_minus1_shl_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl_pow2_vec" +4: "icmp_eq_and_pow2_minus1_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_minus1_shl_pow2" +4: "icmp_ne_and_pow2_minus1_shl_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_minus1_shl_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_minus1_shl_pow2_vec" +4: "icmp_ne_and_pow2_minus1_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_minus1_shl_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl1_negative1" +4: "icmp_eq_and_pow2_minus1_shl1_negative1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl1_negative1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_minus1_shl1_negative2" +4: "icmp_eq_and_pow2_minus1_shl1_negative2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_minus1_shl1_negative2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_eq_and1_lshr_pow2" +4: "icmp_eq_and1_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and1_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and1_lshr_pow2_vec" +4: "icmp_eq_and1_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and1_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and1_lshr_pow2" +4: "icmp_ne_and1_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and1_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and1_lshr_pow2_vec" +4: "icmp_ne_and1_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and1_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_lshr_pow2" +4: "icmp_eq_and_pow2_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_lshr_pow2_case2" +4: "icmp_eq_and_pow2_lshr_pow2_case2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_lshr_pow2_case2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_eq_and_pow2_lshr_pow2_vec" +4: "icmp_eq_and_pow2_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and_pow2_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_lshr_pow2" +4: "icmp_ne_and_pow2_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_lshr_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_lshr_pow2_case2" +4: "icmp_ne_and_pow2_lshr_pow2_case2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_lshr_pow2_case2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "icmp_ne_and_pow2_lshr_pow2_vec" +4: "icmp_ne_and_pow2_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_and_pow2_lshr_pow2_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and1_lshr_pow2_minus_one" +4: "icmp_eq_and1_lshr_pow2_minus_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and1_lshr_pow2_minus_one" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_eq_and1_lshr_pow2_negative2" +4: "icmp_eq_and1_lshr_pow2_negative2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_and1_lshr_pow2_negative2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "eq_and_shl_one" +4: "eq_and_shl_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_and_shl_one_commute" +4: "ne_and_shl_one_commute" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ne_and_shl_one_commute" has unsupported operation: llvm.mlir.undef + +4: "ne_and_shl_one_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_and_shl_one_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_and_shl_one_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_and_lshr_minval" +4: "ne_and_lshr_minval" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_and_lshr_minval_commute" +4: "eq_and_lshr_minval_commute" has unsupported operation: llvm.call + +4: "eq_and_lshr_minval_commute" has unsupported operation: llvm.call + +4: "eq_and_lshr_minval_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_and_shl_two" +4: "eq_and_shl_two" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_and_shl_one" +4: "slt_and_shl_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_eq_lhs" +4: "fold_eq_lhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_eq_lhs_fail_eq_nonzero" +4: "fold_eq_lhs_fail_eq_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_eq_lhs_fail_multiuse_shl" +4: "fold_eq_lhs_fail_multiuse_shl" has unsupported operation: llvm.call + +4: "fold_eq_lhs_fail_multiuse_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_ne_rhs" +4: "fold_ne_rhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_ne_rhs_fail_multiuse_and" +4: "fold_ne_rhs_fail_multiuse_and" has unsupported operation: llvm.call + +4: "fold_ne_rhs_fail_multiuse_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_ne_rhs_fail_shift_not_1s" +4: "fold_ne_rhs_fail_shift_not_1s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shr_and_1_ne_0" +4: "test_shr_and_1_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_const_shr_and_1_ne_0" +4: "test_const_shr_and_1_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_not_const_shr_and_1_ne_0" +4: "test_not_const_shr_and_1_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_const_shr_exact_and_1_ne_0" +4: "test_const_shr_exact_and_1_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_const_shr_and_2_ne_0_negative" +4: "test_const_shr_and_2_ne_0_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_const_shr_and_1_ne_0_v8i8_splat_negative" +4: "test_const_shr_and_1_ne_0_v8i8_splat_negative" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test_const_shr_and_1_ne_0_v8i8_nonsplat_negative" +4: "test_const_shr_and_1_ne_0_v8i8_nonsplat_negative" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test_const_shr_and_1_ne_0_i1_negative" +4: "test_const_shr_and_1_ne_0_i1_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_const_shr_and_1_ne_0_multi_use_lshr_negative" +4: "test_const_shr_and_1_ne_0_multi_use_lshr_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_const_shr_and_1_ne_0_multi_use_lshr_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_const_shr_and_1_ne_0_multi_use_and_negative" +4: "test_const_shr_and_1_ne_0_multi_use_and_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_const_shr_and_1_ne_0_multi_use_and_negative" 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 new file mode 100644 index 000000000..bfdea9250 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec-inseltpoison.txt @@ -0,0 +1,43 @@ +1: "test_i1_0" +"test_i1_0" contains vectors which are unsupported + +1: "test_i1_0_2" +"test_i1_0_2" contains vectors which are unsupported + +1: "test_i1_m1" +"test_i1_m1" contains vectors which are unsupported + +1: "test_i8_pattern" +4: "test_i8_pattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_pattern_2" +4: "test_i8_pattern_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_pattern_3" +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_nopattern" +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_ult_pattern" +4: "test_i8_ult_pattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extending_shuffle_with_weird_types" +4: "extending_shuffle_with_weird_types" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extending_shuffle_with_weird_types" 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 new file mode 100644 index 000000000..bfdea9250 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bc-vec.txt @@ -0,0 +1,43 @@ +1: "test_i1_0" +"test_i1_0" contains vectors which are unsupported + +1: "test_i1_0_2" +"test_i1_0_2" contains vectors which are unsupported + +1: "test_i1_m1" +"test_i1_m1" contains vectors which are unsupported + +1: "test_i8_pattern" +4: "test_i8_pattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_pattern_2" +4: "test_i8_pattern_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_pattern_3" +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_i8_pattern_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_nopattern" +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test_i8_nopattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_i8_ult_pattern" +4: "test_i8_ult_pattern" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extending_shuffle_with_weird_types" +4: "extending_shuffle_with_weird_types" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extending_shuffle_with_weird_types" 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 new file mode 100644 index 000000000..a1f7ab784 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-binop.txt @@ -0,0 +1,102 @@ +1: "use64" +5: "use64" is empty + +1: "mul_unkV_oddC_eq" +4: "mul_unkV_oddC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_unkV_oddC_eq_nonzero" +4: "mul_unkV_oddC_eq_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_unkV_oddC_ne_vec" +4: "mul_unkV_oddC_ne_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_assumeoddV_asumeoddV_eq" +4: "mul_assumeoddV_asumeoddV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumeoddV_asumeoddV_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_assumeoddV_asumeoddV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumeoddV_asumeoddV_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "mul_unkV_oddC_sge" +4: "mul_unkV_oddC_sge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_reused_unkV_oddC_ne" +4: "mul_reused_unkV_oddC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_reused_unkV_oddC_ne" has unsupported operation: llvm.call + +1: "mul_assumeoddV_unkV_eq" +4: "mul_assumeoddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumeoddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_assumeoddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_reusedassumeoddV_unkV_ne" +4: "mul_reusedassumeoddV_unkV_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_reusedassumeoddV_unkV_ne" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_reusedassumeoddV_unkV_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_reusedassumeoddV_unkV_ne" has unsupported operation: llvm.call + +1: "mul_setoddV_unkV_ne" +4: "mul_setoddV_unkV_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_broddV_unkV_eq" +4: "mul_broddV_unkV_eq" has unsupported operation: llvm.mlir.addressof + +4: "mul_broddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_broddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "mul_broddV_unkV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_broddV_unkV_eq" has unsupported operation: llvm.call + +1: "mul_unkV_evenC_ne" +4: "mul_unkV_evenC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_assumenzV_asumenzV_eq" +4: "mul_assumenzV_asumenzV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumenzV_asumenzV_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_assumenzV_asumenzV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumenzV_asumenzV_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_assumenzV_asumenzV_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_assumenzV_unkV_nsw_ne" +4: "mul_assumenzV_unkV_nsw_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_assumenzV_unkV_nsw_ne" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_assumenzV_unkV_nsw_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_selectnzV_unkV_nsw_ne" +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.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 + +1: "mul_setnzV_unkV_nuw_eq" +4: "mul_setnzV_unkV_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_brnzV_unkV_nuw_eq" +4: "mul_brnzV_unkV_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_brnzV_unkV_nuw_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "mul_brnzV_unkV_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_brnzV_unkV_nuw_eq" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt b/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt new file mode 100644 index 000000000..70ccf403d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-bitcast-glob.txt @@ -0,0 +1,27 @@ +1: "f32" +5: "f32" is empty + +1: "f64" +5: "f64" is empty + +1: "icmp_func" +4: "icmp_func" has unsupported operation after optimization: llvm.mlir.addressof + +4: "icmp_func" has unsupported operation after optimization: llvm.mlir.addressof + +4: "icmp_func" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_fptr" +4: "icmp_fptr" has unsupported operation: llvm.mlir.addressof + +4: "icmp_fptr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_glob" +4: "icmp_glob" has unsupported operation after optimization: llvm.mlir.addressof + +4: "icmp_glob" has unsupported operation after optimization: llvm.mlir.addressof + +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-constant-phi.txt b/SSA/Projects/InstCombine/tests/logs/icmp-constant-phi.txt new file mode 100644 index 000000000..d92e19b86 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-constant-phi.txt @@ -0,0 +1,81 @@ +1: "test_eq" +4: "test_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_eq" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_eq" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_eq" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_slt" +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_sle" +4: "test_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_sle" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_sle" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_sle" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne" +4: "test_ne" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne_undef" +4: "test_ne_undef" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_undef" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne_int_vector" +4: "test_ne_int_vector" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne_int_vector" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_int_vector" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_int_vector" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne_float" +4: "test_ne_float" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne_float" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne_float_undef" +4: "test_ne_float_undef" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne_float_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float_undef" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_ne_float_vector" +4: "test_ne_float_vector" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ne_float_vector" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float_vector" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ne_float_vector" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-custom-dl.txt b/SSA/Projects/InstCombine/tests/logs/icmp-custom-dl.txt new file mode 100644 index 000000000..97c1579a8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-custom-dl.txt @@ -0,0 +1,114 @@ +1: "test58_d" +5: "test58_d" is empty + +1: "test59" +4: "test59" has unsupported operation: llvm.getelementptr + +4: "test59" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test59" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test59" has unsupported operation: llvm.call + +1: "test59_as1" +4: "test59_as1" has unsupported operation: llvm.getelementptr + +4: "test59_as1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test59_as1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test59_as1" has unsupported operation: llvm.call + +1: "test60" +4: "test60" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_as1" +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast" +4: "test60_addrspacecast" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast_smaller" +4: "test60_addrspacecast_smaller" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast_smaller" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast_larger" +4: "test60_addrspacecast_larger" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast_larger" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test61" +4: "test61" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test61" has unsupported operation: llvm.getelementptr + +4: "test61" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test61" has unsupported operation: llvm.getelementptr + +4: "test61" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test61_as1" +4: "test61_as1" has unsupported operation: llvm.getelementptr + +4: "test61_as1" has unsupported operation: llvm.getelementptr + +4: "test61_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test62" +4: "test62" has unsupported operation: llvm.getelementptr + +4: "test62" has unsupported operation: llvm.getelementptr + +4: "test62" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test62_as1" +4: "test62_as1" has unsupported operation: llvm.getelementptr + +4: "test62_as1" has unsupported operation: llvm.getelementptr + +4: "test62_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_and_ashr_multiuse" +4: "icmp_and_ashr_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_and_ashr_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_and_ashr_multiuse_logical" +4: "icmp_and_ashr_multiuse_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_and_ashr_multiuse_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_lshr_and_overshift" +4: "icmp_lshr_and_overshift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ashr_and_overshift" +4: "icmp_ashr_and_overshift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test71" +4: "test71" has unsupported operation after optimization: llvm.getelementptr + +4: "test71" has unsupported operation after optimization: llvm.getelementptr + +4: "test71" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test71_as1" +4: "test71_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test71_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test71_as1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt b/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt new file mode 100644 index 000000000..22ee9e096 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-div-constant.txt @@ -0,0 +1,172 @@ +1: "is_rem2_neg_i8" +4: "is_rem2_neg_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem2_pos_v2i8" +4: "is_rem2_pos_v2i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem32_pos_i8" +4: "is_rem32_pos_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem4_neg_i16" +4: "is_rem4_neg_i16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "is_rem32_neg_i32_extra_use" +4: "is_rem32_neg_i32_extra_use" has unsupported operation: llvm.call + +4: "is_rem32_neg_i32_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem8_nonneg_i16" +4: "is_rem8_nonneg_i16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem3_neg_i8" +4: "is_rem3_neg_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_rem16_something_i8" +4: "is_rem16_something_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_div" +4: "icmp_div" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_div" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "icmp_div" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_div" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_div" has unsupported operation: builtin.unregistered: llvm.br + +1: "icmp_div2" +4: "icmp_div2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_div2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "icmp_div2" has unsupported operation: builtin.unregistered: llvm.br + +1: "icmp_div3" +4: "icmp_div3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_div3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "icmp_div3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_div3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_div3" has unsupported operation: builtin.unregistered: llvm.br + +1: "udiv_eq_umax" +4: "udiv_eq_umax" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "udiv_eq_umax" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_ne_umax" +4: "udiv_ne_umax" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "udiv_ne_umax" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_eq_big" +4: "udiv_eq_big" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "udiv_eq_big" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_ne_big" +4: "udiv_ne_big" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "sdiv_eq_smin" +4: "sdiv_eq_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sdiv_eq_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_ne_smin" +4: "sdiv_ne_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sdiv_ne_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_eq_small" +4: "sdiv_eq_small" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_ne_big" +4: "sdiv_ne_big" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_eq_not_big" +4: "sdiv_eq_not_big" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_ult_smin" +4: "sdiv_ult_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_eq_smin_use" +4: "sdiv_eq_smin_use" has unsupported operation: llvm.call + +4: "sdiv_eq_smin_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_x_by_const_cmp_x" +4: "sdiv_x_by_const_cmp_x" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_x_by_const_cmp_x" +4: "udiv_x_by_const_cmp_x" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_x_by_const_cmp_x_non_splat" +4: "udiv_x_by_const_cmp_x_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_x_by_const_cmp_x_non_splat" +4: "sdiv_x_by_const_cmp_x_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_x_by_const_cmp_x" +4: "lshr_x_by_const_cmp_x" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_by_const_cmp_sle_value" +4: "lshr_by_const_cmp_sle_value" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_by_const_cmp_sle_value_non_splat" +4: "lshr_by_const_cmp_sle_value_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_by_const_cmp_sge_value_non_splat" +4: "ashr_by_const_cmp_sge_value_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_by_const_cmp_sge_value" +4: "lshr_by_const_cmp_sge_value" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_x_by_const_cmp_sge_x" +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" +4: "sdiv_x_by_const_cmp_eq_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_x_by_const_cmp_slt_value_neg" +4: "lshr_x_by_const_cmp_slt_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_x_by_const_cmp_ult_value_neg" +4: "sdiv_x_by_const_cmp_ult_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_x_by_const_cmp_sgt_value_neg" +4: "sdiv_x_by_const_cmp_sgt_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_x_by_const_cmp_sle_value_neg" +4: "ashr_x_by_const_cmp_sle_value_neg" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-dom.txt b/SSA/Projects/InstCombine/tests/logs/icmp-dom.txt new file mode 100644 index 000000000..e04637ea2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-dom.txt @@ -0,0 +1,171 @@ +1: "idom_sign_bit_check_edge_dominates" +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_sign_bit_check_edge_dominates" has unsupported operation: llvm.return + +1: "idom_sign_bit_check_edge_not_dominates" +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_sign_bit_check_edge_not_dominates" has unsupported operation: llvm.return + +1: "idom_sign_bit_check_edge_dominates_select" +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_sign_bit_check_edge_dominates_select" has unsupported operation: llvm.return + +1: "idom_zbranch" +4: "idom_zbranch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_zbranch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_zbranch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_zbranch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_zbranch" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_zbranch" has unsupported operation: llvm.return + +1: "idom_not_zbranch" +4: "idom_not_zbranch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_not_zbranch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_not_zbranch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "idom_not_zbranch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "idom_not_zbranch" has unsupported operation: builtin.unregistered: llvm.br + +4: "idom_not_zbranch" has unsupported operation: llvm.return + +1: "trueblock_cmp_eq" +4: "trueblock_cmp_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "trueblock_cmp_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "trueblock_cmp_eq" has unsupported operation: builtin.unregistered: llvm.br + +4: "trueblock_cmp_eq" has unsupported operation: llvm.return + +1: "trueblock_cmp_is_false" +4: "trueblock_cmp_is_false" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_is_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "trueblock_cmp_is_false_commute" +4: "trueblock_cmp_is_false_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_is_false_commute" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "trueblock_cmp_is_true" +4: "trueblock_cmp_is_true" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_is_true" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "trueblock_cmp_is_true_commute" +4: "trueblock_cmp_is_true_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "trueblock_cmp_is_true_commute" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "falseblock_cmp_is_false" +4: "falseblock_cmp_is_false" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "falseblock_cmp_is_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "falseblock_cmp_is_false_commute" +4: "falseblock_cmp_is_false_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "falseblock_cmp_is_false_commute" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "falseblock_cmp_is_true" +4: "falseblock_cmp_is_true" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "falseblock_cmp_is_true" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "falseblock_cmp_is_true_commute" +4: "falseblock_cmp_is_true_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "falseblock_cmp_is_true_commute" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "PR48900" +4: "PR48900" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "PR48900" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR48900" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR48900" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "PR48900_alt" +4: "PR48900_alt" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "PR48900_alt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR48900_alt" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR48900_alt" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "and_mask1_eq" +4: "and_mask1_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_mask1_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "and_mask1_ne" +4: "and_mask1_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_mask1_ne" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "and_mask2" +4: "and_mask2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_mask2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "and_mask2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_mask3" +4: "and_mask3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_mask3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "and_mask3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_mask4" +4: "and_mask4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_mask4" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-equality-rotate.txt b/SSA/Projects/InstCombine/tests/logs/icmp-equality-rotate.txt new file mode 100644 index 000000000..3b93d2147 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-equality-rotate.txt @@ -0,0 +1,83 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "cmpeq_rorr_to_rorl" +4: "cmpeq_rorr_to_rorl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpeq_rorr_to_rorl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorr_to_rorl_non_equality_fail" +4: "cmpeq_rorr_to_rorl_non_equality_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpeq_rorr_to_rorl_non_equality_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorr_to_rorl_cmp_against_wrong_val_fail" +4: "cmpeq_rorr_to_rorl_cmp_against_wrong_val_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpeq_rorr_to_rorl_cmp_against_wrong_val_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorr_to_rorl_non_ror_fail" +4: "cmpeq_rorr_to_rorl_non_ror_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpeq_rorr_to_rorl_non_ror_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorr_to_rorl_multiuse_fail" +4: "cmpeq_rorr_to_rorl_multiuse_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpeq_rorr_to_rorl_multiuse_fail" has unsupported operation: llvm.call + +4: "cmpeq_rorr_to_rorl_multiuse_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_rorr_rorr" +4: "cmpne_rorr_rorr" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpne_rorr_rorr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_rorrX_rorrY" +4: "cmpne_rorrX_rorrY" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpne_rorrX_rorrY" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_rorr_rorr_non_equality_fail" +4: "cmpne_rorr_rorr_non_equality_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpne_rorr_rorr_non_equality_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpne_rorr_rorr_non_equality_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_rorr_rorl_todo_mismatch_C" +4: "cmpne_rorr_rorl_todo_mismatch_C" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "cmpne_rorr_rorl_todo_mismatch_C" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpne_rorr_rorl_todo_mismatch_C" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_rorl_rorl_multiuse1_fail" +4: "cmpne_rorl_rorl_multiuse1_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpne_rorl_rorl_multiuse1_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpne_rorl_rorl_multiuse1_fail" has unsupported operation: llvm.call + +4: "cmpne_rorl_rorl_multiuse1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorlXC_rorlYC_multiuse1" +4: "cmpeq_rorlXC_rorlYC_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpeq_rorlXC_rorlYC_multiuse1" has unsupported operation: llvm.call + +4: "cmpeq_rorlXC_rorlYC_multiuse1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpeq_rorlXC_rorlYC_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_rorlC_rorlC_multiuse2_fail" +4: "cmpeq_rorlC_rorlC_multiuse2_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpeq_rorlC_rorlC_multiuse2_fail" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "cmpeq_rorlC_rorlC_multiuse2_fail" has unsupported operation: llvm.call + +4: "cmpeq_rorlC_rorlC_multiuse2_fail" has unsupported operation: llvm.call + +4: "cmpeq_rorlC_rorlC_multiuse2_fail" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt b/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt new file mode 100644 index 000000000..0aaa56929 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-equality-test.txt @@ -0,0 +1,79 @@ +1: "icmp_equality_test" +4: "icmp_equality_test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_constant" +4: "icmp_equality_test_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_swift_optional_pointers" +4: "icmp_equality_test_swift_optional_pointers" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_vector" +4: "icmp_equality_test_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_commute_icmp1" +4: "icmp_equality_test_commute_icmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_commute_icmp2" +4: "icmp_equality_test_commute_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_commute_select1" +4: "icmp_equality_test_commute_select1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_commute_select2" +4: "icmp_equality_test_commute_select2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_equality_test_wrong_constant" +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.icmp + +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 + +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.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 + +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.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 + +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.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 + +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.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-equality-xor.txt b/SSA/Projects/InstCombine/tests/logs/icmp-equality-xor.txt new file mode 100644 index 000000000..994a3e84b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-equality-xor.txt @@ -0,0 +1,59 @@ +1: "use" +5: "use" is empty + +1: "cmpeq_xor_cst1" +4: "cmpeq_xor_cst1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_xor_cst2" +4: "cmpeq_xor_cst2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_xor_cst3" +4: "cmpeq_xor_cst3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_xor_cst1" +4: "cmpne_xor_cst1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_xor_cst2" +4: "cmpne_xor_cst2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_xor_cst3" +4: "cmpne_xor_cst3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_xor_cst1_multiuse" +4: "cmpeq_xor_cst1_multiuse" has unsupported operation: llvm.call + +4: "cmpeq_xor_cst1_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_xor_cst1_commuted" +4: "cmpeq_xor_cst1_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_xor_cst1_vec" +4: "cmpeq_xor_cst1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1" +4: "foo1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo2" +4: "foo2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo3" +4: "foo3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use.i8" +5: "use.i8" is empty + +1: "fold_xorC_eq0_multiuse" +4: "fold_xorC_eq0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_xorC_eq0_multiuse" has unsupported operation: llvm.call + +1: "fold_xorC_eq1_multiuse_fail" +4: "fold_xorC_eq1_multiuse_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_xorC_eq1_multiuse_fail" has unsupported operation: llvm.call + +1: "fold_xorC_neC_multiuse" +4: "fold_xorC_neC_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_xorC_neC_multiuse" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt new file mode 100644 index 000000000..3514487a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ext-ext.txt @@ -0,0 +1,205 @@ +1: "zext_zext_sgt" +4: "zext_zext_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_zext_ugt" +4: "zext_zext_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_zext_eq" +4: "zext_zext_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_zext_sle_op0_narrow" +4: "zext_zext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_zext_ule_op0_wide" +4: "zext_zext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_sext_slt" +4: "sext_sext_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_sext_ult" +4: "sext_sext_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_sext_ne" +4: "sext_sext_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_sext_sge_op0_narrow" +4: "sext_sext_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_sext_uge_op0_wide" +4: "sext_sext_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_sgt" +4: "zext_sext_sgt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_sgt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_nneg_sext_sgt" +4: "zext_nneg_sext_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_ugt" +4: "zext_sext_ugt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_ugt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_nneg_sext_ugt" +4: "zext_nneg_sext_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_eq" +4: "zext_sext_eq" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_eq" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_nneg_sext_eq" +4: "zext_nneg_sext_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_sle_op0_narrow" +4: "zext_sext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_nneg_sext_sle_op0_narrow" +4: "zext_nneg_sext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_nneg_sext_sle_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_ule_op0_wide" +4: "zext_sext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_nneg_sext_ule_op0_wide" +4: "zext_nneg_sext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_nneg_sext_ule_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_slt" +4: "sext_zext_slt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_slt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_nneg_slt" +4: "sext_zext_nneg_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_ult" +4: "sext_zext_ult" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_ult" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_nneg_ult" +4: "sext_zext_nneg_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_ne" +4: "sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_nneg_ne" +4: "sext_zext_nneg_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_sge_op0_narrow" +4: "sext_zext_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_nneg_sge_op0_narrow" +4: "sext_zext_nneg_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_nneg_sge_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_uge_op0_wide" +4: "sext_zext_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_nneg_uge_op0_wide" +4: "sext_zext_nneg_uge_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +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" +4: "zext_sext_ugt_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_eq_known_nonneg" +4: "zext_sext_eq_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_sle_known_nonneg_op0_narrow" +4: "zext_sext_sle_known_nonneg_op0_narrow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_sle_known_nonneg_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_ule_known_nonneg_op0_wide" +4: "zext_sext_ule_known_nonneg_op0_wide" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_ule_known_nonneg_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_slt_known_nonneg" +4: "sext_zext_slt_known_nonneg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_ult_known_nonneg" +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" +4: "sext_zext_sge_known_nonneg_op0_narrow" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_sge_known_nonneg_op0_narrow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_zext_uge_known_nonneg_op0_wide" +4: "sext_zext_uge_known_nonneg_op0_wide" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext_uge_known_nonneg_op0_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_eq_sext" +4: "zext_eq_sext" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_eq_sext" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_eq_sext" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_eq_sext_fail_not_i1" +4: "zext_eq_sext_fail_not_i1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_eq_sext_fail_not_i1" has unsupported operation: builtin.unregistered: llvm.sext + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-fold-into-phi.txt b/SSA/Projects/InstCombine/tests/logs/icmp-fold-into-phi.txt new file mode 100644 index 000000000..0de797633 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-fold-into-phi.txt @@ -0,0 +1,22 @@ +1: "SwitchTest" +4: "SwitchTest" has unsupported operation: builtin.unregistered: llvm.switch + +4: "SwitchTest" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "SwitchTest" has unsupported operation: builtin.unregistered: llvm.br + +4: "SwitchTest" has unsupported operation: builtin.unregistered: llvm.br + +1: "BranchTest" +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.br + +4: "BranchTest" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-fsh.txt b/SSA/Projects/InstCombine/tests/logs/icmp-fsh.txt new file mode 100644 index 000000000..342816d95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-fsh.txt @@ -0,0 +1,98 @@ +1: "use" +5: "use" is empty + +1: "rotl_eq_0" +4: "rotl_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_ne_0" +4: "rotl_ne_0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rotl_ne_0" has unsupported operation: llvm.call + +4: "rotl_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_eq_n1" +4: "rotl_eq_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_ne_n1" +4: "rotl_ne_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_ne_n1_poison" +4: "rotl_ne_n1_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotl_ne_n1_poison" has unsupported operation: llvm.mlir.undef + +4: "rotl_ne_n1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_ne_n1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_ne_n1_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_eq_0_poison" +4: "rotl_eq_0_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotl_eq_0_poison" has unsupported operation: llvm.mlir.undef + +4: "rotl_eq_0_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_eq_0_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_eq_0_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_eq_1_poison" +4: "rotl_eq_1_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotl_eq_1_poison" has unsupported operation: llvm.mlir.undef + +4: "rotl_eq_1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_eq_1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_eq_1_poison" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rotl_eq_1_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotl_sgt_0_poison" +4: "rotl_sgt_0_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotl_sgt_0_poison" has unsupported operation: llvm.mlir.undef + +4: "rotl_sgt_0_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_sgt_0_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_sgt_0_poison" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rotl_sgt_0_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_eq_0" +4: "rotr_eq_0" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "rotr_eq_0" has unsupported operation: llvm.call + +4: "rotr_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_ne_0" +4: "rotr_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_eq_n1" +4: "rotr_eq_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_ne_n1" +4: "rotr_ne_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_ne_1" +4: "rotr_ne_1" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "rotr_ne_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rotr_sgt_n1" +4: "rotr_sgt_n1" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "rotr_sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fshr_sgt_n1" +4: "fshr_sgt_n1" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +4: "fshr_sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-gep.txt b/SSA/Projects/InstCombine/tests/logs/icmp-gep.txt new file mode 100644 index 000000000..6d4dbf8a7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-gep.txt @@ -0,0 +1,262 @@ +1: "getptr" +5: "getptr" is empty + +1: "use" +5: "use" is empty + +1: "use.i1" +5: "use.i1" is empty + +1: "eq_base" +4: "eq_base" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_base_commute" +4: "ne_base_commute" has unsupported operation: llvm.call + +4: "ne_base_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_base_inbounds" +4: "ne_base_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_base_inbounds_commute" +4: "eq_base_inbounds_commute" has unsupported operation: llvm.call + +4: "eq_base_inbounds_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_base" +4: "slt_base" has unsupported operation: llvm.getelementptr + +4: "slt_base" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_base_commute" +4: "sgt_base_commute" has unsupported operation: llvm.call + +4: "sgt_base_commute" has unsupported operation: llvm.getelementptr + +4: "sgt_base_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_base_inbounds" +4: "slt_base_inbounds" has unsupported operation: llvm.getelementptr + +4: "slt_base_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_base_inbounds_commute" +4: "sgt_base_inbounds_commute" has unsupported operation: llvm.call + +4: "sgt_base_inbounds_commute" has unsupported operation: llvm.getelementptr + +4: "sgt_base_inbounds_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_base" +4: "ult_base" has unsupported operation: llvm.getelementptr + +4: "ult_base" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_base_commute" +4: "ugt_base_commute" has unsupported operation: llvm.call + +4: "ugt_base_commute" has unsupported operation: llvm.getelementptr + +4: "ugt_base_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_base_inbounds" +4: "ult_base_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_base_inbounds_commute" +4: "ugt_base_inbounds_commute" has unsupported operation: llvm.call + +4: "ugt_base_inbounds_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_base_inbounds_use" +4: "ne_base_inbounds_use" has unsupported operation: llvm.getelementptr + +4: "ne_base_inbounds_use" has unsupported operation: llvm.call + +4: "ne_base_inbounds_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_base_inbounds_commute_use" +4: "eq_base_inbounds_commute_use" has unsupported operation: llvm.call + +4: "eq_base_inbounds_commute_use" has unsupported operation: llvm.getelementptr + +4: "eq_base_inbounds_commute_use" has unsupported operation: llvm.call + +4: "eq_base_inbounds_commute_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_bitcast_base" +4: "eq_bitcast_base" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_bitcast_base_inbounds" +4: "eq_bitcast_base_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR8882" +4: "PR8882" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test24_as1" +4: "test24_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test71" +4: "test71" has unsupported operation after optimization: llvm.getelementptr + +4: "test71" has unsupported operation after optimization: llvm.getelementptr + +4: "test71" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test71_as1" +4: "test71_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test71_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test71_as1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test58_d" +5: "test58_d" is empty + +1: "test59" +4: "test59" has unsupported operation: llvm.getelementptr + +4: "test59" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test59" has unsupported operation: llvm.call + +1: "test59_as1" +4: "test59_as1" has unsupported operation: llvm.getelementptr + +4: "test59_as1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test59_as1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test59_as1" has unsupported operation: llvm.call + +1: "test60" +4: "test60" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_gep_ult_no_inbounds" +4: "test_gep_ult_no_inbounds" has unsupported operation: llvm.getelementptr + +4: "test_gep_ult_no_inbounds" has unsupported operation: llvm.getelementptr + +4: "test_gep_ult_no_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_gep_eq_no_inbounds" +4: "test_gep_eq_no_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_as1" +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast" +4: "test60_addrspacecast" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast_smaller" +4: "test60_addrspacecast_smaller" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast_smaller" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_addrspacecast_larger" +4: "test60_addrspacecast_larger" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test60_addrspacecast_larger" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test61" +4: "test61" has unsupported operation: llvm.getelementptr + +4: "test61" has unsupported operation: llvm.getelementptr + +4: "test61" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test61_as1" +4: "test61_as1" has unsupported operation: llvm.getelementptr + +4: "test61_as1" has unsupported operation: llvm.getelementptr + +4: "test61_as1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_extra_use" +4: "test60_extra_use" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use" has unsupported operation: llvm.call + +4: "test60_extra_use" has unsupported operation: llvm.call + +4: "test60_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_extra_use_const_operands_inbounds" +4: "test60_extra_use_const_operands_inbounds" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use_const_operands_inbounds" has unsupported operation: llvm.call + +4: "test60_extra_use_const_operands_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_extra_use_const_operands_no_inbounds" +4: "test60_extra_use_const_operands_no_inbounds" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use_const_operands_no_inbounds" has unsupported operation: llvm.call + +4: "test60_extra_use_const_operands_no_inbounds" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test60_extra_use_fold" +4: "test60_extra_use_fold" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use_fold" has unsupported operation: llvm.getelementptr + +4: "test60_extra_use_fold" has unsupported operation: llvm.call + +4: "test60_extra_use_fold" has unsupported operation: llvm.call + +4: "test60_extra_use_fold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test60_extra_use_fold" has unsupported operation: llvm.call + +4: "test60_extra_use_fold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test60_extra_use_fold" has unsupported operation: llvm.call + +4: "test60_extra_use_fold" has unsupported operation: llvm.return + +1: "test_scalable_same" +4: "test_scalable_same" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_same" has unsupported operation: llvm.getelementptr + +4: "test_scalable_same" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_same" has unsupported operation: llvm.getelementptr + +4: "test_scalable_same" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_scalable_x" +4: "test_scalable_x" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_x" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_scalable_xc" +4: "test_scalable_xc" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_xc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_scalable_xy" +4: "test_scalable_xy" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_xy" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_xy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_scalable_ij" +4: "test_scalable_ij" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_ij" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "test_scalable_ij" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gep_nuw" +4: "gep_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gep_nusw" +4: "gep_nusw" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-inttoptr.txt b/SSA/Projects/InstCombine/tests/logs/icmp-inttoptr.txt new file mode 100644 index 000000000..3ae49bea0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-inttoptr.txt @@ -0,0 +1,39 @@ +1: "use_ptr" +5: "use_ptr" is empty + +1: "inttoptr" +4: "inttoptr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_constant" +4: "inttoptr_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_vector" +4: "inttoptr_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_vector_constant" +4: "inttoptr_vector_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_size_mismatch" +4: "inttoptr_size_mismatch" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "inttoptr_size_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_vector_constant_size_mismatch" +4: "inttoptr_vector_constant_size_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_oneside" +4: "inttoptr_oneside" has unsupported operation: llvm.inttoptr + +4: "inttoptr_oneside" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "inttoptr_used" +4: "inttoptr_used" has unsupported operation: llvm.inttoptr + +4: "inttoptr_used" has unsupported operation: llvm.inttoptr + +4: "inttoptr_used" has unsupported operation: llvm.call + +4: "inttoptr_used" has unsupported operation: llvm.call + +4: "inttoptr_used" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt b/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt new file mode 100644 index 000000000..2755c69e7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-logical.txt @@ -0,0 +1,553 @@ +1: "masked_and_notallzeroes" +4: "masked_and_notallzeroes" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notallzeroes_splat" +4: "masked_and_notallzeroes_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notallzeroes_logical" +4: "masked_and_notallzeroes_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allzeroes" +4: "masked_or_allzeroes" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allzeroes_logical" +4: "masked_or_allzeroes_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notallones" +4: "masked_and_notallones" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notallones_logical" +4: "masked_and_notallones_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allones" +4: "masked_or_allones" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allones_logical" +4: "masked_or_allones_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notA" +4: "masked_and_notA" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notA_logical" +4: "masked_and_notA_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notA_slightly_optimized" +4: "masked_and_notA_slightly_optimized" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_and_notA_slightly_optimized_logical" +4: "masked_and_notA_slightly_optimized_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_A" +4: "masked_or_A" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_A_logical" +4: "masked_or_A_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_A_slightly_optimized" +4: "masked_or_A_slightly_optimized" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_A_slightly_optimized_logical" +4: "masked_or_A_slightly_optimized_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allzeroes_notoptimised" +4: "masked_or_allzeroes_notoptimised" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_or_allzeroes_notoptimised" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_or_allzeroes_notoptimised_logical" +4: "masked_or_allzeroes_notoptimised_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_or_allzeroes_notoptimised_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nomask_lhs" +4: "nomask_lhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nomask_lhs_logical" +4: "nomask_lhs_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nomask_rhs" +4: "nomask_rhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nomask_rhs_logical" +4: "nomask_rhs_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_mask_cmps_to_false" +4: "fold_mask_cmps_to_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "fold_mask_cmps_to_false" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_mask_cmps_to_false_logical" +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.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 + +4: "fold_mask_cmps_to_true" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_mask_cmps_to_true_logical" +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.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 + +1: "nomask_splat_and_B_mixed" +4: "nomask_splat_and_B_mixed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpeq_bitwise" +4: "cmpeq_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmpeq_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmpne_bitwise" +4: "cmpne_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmpne_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_0" +4: "masked_icmps_mask_notallzeros_bmask_mixed_0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_0_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_1" +4: "masked_icmps_mask_notallzeros_bmask_mixed_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_1_vector" +4: "masked_icmps_mask_notallzeros_bmask_mixed_1_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_1_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_1b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_1b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_2" +4: "masked_icmps_mask_notallzeros_bmask_mixed_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_2_logical" +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.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 + +1: "masked_icmps_mask_notallzeros_bmask_mixed_3_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_3b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_3b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_4" +4: "masked_icmps_mask_notallzeros_bmask_mixed_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_4_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_5" +4: "masked_icmps_mask_notallzeros_bmask_mixed_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_5_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_6" +4: "masked_icmps_mask_notallzeros_bmask_mixed_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_6_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_7" +4: "masked_icmps_mask_notallzeros_bmask_mixed_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_7_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_7b_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_2_logical" +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.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 + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_4" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_4_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_5" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_5_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_6" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_6_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_7b_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_2_logical" +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.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 + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_4" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_4_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_5" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_5_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_6" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_6_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7" +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_swapped_7b_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_1b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_2_logical" +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.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 + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_3b_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_4" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_4_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_5" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_5_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_6" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_6_logical" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7" +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7_logical" +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.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 + +4: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "masked_icmps_mask_notallzeros_bmask_mixed_negated_swapped_7b_logical" +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.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 + +1: "masked_icmps_bmask_notmixed_or_vec" +4: "masked_icmps_bmask_notmixed_or_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_or_vec_poison1" +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_bmask_notmixed_or_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_or_vec_poison2" +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_bmask_notmixed_or_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_or_contradict_notoptimized" +4: "masked_icmps_bmask_notmixed_or_contradict_notoptimized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_bmask_notmixed_or_contradict_notoptimized" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_and" +4: "masked_icmps_bmask_notmixed_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_and_contradict_notoptimized" +4: "masked_icmps_bmask_notmixed_and_contradict_notoptimized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_bmask_notmixed_and_contradict_notoptimized" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_and_expected_false" +4: "masked_icmps_bmask_notmixed_and_expected_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "masked_icmps_bmask_notmixed_not_subset_notoptimized" +4: "masked_icmps_bmask_notmixed_not_subset_notoptimized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_icmps_bmask_notmixed_not_subset_notoptimized" 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 new file mode 100644 index 000000000..e6dddcc02 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-mul-and.txt @@ -0,0 +1,133 @@ +1: "use" +5: "use" is empty + +1: "mul_mask_pow2_eq0" +4: "mul_mask_pow2_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_pow2_ne0_use1" +4: "mul_mask_pow2_ne0_use1" has unsupported operation: llvm.call + +4: "mul_mask_pow2_ne0_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_pow2_ne0_use2" +4: "mul_mask_pow2_ne0_use2" has unsupported operation: llvm.call + +4: "mul_mask_pow2_ne0_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_pow2_sgt0" +4: "mul_mask_pow2_sgt0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_fakepow2_ne0" +4: "mul_mask_fakepow2_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_pow2_eq4" +4: "mul_mask_pow2_eq4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mask_notpow2_ne" +4: "mul_mask_notpow2_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493" +4: "pr40493" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_neg1" +4: "pr40493_neg1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_neg2" +4: "pr40493_neg2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_neg3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.and +2: llvm.return + +1: "pr40493_vec1" +4: "pr40493_vec1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_vec2" +4: "pr40493_vec2" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec2" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_vec3" +4: "pr40493_vec3" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec3" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_vec4" +4: "pr40493_vec4" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec4" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: llvm.mlir.undef + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr40493_vec4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr40493_vec5" +4: "pr40493_vec5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr51551" +4: "pr51551" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr51551_2" +4: "pr51551_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr51551_neg1" +4: "pr51551_neg1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr51551_neg2" +4: "pr51551_neg2" has unsupported operation: builtin.unregistered: llvm.trunc + +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 +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.mul +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-mul-zext.txt b/SSA/Projects/InstCombine/tests/logs/icmp-mul-zext.txt new file mode 100644 index 000000000..c70f13d4a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-mul-zext.txt @@ -0,0 +1,57 @@ +1: "sterix" +4: "sterix" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sterix" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR33765" +4: "PR33765" has unsupported operation: llvm.mlir.addressof + +4: "PR33765" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR33765" has unsupported operation: builtin.unregistered: llvm.zext + +4: "PR33765" has unsupported operation: llvm.load + +4: "PR33765" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR33765" has unsupported operation: llvm.store + +4: "PR33765" has unsupported operation: llvm.return + +1: "aux" +5: "aux" is empty + +1: "iter_breaker" +4: "iter_breaker" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "iter_breaker" has unsupported operation: llvm.extractvalue + +4: "iter_breaker" has unsupported operation: llvm.extractvalue + +4: "iter_breaker" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "iter_breaker" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "iter_breaker" has unsupported operation: llvm.call + +1: "PR46561" +4: "PR46561" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR46561" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "PR46561" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt b/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt new file mode 100644 index 000000000..f2d887173 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-mul.txt @@ -0,0 +1,457 @@ +1: "use" +5: "use" is empty + +1: "usev2xi8" +5: "usev2xi8" is empty + +1: "squared_nsw_eq0" +4: "squared_nsw_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "squared_nuw_eq0" +4: "squared_nuw_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "squared_nsw_nuw_ne0" +4: "squared_nsw_nuw_ne0" has unsupported operation: llvm.call + +4: "squared_nsw_nuw_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "squared_eq0" +4: "squared_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_nsw_eq0" +4: "mul_nsw_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "squared_nsw_eq1" +4: "squared_nsw_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "squared_nsw_sgt0" +4: "squared_nsw_sgt0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_positive_multip_rem_zero" +4: "slt_positive_multip_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_negative_multip_rem_zero" +4: "slt_negative_multip_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_positive_multip_rem_nz" +4: "slt_positive_multip_rem_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_rem_zero" +4: "ult_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_rem_zero_nsw" +4: "ult_rem_zero_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_rem_nz" +4: "ult_rem_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_rem_nz_nsw" +4: "ult_rem_nz_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_positive_multip_rem_zero" +4: "sgt_positive_multip_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_negative_multip_rem_zero" +4: "sgt_negative_multip_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_positive_multip_rem_nz" +4: "sgt_positive_multip_rem_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_rem_zero" +4: "ugt_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_rem_zero_nsw" +4: "ugt_rem_zero_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_rem_nz" +4: "ugt_rem_nz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_rem_nz_nsw" +4: "ugt_rem_nz_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nsw_rem_zero" +4: "eq_nsw_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nsw_rem_zero" +4: "ne_nsw_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nsw_rem_zero_undef1" +4: "ne_nsw_rem_zero_undef1" has unsupported operation: llvm.mlir.undef + +4: "ne_nsw_rem_zero_undef1" has unsupported operation: llvm.mlir.undef + +4: "ne_nsw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_nsw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_nsw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nsw_rem_zero_undef2" +4: "ne_nsw_rem_zero_undef2" has unsupported operation: llvm.mlir.undef + +4: "ne_nsw_rem_zero_undef2" has unsupported operation: llvm.mlir.undef + +4: "ne_nsw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_nsw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ne_nsw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nsw_rem_zero_uses" +4: "eq_nsw_rem_zero_uses" has unsupported operation: llvm.call + +4: "eq_nsw_rem_zero_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nsw_rem_nz" +4: "eq_nsw_rem_nz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ne_nsw_rem_nz" +4: "ne_nsw_rem_nz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "eq_nuw_rem_zero" +4: "eq_nuw_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nuw_rem_zero_undef1" +4: "eq_nuw_rem_zero_undef1" has unsupported operation: llvm.mlir.undef + +4: "eq_nuw_rem_zero_undef1" has unsupported operation: llvm.mlir.undef + +4: "eq_nuw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "eq_nuw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "eq_nuw_rem_zero_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nuw_rem_zero_undef2" +4: "eq_nuw_rem_zero_undef2" has unsupported operation: llvm.mlir.undef + +4: "eq_nuw_rem_zero_undef2" has unsupported operation: llvm.mlir.undef + +4: "eq_nuw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "eq_nuw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "eq_nuw_rem_zero_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nuw_rem_zero" +4: "ne_nuw_rem_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nuw_rem_zero_uses" +4: "ne_nuw_rem_zero_uses" has unsupported operation: llvm.call + +4: "ne_nuw_rem_zero_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nuw_rem_nz" +4: "eq_nuw_rem_nz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ne_nuw_rem_nz" +4: "ne_nuw_rem_nz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "sgt_positive_multip_rem_zero_nonsw" +4: "sgt_positive_multip_rem_zero_nonsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_multip_rem_zero_nonsw" +4: "ult_multip_rem_zero_nonsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_rem_zero_nonuw" +4: "ugt_rem_zero_nonuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_minnum" +4: "sgt_minnum" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_bignum" +4: "ule_bignum" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_mulzero" +4: "sgt_mulzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "eq_rem_zero_nonuw" +4: "eq_rem_zero_nonuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_rem_zero_nonuw" +4: "ne_rem_zero_nonuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_eq" +4: "mul_constant_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_splat" +4: "mul_constant_ne_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_extra_use1" +4: "mul_constant_ne_extra_use1" has unsupported operation: llvm.call + +4: "mul_constant_ne_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_eq_extra_use2" +4: "mul_constant_eq_extra_use2" has unsupported operation: llvm.call + +4: "mul_constant_eq_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_extra_use3" +4: "mul_constant_ne_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_eq_nsw" +4: "mul_constant_eq_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nsw_splat" +4: "mul_constant_ne_nsw_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nsw_extra_use1" +4: "mul_constant_ne_nsw_extra_use1" has unsupported operation: llvm.call + +4: "mul_constant_ne_nsw_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_eq_nsw_extra_use2" +4: "mul_constant_eq_nsw_extra_use2" has unsupported operation: llvm.call + +4: "mul_constant_eq_nsw_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nsw_extra_use3" +4: "mul_constant_ne_nsw_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_nsw_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_nsw_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_nuw_eq" +4: "mul_constant_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nuw_splat" +4: "mul_constant_ne_nuw_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nuw_extra_use1" +4: "mul_constant_ne_nuw_extra_use1" has unsupported operation: llvm.call + +4: "mul_constant_ne_nuw_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_eq_nuw_extra_use2" +4: "mul_constant_eq_nuw_extra_use2" has unsupported operation: llvm.call + +4: "mul_constant_eq_nuw_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ne_nuw_extra_use3" +4: "mul_constant_ne_nuw_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_nuw_extra_use3" has unsupported operation: llvm.call + +4: "mul_constant_ne_nuw_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_ult" +4: "mul_constant_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_nuw_sgt" +4: "mul_constant_nuw_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_mismatch_constant_nuw_eq" +4: "mul_mismatch_constant_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_partial_nuw_eq" +4: "mul_constant_partial_nuw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_constant_mismatch_wrap_eq" +4: "mul_constant_mismatch_wrap_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_mul_constants_with_tz" +4: "eq_mul_constants_with_tz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_mul_constants_with_tz_splat" +4: "eq_mul_constants_with_tz_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oss_fuzz_39934" +4: "oss_fuzz_39934" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_of_bool" +4: "mul_of_bool" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "mul_of_bool" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "mul_of_bool_commute" +4: "mul_of_bool_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "mul_of_bools" +4: "mul_of_bools" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "not_mul_of_bool" +4: "not_mul_of_bool" has unsupported operation: builtin.unregistered: llvm.zext + +4: "not_mul_of_bool" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_mul_of_bool_commute" +4: "not_mul_of_bool_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_of_bool_no_lz_other_op" +4: "mul_of_bool_no_lz_other_op" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "mul_of_bool_no_lz_other_op" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "mul_of_pow2" +4: "mul_of_pow2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "mul_of_pow2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "mul_of_pow2_commute" +4: "mul_of_pow2_commute" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "mul_of_pow2s" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.mul +2: llvm.or +2: llvm.return + +1: "not_mul_of_pow2" +4: "not_mul_of_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "not_mul_of_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_mul_of_pow2_commute" +4: "not_mul_of_pow2_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_of_pow2_no_lz_other_op" +4: "mul_of_pow2_no_lz_other_op" has unsupported operation: builtin.unregistered: llvm.sext + +4: "mul_of_pow2_no_lz_other_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "splat_mul_known_lz" +4: "splat_mul_known_lz" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "splat_mul_known_lz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "splat_mul_unknown_lz" +4: "splat_mul_unknown_lz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_oddC_overflow_eq" +4: "mul_oddC_overflow_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_oddC_eq_nomod" +4: "mul_oddC_eq_nomod" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_evenC_ne" +4: "mul_evenC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_oddC_ne_vec" +4: "mul_oddC_ne_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_oddC_ne_nosplat_vec" +4: "mul_oddC_ne_nosplat_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_nsuw_xy_z_maybe_zero_eq" +4: "mul_nsuw_xy_z_maybe_zero_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_xy_z_assumenozero_ne" +4: "mul_xy_z_assumenozero_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_xy_z_assumenozero_ne" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_xy_z_assumenozero_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_xy_z_assumeodd_eq" +4: "mul_xy_z_assumeodd_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_xy_z_assumeodd_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_xy_z_assumeodd_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reused_mul_nsw_xy_z_setnonzero_vec_ne" +4: "reused_mul_nsw_xy_z_setnonzero_vec_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reused_mul_nsw_xy_z_setnonzero_vec_ne" has unsupported operation: llvm.call + +1: "mul_mixed_nuw_nsw_xy_z_setodd_ult" +4: "mul_mixed_nuw_nsw_xy_z_setodd_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_nuw_xy_z_assumenonzero_uge" +4: "mul_nuw_xy_z_assumenonzero_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_nuw_xy_z_assumenonzero_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "mul_nuw_xy_z_assumenonzero_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_nuw_xy_z_assumenonzero_uge" has unsupported operation: llvm.call + +1: "mul_nuw_xy_z_setnonzero_vec_eq" +4: "mul_nuw_xy_z_setnonzero_vec_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "mul_nuw_xy_z_brnonzero_ult" +4: "mul_nuw_xy_z_brnonzero_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_nuw_xy_z_brnonzero_ult" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "mul_nuw_xy_z_brnonzero_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_nuw_xy_z_brnonzero_ult" has unsupported operation: llvm.call + +1: "reused_mul_nuw_xy_z_selectnonzero_ugt" +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.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 + +1: "icmp_eq_mul_nsw_nonequal" +4: "icmp_eq_mul_nsw_nonequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_mul_nuw_nonequal" +4: "icmp_eq_mul_nuw_nonequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_mul_nsw_nonequal_commuted" +4: "icmp_eq_mul_nsw_nonequal_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_mul_nsw_nonequal" +4: "icmp_ne_mul_nsw_nonequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_mul_nsw_mayequal" +4: "icmp_eq_mul_nsw_mayequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_mul_nsw_nuw_nonequal" +4: "icmp_eq_mul_nsw_nuw_nonequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_mul_nsw_nonequal" +4: "icmp_ult_mul_nsw_nonequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_slt" +4: "icmp_mul_nsw_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_sle" +4: "icmp_mul_nsw_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_sgt" +4: "icmp_mul_nsw_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_sge" +4: "icmp_mul_nsw_sge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_slt_neg" +4: "icmp_mul_nsw_slt_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_slt_neg_var" +4: "icmp_mul_nsw_slt_neg_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_mul_nsw_slt_neg_var" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_mul_nsw_slt_neg_var" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nonsw_slt" +4: "icmp_mul_nonsw_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_slt_unknown_sign" +4: "icmp_mul_nsw_slt_unknown_sign" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_mul_nsw_slt_may_be_zero" +4: "icmp_mul_nsw_slt_may_be_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_mul_nsw_slt_may_be_zero" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_mul_nsw_slt_may_be_zero" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ne-pow2.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ne-pow2.txt new file mode 100644 index 000000000..35b53453f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ne-pow2.txt @@ -0,0 +1,196 @@ +1: "pow2_32_assume" +4: "pow2_32_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "not_pow2_32_assume" +4: "not_pow2_32_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_64_assume" +4: "pow2_64_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_64_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "not_pow2_64_assume" +4: "not_pow2_64_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_64_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_16_assume" +4: "pow2_16_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_16_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "not_pow2_16_assume" +4: "not_pow2_16_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_16_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_8_assume" +4: "pow2_8_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_8_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "not_pow2_8_assume" +4: "not_pow2_8_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_8_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_32_br" +4: "pow2_32_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_32_br" +4: "not_pow2_32_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_64_br" +4: "pow2_64_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_64_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_64_br" +4: "not_pow2_64_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_64_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_16_br" +4: "pow2_16_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_16_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_16_br" +4: "not_pow2_16_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_16_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_8_br" +4: "pow2_8_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_8_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_8_br" +4: "not_pow2_8_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_8_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_32_nonconst_assume" +4: "pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_32_gtnonconst_assume" +4: "pow2_32_gtnonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_32_gtnonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_gtnonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pow2_32_gtnonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_gtnonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "not_pow2_32_nonconst_assume" +4: "not_pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "not_pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "not_pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_or_zero_32_nonconst_assume" +4: "pow2_or_zero_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_or_zero_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pow2_or_zero_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_32_nonconst_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "pow2_32_nonconst_assume_br" +4: "pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_32_nonconst_assume_br" +4: "not_pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "not_pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "not_pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_or_zero_32_nonconst_assume_br" +4: "pow2_or_zero_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_or_zero_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pow2_or_zero_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_or_zero_32_nonconst_assume_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pow2_32_nonconst_br1_br" +4: "pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "not_pow2_32_nonconst_br1_br" +4: "not_pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "not_pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "not_pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_pow2_32_nonconst_br1_br" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "maybe_pow2_32_noncont" +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "maybe_pow2_32_noncont" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt b/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt new file mode 100644 index 000000000..cec60e3dc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-not-bool-constant.txt @@ -0,0 +1,60 @@ +1: "eq_t_not" +"eq_t_not" contains vectors which are unsupported + +1: "eq_f_not" +"eq_f_not" contains vectors which are unsupported + +1: "ne_t_not" +"ne_t_not" contains vectors which are unsupported + +1: "ne_f_not" +"ne_f_not" contains vectors which are unsupported + +1: "ugt_t_not" +"ugt_t_not" contains vectors which are unsupported + +1: "ugt_f_not" +"ugt_f_not" contains vectors which are unsupported + +1: "ult_t_not" +"ult_t_not" contains vectors which are unsupported + +1: "ult_f_not" +"ult_f_not" contains vectors which are unsupported + +1: "sgt_t_not" +"sgt_t_not" contains vectors which are unsupported + +1: "sgt_f_not" +"sgt_f_not" contains vectors which are unsupported + +1: "slt_t_not" +"slt_t_not" contains vectors which are unsupported + +1: "slt_f_not" +"slt_f_not" contains vectors which are unsupported + +1: "uge_t_not" +"uge_t_not" contains vectors which are unsupported + +1: "uge_f_not" +"uge_f_not" contains vectors which are unsupported + +1: "ule_t_not" +"ule_t_not" contains vectors which are unsupported + +1: "ule_f_not" +"ule_f_not" contains vectors which are unsupported + +1: "sge_t_not" +"sge_t_not" contains vectors which are unsupported + +1: "sge_f_not" +"sge_f_not" contains vectors which are unsupported + +1: "sle_t_not" +"sle_t_not" contains vectors which are unsupported + +1: "sle_f_not" +"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 new file mode 100644 index 000000000..8c771a67a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-and-x.txt @@ -0,0 +1,106 @@ +1: "barrier" +5: "barrier" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "icmp_ult_x_y" +4: "icmp_ult_x_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_x_y_2" +4: "icmp_ult_x_y_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_x_y" +4: "icmp_uge_x_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_x_y_2" +4: "icmp_uge_x_y_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_x_negy" +4: "icmp_sge_x_negy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_sge_x_negy" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_sge_x_negy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_x_negy" +4: "icmp_slt_x_negy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_x_negy" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "icmp_slt_x_negy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_x_negy" has unsupported operation: llvm.call + +1: "icmp_slt_x_negy_fail_maybe_zero" +4: "icmp_slt_x_negy_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_x_negy_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "icmp_slt_x_negy_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_x_negy_fail_maybe_zero" has unsupported operation: llvm.call + +1: "icmp_sle_x_negy" +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 + +1: "icmp_sgt_x_negy_fail_partial" +4: "icmp_sgt_x_negy_fail_partial" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_x_posy" +4: "icmp_sle_x_posy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_x_posy_fail_partial" +4: "icmp_sle_x_posy_fail_partial" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_x_posy" +4: "icmp_sgt_x_posy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_sgt_x_posy" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_sgt_x_posy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_negx_y" +4: "icmp_sgt_negx_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_negx_y" +4: "icmp_sle_negx_y" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_sle_negx_y" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_sle_negx_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_negx_y_fail_maybe_zero" +4: "icmp_sle_negx_y_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_sle_negx_y_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.intr.assume + +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" +4: "icmp_eq_x_invertable_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_x_invertable_y_fail_multiuse" +4: "icmp_eq_x_invertable_y_fail_multiuse" has unsupported operation: llvm.call + +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" +4: "icmp_eq_x_invertable_y2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_x_invertable_y_fail_immconstant" +4: "icmp_eq_x_invertable_y_fail_immconstant" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt b/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt new file mode 100644 index 000000000..15fc040bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-or-x.txt @@ -0,0 +1,125 @@ +1: "barrier" +5: "barrier" is empty + +1: "use.v2i8" +5: "use.v2i8" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "or_ugt" +4: "or_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ule" +4: "or_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_slt_pos" +4: "or_slt_pos" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_sle_pos" +4: "or_sle_pos" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_sle_pos" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "or_sle_pos" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_sle_fail_maybe_neg" +4: "or_sle_fail_maybe_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_noundef" +4: "or_eq_noundef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_notY_eq_0" +4: "or_eq_notY_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_notY_eq_0_fail_multiuse" +4: "or_eq_notY_eq_0_fail_multiuse" has unsupported operation: llvm.call + +4: "or_eq_notY_eq_0_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ne_notY_eq_1s" +4: "or_ne_notY_eq_1s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ne_notY_eq_1s_fail_bad_not" +4: "or_ne_notY_eq_1s_fail_bad_not" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ne_vecC" +4: "or_ne_vecC" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_eq_fail_maybe_undef" +4: "or_eq_fail_maybe_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ne_noundef" +4: "or_ne_noundef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_ne_noundef_fail_reuse" +4: "or_ne_noundef_fail_reuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_ne_noundef_fail_reuse" has unsupported operation: llvm.call + +1: "or_slt_intmin" +4: "or_slt_intmin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_slt_intmin_2" +4: "or_slt_intmin_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_sle_intmin_indirect_2" +4: "or_sle_intmin_indirect_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_sle_intmin_indirect_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_sle_intmin_indirect_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_sle_intmin_indirect_2" has unsupported operation: llvm.call + +1: "or_sge_intmin" +4: "or_sge_intmin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_sgt_intmin_indirect" +4: "or_sgt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_sgt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_sgt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_sgt_intmin_indirect" has unsupported operation: llvm.call + +1: "or_sgt_intmin_2" +4: "or_sgt_intmin_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_simplify_ule" +4: "or_simplify_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_simplify_uge" +4: "or_simplify_uge" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "or_simplify_ule_fail" +4: "or_simplify_ule_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_simplify_ugt" +4: "or_simplify_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_simplify_ult" +4: "or_simplify_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_simplify_ugt_fail" +4: "or_simplify_ugt_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "icmp_eq_x_invertable_y2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR38139" +4: "PR38139" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-of-trunc-ext.txt b/SSA/Projects/InstCombine/tests/logs/icmp-of-trunc-ext.txt new file mode 100644 index 000000000..e6b7eb3d8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-trunc-ext.txt @@ -0,0 +1,345 @@ +1: "use" +5: "use" is empty + +1: "icmp_trunc_x_trunc_y" +4: "icmp_trunc_x_trunc_y" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_fail_from_illegal1" +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_from_illegal1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_illegal_trunc_to_legal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_2_illegal_anyways" +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_trunc_y_2_illegal_anyways" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_3" +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_fail_maybe_dirty_upper_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_swap0" +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_swap0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_trunc_y_swap1" +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_trunc_y_swap1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_zext_y" +4: "icmp_trunc_x_zext_y" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_zext_y" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_zext_y" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_zext_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_zext_y_2" +4: "icmp_trunc_x_zext_y_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_zext_y_2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_zext_y_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_zext_y_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_zext_y_3" +4: "icmp_trunc_x_zext_y_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_zext_y_3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_zext_y_3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_zext_y_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_zext_y_3_fail_illegal" +4: "icmp_trunc_x_zext_y_3_fail_illegal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_zext_y_3_fail_illegal" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_zext_y_3_fail_illegal" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_zext_y_3_fail_illegal" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_zext_y_3_fail_illegal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_trunc_x_zext_y_fail_multiuse" +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: llvm.call + +4: "icmp_trunc_x_zext_y_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nuw" +4: "trunc_unsigned_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nsw" +4: "trunc_unsigned_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_both" +4: "trunc_unsigned_both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_either" +4: "trunc_unsigned_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_unsigned_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_unsigned_either" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nuw" +4: "trunc_signed_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nsw" +4: "trunc_signed_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_both" +4: "trunc_signed_both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_either" +4: "trunc_signed_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_either" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nuw" +4: "trunc_equality_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nsw" +4: "trunc_equality_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_both" +4: "trunc_equality_both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_either" +4: "trunc_equality_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_equality_either" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_equality_either" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nuw_zext" +4: "trunc_unsigned_nuw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_unsigned_nuw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nuw_sext" +4: "trunc_unsigned_nuw_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_unsigned_nuw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_unsigned_nuw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nsw_zext" +4: "trunc_unsigned_nsw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_unsigned_nsw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_unsigned_nsw_sext" +4: "trunc_unsigned_nsw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_unsigned_nsw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nsw_sext" +4: "trunc_signed_nsw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_signed_nsw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nsw_zext" +4: "trunc_signed_nsw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_signed_nsw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nuw_sext" +4: "trunc_signed_nuw_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_nuw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_signed_nuw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_signed_nuw_zext" +4: "trunc_signed_nuw_zext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_signed_nuw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_signed_nuw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nuw_zext" +4: "trunc_equality_nuw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_equality_nuw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nuw_sext" +4: "trunc_equality_nuw_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_equality_nuw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_equality_nuw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nsw_zext" +4: "trunc_equality_nsw_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "trunc_equality_nsw_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_nsw_sext" +4: "trunc_equality_nsw_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_equality_nsw_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_equality_both_sext" +4: "trunc_equality_both_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "trunc_equality_both_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_eq1" +4: "test_eq1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_eq2" +4: "test_eq2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_eq2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ult" +4: "test_ult" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_slt" +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ult_nuw" +4: "test_ult_nuw" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_ult_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_slt_nuw" +4: "test_slt_nuw" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_slt_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "constexpr_trunc" +4: "constexpr_trunc" has unsupported operation: llvm.mlir.addressof + +4: "constexpr_trunc" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constexpr_trunc" has unsupported operation: llvm.mlir.addressof + +4: "constexpr_trunc" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constexpr_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "constexpr_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "constexpr_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-of-xor-x.txt b/SSA/Projects/InstCombine/tests/logs/icmp-of-xor-x.txt new file mode 100644 index 000000000..5a853d509 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-of-xor-x.txt @@ -0,0 +1,137 @@ +1: "barrier" +5: "barrier" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "test_xor1" +4: "test_xor1" has unsupported operation: llvm.call + +4: "test_xor1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor2" +4: "test_xor2" has unsupported operation: llvm.call + +4: "test_xor2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor3" +4: "test_xor3" has unsupported operation: llvm.call + +4: "test_xor3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor_ne" +4: "test_xor_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor_eq" +4: "test_xor_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor4" +4: "test_xor4" has unsupported operation: llvm.call + +4: "test_xor4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor5" +4: "test_xor5" has unsupported operation: llvm.call + +4: "test_xor5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor6" +4: "test_xor6" has unsupported operation: llvm.call + +4: "test_xor6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor7" +4: "test_xor7" has unsupported operation: llvm.call + +4: "test_xor7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor8" +4: "test_xor8" has unsupported operation: llvm.call + +4: "test_xor8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_slt_xor" +4: "test_slt_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sle_xor" +4: "test_sle_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sgt_xor" +4: "test_sgt_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sge_xor" +4: "test_sge_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ult_xor" +4: "test_ult_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ule_xor" +4: "test_ule_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_ugt_xor" +4: "test_ugt_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_uge_xor" +4: "test_uge_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_xor1_nofold_multi_use" +4: "test_xor1_nofold_multi_use" has unsupported operation: llvm.call + +4: "test_xor1_nofold_multi_use" has unsupported operation: llvm.call + +4: "test_xor1_nofold_multi_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_uge" +4: "xor_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "xor_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_uge_fail_maybe_zero" +4: "xor_uge_fail_maybe_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_ule_2" +4: "xor_ule_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_sle_2" +4: "xor_sle_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_sle_2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "xor_sle_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_sge" +4: "xor_sge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_ugt_2" +4: "xor_ugt_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_ult" +4: "xor_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_sgt" +4: "xor_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_sgt_fail_no_known_msb" +4: "xor_sgt_fail_no_known_msb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_slt_2" +4: "xor_slt_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_sgt_intmin_2" +4: "xor_sgt_intmin_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_slt_intmin_indirect" +4: "or_slt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_slt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_slt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_slt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.br + +4: "or_slt_intmin_indirect" has unsupported operation: llvm.call + +4: "or_slt_intmin_indirect" has unsupported operation: builtin.unregistered: llvm.br + 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 new file mode 100644 index 000000000..3027bda91 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-or-of-select-with-zero.txt @@ -0,0 +1,121 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "use.i1" +5: "use.i1" is empty + +1: "src_tv_eq" +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 + +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 + +4: "src_fv_eq_fail_cant_invert2" has unsupported operation: llvm.call + +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 + +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 + +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 + +4: "src_fv_eq_invert2_fail_bad_sel" has unsupported operation: llvm.call + +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 + +4: "src_fv_eq_invert3" has unsupported operation: llvm.call + +1: "src_tv_ne_invert" +4: "src_tv_ne_invert" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "src_tv_ne_invert" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-or.txt b/SSA/Projects/InstCombine/tests/logs/icmp-or.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-power2-and-icmp-shifted-mask.txt b/SSA/Projects/InstCombine/tests/logs/icmp-power2-and-icmp-shifted-mask.txt new file mode 100644 index 000000000..f0ac87a70 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-power2-and-icmp-shifted-mask.txt @@ -0,0 +1,202 @@ +1: "icmp_power2_and_icmp_shifted_mask_2147483648_1610612736" +4: "icmp_power2_and_icmp_shifted_mask_2147483648_1610612736" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_1610612736" +4: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_1610612736" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_2147483648_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_2147483648_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_2147483648_805306368" +4: "icmp_power2_and_icmp_shifted_mask_2147483648_805306368" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_805306368" +4: "icmp_power2_and_icmp_shifted_mask_swapped_2147483648_805306368" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_1073741824_1073741823" +4: "icmp_power2_and_icmp_shifted_mask_1073741824_1073741823" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_1073741824_1073741823" +4: "icmp_power2_and_icmp_shifted_mask_swapped_1073741824_1073741823" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_7" +4: "icmp_power2_and_icmp_shifted_mask_8_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_7" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_6" +4: "icmp_power2_and_icmp_shifted_mask_8_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_6" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_5_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_5_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_5_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_5_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_5_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_5_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_3_gap_between_masks_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_3_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_3_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_3_gap_between_masks_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_3_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_3_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_256_239_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_256_239_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_256_239_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_256_239_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_256_239_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_256_239_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_112_mask_to_left_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_112_mask_to_left_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_112_mask_to_left_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_112_mask_to_left_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_112_mask_to_left_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_112_mask_to_left_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_56_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_56_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_56_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_56_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_56_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_56_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_24_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_24_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_24_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_24_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_24_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_24_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_8_12_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_8_12_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_8_12_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_swapped_8_12_mask_overlap_fail" +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_12_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_swapped_8_12_mask_overlap_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_splat_poison_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_poison_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_poison_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_poison_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: llvm.mlir.undef + +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: llvm.mlir.undef + +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: llvm.mlir.undef + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: llvm.mlir.undef + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_splat_undef_2147483648_1610612736_2147483647" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_128_others" +4: "icmp_power2_and_icmp_shifted_mask_vector_128_others" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_others" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_others" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_64_others" +4: "icmp_power2_and_icmp_shifted_mask_vector_64_others" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_64_others" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_64_others" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_2147482647_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_2147482647_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_2147482647_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_2147482647_gap_in_mask_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_2147482647_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_2147482647_gap_in_mask_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_1073741823_gap_between_masks_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_1073741823_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_2147483648_1073741823_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_1073741823_gap_between_masks_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_1073741823_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_2147483648_1073741823_gap_between_masks_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_128_1_of_7_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_128_1_of_7_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_128_1_of_7_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_1_of_7_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_1_of_7_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_1_of_7_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_128_0_of_6_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_128_0_of_6_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_128_0_of_6_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_0_of_6_fail" +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_0_of_6_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_power2_and_icmp_shifted_mask_vector_swapped_128_0_of_6_fail" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-range.txt b/SSA/Projects/InstCombine/tests/logs/icmp-range.txt new file mode 100644 index 000000000..c8a472d25 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-range.txt @@ -0,0 +1,694 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test_nonzero" +4: "test_nonzero" has unsupported operation after optimization: llvm.load + +4: "test_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_nonzero2" +4: "test_nonzero2" has unsupported operation after optimization: llvm.load + +4: "test_nonzero2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_nonzero3" +4: "test_nonzero3" has unsupported operation: llvm.load + +4: "test_nonzero3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_nonzero4" +4: "test_nonzero4" has unsupported operation after optimization: llvm.load + +4: "test_nonzero4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_nonzero5" +4: "test_nonzero5" has unsupported operation after optimization: llvm.load + +4: "test_nonzero5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_nonzero6" +4: "test_nonzero6" has unsupported operation: llvm.load + +4: "test_nonzero6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_not_in_range" +4: "test_not_in_range" has unsupported operation after optimization: llvm.load + +4: "test_not_in_range" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_in_range" +4: "test_in_range" has unsupported operation: llvm.load + +4: "test_in_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_range_sgt_constant" +4: "test_range_sgt_constant" has unsupported operation after optimization: llvm.load + +4: "test_range_sgt_constant" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_range_slt_constant" +4: "test_range_slt_constant" has unsupported operation after optimization: llvm.load + +4: "test_range_slt_constant" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_multi_range1" +4: "test_multi_range1" has unsupported operation after optimization: llvm.load + +4: "test_multi_range1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_multi_range2" +4: "test_multi_range2" has unsupported operation: llvm.load + +4: "test_multi_range2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_two_ranges" +4: "test_two_ranges" has unsupported operation: llvm.load + +4: "test_two_ranges" has unsupported operation: llvm.load + +4: "test_two_ranges" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_two_attribute_ranges" +4: "test_two_attribute_ranges" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_two_ranges2" +4: "test_two_ranges2" has unsupported operation after optimization: llvm.load + +4: "test_two_ranges2" has unsupported operation after optimization: llvm.load + +4: "test_two_ranges2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_two_argument_ranges" +4: "test_two_argument_ranges" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_one_range_and_one_argument_range" +4: "test_one_range_and_one_argument_range" has unsupported operation after optimization: llvm.load + +4: "test_one_range_and_one_argument_range" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_one_argument_range_and_one_range" +4: "test_one_argument_range_and_one_range" has unsupported operation after optimization: llvm.load + +4: "test_one_argument_range_and_one_range" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_two_ranges3" +4: "test_two_ranges3" has unsupported operation after optimization: llvm.load + +4: "test_two_ranges3" has unsupported operation after optimization: llvm.load + +4: "test_two_ranges3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_two_ranges_vec" +4: "test_two_ranges_vec" has unsupported operation: llvm.load + +4: "test_two_ranges_vec" has unsupported operation: llvm.load + +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 + +1: "test_two_ranges_vec_true" +"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 + +1: "test_two_argument_ranges_vec_true" +"test_two_argument_ranges_vec_true" contains vectors which are unsupported + +1: "create_range1" +5: "create_range1" is empty + +1: "create_range2" +5: "create_range2" is empty + +1: "create_range3" +5: "create_range3" is empty + +1: "test_two_return_attribute_ranges_not_simplified" +4: "test_two_return_attribute_ranges_not_simplified" has unsupported operation: llvm.call + +4: "test_two_return_attribute_ranges_not_simplified" has unsupported operation: llvm.call + +4: "test_two_return_attribute_ranges_not_simplified" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_two_return_attribute_ranges_one_in_call" +4: "test_two_return_attribute_ranges_one_in_call" has unsupported operation: llvm.call + +4: "test_two_return_attribute_ranges_one_in_call" has unsupported operation: llvm.call + +1: "test_two_return_attribute_ranges" +4: "test_two_return_attribute_ranges" has unsupported operation: llvm.call + +4: "test_two_return_attribute_ranges" has unsupported operation: llvm.call + +1: "test_one_return_argument_and_one_argument_range" +4: "test_one_return_argument_and_one_argument_range" has unsupported operation: llvm.call + +1: "test_one_range_and_one_return_argument" +4: "test_one_range_and_one_return_argument" has unsupported operation: llvm.call + +1: "ugt_zext" +4: "ugt_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_zext" +4: "ult_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_zext" +4: "uge_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "uge_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_zext" +4: "ule_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ule_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_zext_use" +4: "ugt_zext_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ugt_zext_use" has unsupported operation: llvm.call + +4: "ugt_zext_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_zext_not_i1" +4: "ult_zext_not_i1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ult_zext_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_zext" +4: "sub_ult_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_ult_zext" +4: "zext_ult_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_ugt_zext" +4: "zext_ugt_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_ugt_zext" has unsupported operation: llvm.call + +4: "zext_ugt_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_zext_not_i1" +4: "sub_ult_zext_not_i1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sub_ult_zext_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_zext_use1" +4: "sub_ult_zext_use1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sub_ult_zext_use1" has unsupported operation: llvm.call + +4: "sub_ult_zext_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_ugt_sub_use2" +4: "zext_ugt_sub_use2" has unsupported operation: llvm.call + +4: "zext_ugt_sub_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_zext_use3" +4: "sub_ult_zext_use3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sub_ult_zext_use3" has unsupported operation: llvm.call + +4: "sub_ult_zext_use3" has unsupported operation: llvm.call + +4: "sub_ult_zext_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_zext" +4: "sub_ule_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sub_ule_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_and" +4: "sub_ult_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_ugt_sub" +4: "and_ugt_sub" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_sext" +4: "uge_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_sext" +4: "ule_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_sext" +4: "ugt_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ugt_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_sext" +4: "ult_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ult_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_sext_use" +4: "uge_sext_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "uge_sext_use" has unsupported operation: llvm.call + +4: "uge_sext_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_sext_not_i1" +4: "ule_sext_not_i1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ule_sext_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_sext" +4: "sub_ule_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_ule_sext" +4: "sext_ule_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_uge_sext" +4: "sext_uge_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_uge_sext" has unsupported operation: llvm.call + +4: "sext_uge_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_sext_not_i1" +4: "sub_ule_sext_not_i1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sub_ule_sext_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_sext_use1" +4: "sub_ule_sext_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sub_ule_sext_use1" has unsupported operation: llvm.call + +4: "sub_ule_sext_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sext_uge_sub_use2" +4: "sext_uge_sub_use2" has unsupported operation: llvm.call + +4: "sext_uge_sub_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_sext_use3" +4: "sub_ule_sext_use3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sub_ule_sext_use3" has unsupported operation: llvm.call + +4: "sub_ule_sext_use3" has unsupported operation: llvm.call + +4: "sub_ule_sext_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ult_sext" +4: "sub_ult_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sub_ult_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ule_ashr" +4: "sub_ule_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_uge_sub" +4: "ashr_uge_sub" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_minus1" +4: "zext_sext_add_icmp_slt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_sgt_1" +4: "zext_sext_add_icmp_sgt_1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_sgt_minus2" +4: "zext_sext_add_icmp_sgt_minus2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_minus2" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_minus2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_2" +4: "zext_sext_add_icmp_slt_2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_2" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_i128" +4: "zext_sext_add_icmp_i128" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_i128" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_i128" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_eq_minus1" +4: "zext_sext_add_icmp_eq_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_eq_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_eq_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_ne_minus1" +4: "zext_sext_add_icmp_ne_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_ne_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_ne_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_sgt_minus1" +4: "zext_sext_add_icmp_sgt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_ult_minus1" +4: "zext_sext_add_icmp_ult_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_ult_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_ult_minus1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_sgt_0" +4: "zext_sext_add_icmp_sgt_0" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_0" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_0" +4: "zext_sext_add_icmp_slt_0" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_0" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_eq_1" +4: "zext_sext_add_icmp_eq_1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_eq_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_eq_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_ne_1" +4: "zext_sext_add_icmp_ne_1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_ne_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_ne_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_1" +4: "zext_sext_add_icmp_slt_1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_ugt_1" +4: "zext_sext_add_icmp_ugt_1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_ugt_1" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +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 + +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 + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: llvm.mlir.undef + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.sext + +4: "vector_zext_sext_add_icmp_slt_1_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_minus_1_no_oneuse" +4: "zext_sext_add_icmp_slt_minus_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_minus_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_minus_1_no_oneuse" has unsupported operation: llvm.call + +1: "zext_sext_add_icmp_sgt_1_no_oneuse" +4: "zext_sext_add_icmp_sgt_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_1_no_oneuse" has unsupported operation: llvm.call + +1: "zext_sext_add_icmp_slt_2_no_oneuse" +4: "zext_sext_add_icmp_slt_2_no_oneuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_2_no_oneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_2_no_oneuse" has unsupported operation: llvm.call + +1: "zext_sext_add_icmp_sgt_mins_2_no_oneuse" +4: "zext_sext_add_icmp_sgt_mins_2_no_oneuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_sgt_mins_2_no_oneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_sgt_mins_2_no_oneuse" has unsupported operation: llvm.call + +1: "zext_sext_add_icmp_slt_1_no_oneuse" +4: "zext_sext_add_icmp_slt_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_1_no_oneuse" has unsupported operation: llvm.call + +4: "zext_sext_add_icmp_slt_1_no_oneuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_1_rhs_not_const" +4: "zext_sext_add_icmp_slt_1_rhs_not_const" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_1_rhs_not_const" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_1_rhs_not_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "zext_sext_add_icmp_slt_1_type_not_i1" +4: "zext_sext_add_icmp_slt_1_type_not_i1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_sext_add_icmp_slt_1_type_not_i1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_sext_add_icmp_slt_1_type_not_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_bool_0" +4: "icmp_eq_bool_0" has unsupported operation: llvm.load + +4: "icmp_eq_bool_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_bool_1" +4: "icmp_eq_bool_1" has unsupported operation: llvm.load + +4: "icmp_eq_bool_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_bool_0" +4: "icmp_ne_bool_0" has unsupported operation: llvm.load + +4: "icmp_ne_bool_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_bool_1" +4: "icmp_ne_bool_1" has unsupported operation: llvm.load + +4: "icmp_ne_bool_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_eq_zero" +4: "icmp_ne_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_ne_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "icmp_ne_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_ne_zero" +4: "icmp_ne_zext_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_eq_zero" +4: "icmp_eq_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "icmp_eq_zext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_ne_zero" +4: "icmp_eq_zext_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_eq_one" +4: "icmp_ne_zext_eq_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_ne_one" +4: "icmp_ne_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_ne_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "icmp_ne_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_eq_one" +4: "icmp_eq_zext_eq_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_ne_one" +4: "icmp_eq_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "icmp_eq_zext_ne_one" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_eq_non_boolean" +4: "icmp_ne_zext_eq_non_boolean" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_ne_non_boolean" +4: "icmp_ne_zext_ne_non_boolean" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_eq_non_boolean" +4: "icmp_eq_zext_eq_non_boolean" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_zext_ne_non_boolean" +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 + +1: "icmp_ne_zext_ne_zero_vec" +4: "icmp_ne_zext_ne_zero_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_zext_eq_one_vec" +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 + +1: "icmp_ne_zext_eq_non_boolean_vec" +4: "icmp_ne_zext_eq_non_boolean_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_eq_zero" +4: "icmp_ne_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_ne_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "icmp_ne_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_ne_zero" +4: "icmp_ne_sext_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_eq_zero" +4: "icmp_eq_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "icmp_eq_sext_eq_zero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_ne_zero" +4: "icmp_eq_sext_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_eq_allones" +4: "icmp_ne_sext_eq_allones" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_ne_allones" +4: "icmp_ne_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_ne_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "icmp_ne_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_eq_allones" +4: "icmp_eq_sext_eq_allones" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_ne_allones" +4: "icmp_eq_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "icmp_eq_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "icmp_eq_sext_ne_allones" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_eq_otherwise" +4: "icmp_ne_sext_eq_otherwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_ne_otherwise" +4: "icmp_ne_sext_ne_otherwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_eq_otherwise" +4: "icmp_eq_sext_eq_otherwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sext_ne_otherwise" +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 + +1: "icmp_ne_sext_ne_zero_vec" +4: "icmp_ne_sext_ne_zero_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_eq_allones_vec" +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 + +1: "icmp_ne_sext_eq_otherwise_vec" +4: "icmp_ne_sext_eq_otherwise_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_ne_zero_i128" +4: "icmp_ne_sext_ne_zero_i128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_ne_otherwise_i128" +4: "icmp_ne_sext_ne_otherwise_i128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_sgt_zero_nofold" +4: "icmp_ne_sext_sgt_zero_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_sext_sgt_zero_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_ne_sext_sgt_zero_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_sext_ne_zero_nofold" +4: "icmp_slt_sext_ne_zero_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_sext_ne_zero_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_slt_sext_ne_zero_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_slt_allones_nofold" +4: "icmp_ne_sext_slt_allones_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_sext_slt_allones_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_ne_sext_slt_allones_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_sext_ne_allones_nofold" +4: "icmp_slt_sext_ne_allones_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_sext_ne_allones_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_slt_sext_ne_allones_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_sext_slt_otherwise_nofold" +4: "icmp_ne_sext_slt_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_ne_sext_slt_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_ne_sext_slt_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_sext_ne_otherwise_nofold" +4: "icmp_slt_sext_ne_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_slt_sext_ne_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.sext + +4: "icmp_slt_sext_ne_otherwise_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isFloat" +4: "isFloat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isFloat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-rotate.txt b/SSA/Projects/InstCombine/tests/logs/icmp-rotate.txt new file mode 100644 index 000000000..da3d594ad --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-rotate.txt @@ -0,0 +1,98 @@ +1: "use" +5: "use" is empty + +1: "rol_eq" +4: "rol_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_ne" +4: "rol_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ror_eq" +4: "ror_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ror_ne" +4: "ror_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_use" +4: "rol_eq_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rol_eq_use" has unsupported operation: llvm.call + +4: "rol_eq_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_uses" +4: "rol_eq_uses" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rol_eq_uses" has unsupported operation: llvm.call + +4: "rol_eq_uses" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rol_eq_uses" has unsupported operation: llvm.call + +4: "rol_eq_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_vec" +4: "rol_eq_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ror_eq_vec" +4: "ror_eq_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_cst" +4: "rol_eq_cst" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_ne_cst" +4: "rol_ne_cst" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_cst_use" +4: "rol_eq_cst_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rol_eq_cst_use" has unsupported operation: llvm.call + +4: "rol_eq_cst_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ror_eq_cst" +4: "ror_eq_cst" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ror_ne_cst" +4: "ror_ne_cst" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_cst_vec" +4: "rol_eq_cst_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "rol_eq_cst_undef" +4: "rol_eq_cst_undef" has unsupported operation: llvm.mlir.undef + +4: "rol_eq_cst_undef" has unsupported operation: llvm.mlir.undef + +4: "rol_eq_cst_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rol_eq_cst_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rol_eq_cst_undef" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "rol_eq_cst_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "no_rotate" +4: "no_rotate" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "no_rotate" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "no_rotate" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "wrong_pred" +4: "wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "wrong_pred" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "amounts_mismatch" +4: "amounts_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "amounts_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "wrong_pred2" +4: "wrong_pred2" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "wrong_pred2" 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 new file mode 100644 index 000000000..5b2cf67ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-select-implies-common-op.txt @@ -0,0 +1,49 @@ +1: "sgt_3_impliesF_eq_2" +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.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 new file mode 100644 index 000000000..c54a50aa7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-select.txt @@ -0,0 +1,283 @@ +1: "use" +5: "use" is empty + +1: "use.i1" +5: "use.i1" is empty + +1: "icmp_select_const" +4: "icmp_select_const" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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" +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.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 + +4: "icmp_select_implied_cond_swapped_select_with_inv_cond" has unsupported operation: llvm.call + +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" +4: "umin_seq_comparison" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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 + +1: "select_constants_and_icmp_eq0_zero_fval" +4: "select_constants_and_icmp_eq0_zero_fval" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +1: "select_constants_and_icmp_ne0_zero_fval" +4: "select_constants_and_icmp_ne0_zero_fval" has unsupported operation: builtin.unregistered: llvm.select + +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-shl-1-overflow.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shl-1-overflow.txt new file mode 100644 index 000000000..4dda678cd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shl-1-overflow.txt @@ -0,0 +1,55 @@ +1: "use16" +5: "use16" is empty + +1: "usev4" +5: "usev4" is empty + +1: "icmp_shl_ugt_1" +4: "icmp_shl_ugt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ugt_2" +4: "icmp_shl_ugt_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_uge_1" +4: "icmp_shl_uge_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_uge_2" +4: "icmp_shl_uge_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ult_1" +4: "icmp_shl_ult_1" has unsupported operation: llvm.call + +4: "icmp_shl_ult_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ult_2" +4: "icmp_shl_ult_2" has unsupported operation: llvm.call + +4: "icmp_shl_ult_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ule_1" +4: "icmp_shl_ule_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ule_2" +4: "icmp_shl_ule_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_eq_1" +4: "icmp_shl_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_eq_2" +4: "icmp_shl_eq_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ne_1" +4: "icmp_shl_ne_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_ne_2" +4: "icmp_shl_ne_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_test_signed_pred" +4: "negative_test_signed_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_test_shl_more_than_1" +4: "negative_test_shl_more_than_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_test_compare_with_different_value" +4: "negative_test_compare_with_different_value" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-shl-nsw.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shl-nsw.txt new file mode 100644 index 000000000..88deb5768 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shl-nsw.txt @@ -0,0 +1,93 @@ +1: "icmp_shl_nsw_sgt" +4: "icmp_shl_nsw_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_nsw_sge0" +4: "icmp_shl_nsw_sge0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_nsw_sge1" +4: "icmp_shl_nsw_sge1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_nsw_sge1_vec" +4: "icmp_shl_nsw_sge1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_nsw_eq" +4: "icmp_shl_nsw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_shl_nsw_eq_vec" +4: "icmp_shl_nsw_eq_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt1" +4: "icmp_sgt1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt2" +4: "icmp_sgt2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt3" +4: "icmp_sgt3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt4" +4: "icmp_sgt4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt5" +4: "icmp_sgt5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt6" +4: "icmp_sgt6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt7" +4: "icmp_sgt7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt8" +4: "icmp_sgt8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt9" +4: "icmp_sgt9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt10" +4: "icmp_sgt10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt11" +4: "icmp_sgt11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt11_vec" +4: "icmp_sgt11_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle1" +4: "icmp_sle1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle2" +4: "icmp_sle2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle3" +4: "icmp_sle3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle4" +4: "icmp_sle4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle5" +4: "icmp_sle5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle6" +4: "icmp_sle6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle7" +4: "icmp_sle7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle8" +4: "icmp_sle8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle9" +4: "icmp_sle9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle10" +4: "icmp_sle10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle11" +4: "icmp_sle11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq1" +4: "icmp_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne1" +4: "icmp_ne1" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-shl-nuw.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shl-nuw.txt new file mode 100644 index 000000000..f4b92e467 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shl-nuw.txt @@ -0,0 +1,57 @@ +1: "icmp_ugt_32" +4: "icmp_ugt_32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_64" +4: "icmp_ule_64" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_16" +4: "icmp_ugt_16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_16x2" +4: "icmp_ule_16x2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_16x2_nonzero" +4: "icmp_ule_16x2_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_12x2" +4: "icmp_ule_12x2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_8" +4: "icmp_ult_8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_8x2" +4: "icmp_uge_8x2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_16x2" +4: "icmp_ugt_16x2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c1" +4: "fold_icmp_shl_nuw_c1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2" +4: "fold_icmp_shl_nuw_c2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_non_pow2" +4: "fold_icmp_shl_nuw_c2_non_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_div_non_pow2" +4: "fold_icmp_shl_nuw_c2_div_non_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c3" +4: "fold_icmp_shl_nuw_c3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_indivisible" +4: "fold_icmp_shl_nuw_c2_indivisible" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_c2_without_nuw" +4: "fold_icmp_shl_c2_without_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_precondition1" +4: "fold_icmp_shl_nuw_c2_precondition1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_precondition2" +4: "fold_icmp_shl_nuw_c2_precondition2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_icmp_shl_nuw_c2_precondition3" +4: "fold_icmp_shl_nuw_c2_precondition3" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-shl.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shl.txt new file mode 100644 index 000000000..e33939d95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shl.txt @@ -0,0 +1,54 @@ +1: "shl_nuw_eq_0" +4: "shl_nuw_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_ne_0" +4: "shl_nsw_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_eq_0_fail_missing_flags" +4: "shl_eq_0_fail_missing_flags" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_ne_1_fail_nonzero" +4: "shl_ne_1_fail_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_slt_1" +4: "shl_nsw_slt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_vec_nsw_slt_1_0_todo_non_splat" +4: "shl_vec_nsw_slt_1_0_todo_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_sle_n1" +4: "shl_nsw_sle_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_sge_1" +4: "shl_nsw_sge_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_sgt_n1" +4: "shl_nsw_sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nuw_sgt_n1_fail_wrong_flag" +4: "shl_nuw_sgt_n1_fail_wrong_flag" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_ult_Csle0" +4: "shl_nsw_nuw_ult_Csle0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_ule_Csle0_fail_missing_flag" +4: "shl_nsw_ule_Csle0_fail_missing_flag" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_uge_Csle0" +4: "shl_nsw_nuw_uge_Csle0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nuw_ugt_Csle0_fail_missing_flag" +4: "shl_nuw_ugt_Csle0_fail_missing_flag" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_sgt_Csle0" +4: "shl_nsw_nuw_sgt_Csle0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_sge_Csle0_todo_non_splat" +4: "shl_nsw_nuw_sge_Csle0_todo_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_sle_Csle0" +4: "shl_nsw_nuw_sle_Csle0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl_nsw_nuw_slt_Csle0_fail_positive" +4: "shl_nsw_nuw_slt_Csle0_fail_positive" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-shr-lt-gt.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shr-lt-gt.txt new file mode 100644 index 000000000..322f4b750 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shr-lt-gt.txt @@ -0,0 +1,1246 @@ +1: "lshrugt_01_00" +4: "lshrugt_01_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_01" +4: "lshrugt_01_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_02" +4: "lshrugt_01_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_03" +4: "lshrugt_01_03" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_04" +4: "lshrugt_01_04" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_05" +4: "lshrugt_01_05" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_06" +4: "lshrugt_01_06" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_07" +4: "lshrugt_01_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_08" +4: "lshrugt_01_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_09" +4: "lshrugt_01_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_10" +4: "lshrugt_01_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_11" +4: "lshrugt_01_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_12" +4: "lshrugt_01_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_13" +4: "lshrugt_01_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_14" +4: "lshrugt_01_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_15" +4: "lshrugt_01_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_00" +4: "lshrugt_02_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_01" +4: "lshrugt_02_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_02" +4: "lshrugt_02_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_03" +4: "lshrugt_02_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_04" +4: "lshrugt_02_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_05" +4: "lshrugt_02_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_06" +4: "lshrugt_02_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_07" +4: "lshrugt_02_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_08" +4: "lshrugt_02_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_09" +4: "lshrugt_02_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_10" +4: "lshrugt_02_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_11" +4: "lshrugt_02_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_12" +4: "lshrugt_02_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_13" +4: "lshrugt_02_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_14" +4: "lshrugt_02_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_15" +4: "lshrugt_02_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_00" +4: "lshrugt_03_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_01" +4: "lshrugt_03_01" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_02" +4: "lshrugt_03_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_03" +4: "lshrugt_03_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_04" +4: "lshrugt_03_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_05" +4: "lshrugt_03_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_06" +4: "lshrugt_03_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_07" +4: "lshrugt_03_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_08" +4: "lshrugt_03_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_09" +4: "lshrugt_03_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_10" +4: "lshrugt_03_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_11" +4: "lshrugt_03_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_12" +4: "lshrugt_03_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_13" +4: "lshrugt_03_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_14" +4: "lshrugt_03_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_15" +4: "lshrugt_03_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_00" +4: "lshrult_01_00" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_01" +4: "lshrult_01_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_02" +4: "lshrult_01_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_03" +4: "lshrult_01_03" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_04" +4: "lshrult_01_04" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_05" +4: "lshrult_01_05" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_06" +4: "lshrult_01_06" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_07" +4: "lshrult_01_07" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_08" +4: "lshrult_01_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_09" +4: "lshrult_01_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_10" +4: "lshrult_01_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_11" +4: "lshrult_01_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_12" +4: "lshrult_01_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_13" +4: "lshrult_01_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_14" +4: "lshrult_01_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_15" +4: "lshrult_01_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_00" +4: "lshrult_02_00" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_01" +4: "lshrult_02_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_02" +4: "lshrult_02_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_03" +4: "lshrult_02_03" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_04" +4: "lshrult_02_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_05" +4: "lshrult_02_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_06" +4: "lshrult_02_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_07" +4: "lshrult_02_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_08" +4: "lshrult_02_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_09" +4: "lshrult_02_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_10" +4: "lshrult_02_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_11" +4: "lshrult_02_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_12" +4: "lshrult_02_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_13" +4: "lshrult_02_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_14" +4: "lshrult_02_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_15" +4: "lshrult_02_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_00" +4: "lshrult_03_00" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_01" +4: "lshrult_03_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_03_02" +4: "lshrult_03_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_03" +4: "lshrult_03_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_04" +4: "lshrult_03_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_05" +4: "lshrult_03_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_06" +4: "lshrult_03_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_07" +4: "lshrult_03_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_08" +4: "lshrult_03_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_09" +4: "lshrult_03_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_10" +4: "lshrult_03_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_11" +4: "lshrult_03_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_12" +4: "lshrult_03_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_13" +4: "lshrult_03_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_14" +4: "lshrult_03_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_15" +4: "lshrult_03_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_00" +4: "ashrsgt_01_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_00_multiuse" +4: "ashrsgt_01_00_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashrsgt_01_00_multiuse" has unsupported operation: llvm.store + +1: "ashrsgt_01_01" +4: "ashrsgt_01_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_02" +4: "ashrsgt_01_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_03" +4: "ashrsgt_01_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_04" +4: "ashrsgt_01_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_05" +4: "ashrsgt_01_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_06" +4: "ashrsgt_01_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_07" +4: "ashrsgt_01_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_08" +4: "ashrsgt_01_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_09" +4: "ashrsgt_01_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_10" +4: "ashrsgt_01_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_11" +4: "ashrsgt_01_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_12" +4: "ashrsgt_01_12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_13" +4: "ashrsgt_01_13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_14" +4: "ashrsgt_01_14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_15" +4: "ashrsgt_01_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_00" +4: "ashrsgt_02_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_01" +4: "ashrsgt_02_01" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_02" +4: "ashrsgt_02_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_03" +4: "ashrsgt_02_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_04" +4: "ashrsgt_02_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_05" +4: "ashrsgt_02_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_06" +4: "ashrsgt_02_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_07" +4: "ashrsgt_02_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_08" +4: "ashrsgt_02_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_09" +4: "ashrsgt_02_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_10" +4: "ashrsgt_02_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_11" +4: "ashrsgt_02_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_12" +4: "ashrsgt_02_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_13" +4: "ashrsgt_02_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_14" +4: "ashrsgt_02_14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_15" +4: "ashrsgt_02_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_00" +4: "ashrsgt_03_00" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_01" +4: "ashrsgt_03_01" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_02" +4: "ashrsgt_03_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_03" +4: "ashrsgt_03_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_04" +4: "ashrsgt_03_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_05" +4: "ashrsgt_03_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_06" +4: "ashrsgt_03_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_07" +4: "ashrsgt_03_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_08" +4: "ashrsgt_03_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_09" +4: "ashrsgt_03_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_10" +4: "ashrsgt_03_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_11" +4: "ashrsgt_03_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_12" +4: "ashrsgt_03_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_13" +4: "ashrsgt_03_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_14" +4: "ashrsgt_03_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_15" +4: "ashrsgt_03_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_00" +4: "ashrslt_01_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_01" +4: "ashrslt_01_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_02" +4: "ashrslt_01_02" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_03" +4: "ashrslt_01_03" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_04" +4: "ashrslt_01_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_05" +4: "ashrslt_01_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_06" +4: "ashrslt_01_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_07" +4: "ashrslt_01_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_08" +4: "ashrslt_01_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_09" +4: "ashrslt_01_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_10" +4: "ashrslt_01_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_11" +4: "ashrslt_01_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_12" +4: "ashrslt_01_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_13" +4: "ashrslt_01_13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_14" +4: "ashrslt_01_14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_15" +4: "ashrslt_01_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_00" +4: "ashrslt_02_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_01" +4: "ashrslt_02_01" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_02" +4: "ashrslt_02_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_03" +4: "ashrslt_02_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_04" +4: "ashrslt_02_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_05" +4: "ashrslt_02_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_06" +4: "ashrslt_02_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_07" +4: "ashrslt_02_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_08" +4: "ashrslt_02_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_09" +4: "ashrslt_02_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_10" +4: "ashrslt_02_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_11" +4: "ashrslt_02_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_12" +4: "ashrslt_02_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_13" +4: "ashrslt_02_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_14" +4: "ashrslt_02_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_15" +4: "ashrslt_02_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_00" +4: "ashrslt_03_00" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_01" +4: "ashrslt_03_01" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_02" +4: "ashrslt_03_02" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_03" +4: "ashrslt_03_03" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_04" +4: "ashrslt_03_04" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_05" +4: "ashrslt_03_05" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_06" +4: "ashrslt_03_06" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_07" +4: "ashrslt_03_07" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_08" +4: "ashrslt_03_08" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_09" +4: "ashrslt_03_09" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_10" +4: "ashrslt_03_10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_11" +4: "ashrslt_03_11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_12" +4: "ashrslt_03_12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_13" +4: "ashrslt_03_13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_14" +4: "ashrslt_03_14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_15" +4: "ashrslt_03_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_00_exact" +4: "lshrugt_01_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_01_exact" +4: "lshrugt_01_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_02_exact" +4: "lshrugt_01_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_03_exact" +4: "lshrugt_01_03_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_04_exact" +4: "lshrugt_01_04_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_05_exact" +4: "lshrugt_01_05_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_06_exact" +4: "lshrugt_01_06_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_07_exact" +4: "lshrugt_01_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_08_exact" +4: "lshrugt_01_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_09_exact" +4: "lshrugt_01_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_10_exact" +4: "lshrugt_01_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_11_exact" +4: "lshrugt_01_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_12_exact" +4: "lshrugt_01_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_13_exact" +4: "lshrugt_01_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_14_exact" +4: "lshrugt_01_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_01_15_exact" +4: "lshrugt_01_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_00_exact" +4: "lshrugt_02_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_01_exact" +4: "lshrugt_02_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_02_exact" +4: "lshrugt_02_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_03_exact" +4: "lshrugt_02_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_04_exact" +4: "lshrugt_02_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_05_exact" +4: "lshrugt_02_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_06_exact" +4: "lshrugt_02_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_07_exact" +4: "lshrugt_02_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_08_exact" +4: "lshrugt_02_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_09_exact" +4: "lshrugt_02_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_10_exact" +4: "lshrugt_02_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_11_exact" +4: "lshrugt_02_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_12_exact" +4: "lshrugt_02_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_13_exact" +4: "lshrugt_02_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_14_exact" +4: "lshrugt_02_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_02_15_exact" +4: "lshrugt_02_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_00_exact" +4: "lshrugt_03_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_01_exact" +4: "lshrugt_03_01_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_02_exact" +4: "lshrugt_03_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_03_exact" +4: "lshrugt_03_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_04_exact" +4: "lshrugt_03_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_05_exact" +4: "lshrugt_03_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_06_exact" +4: "lshrugt_03_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_07_exact" +4: "lshrugt_03_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_08_exact" +4: "lshrugt_03_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_09_exact" +4: "lshrugt_03_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_10_exact" +4: "lshrugt_03_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_11_exact" +4: "lshrugt_03_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_12_exact" +4: "lshrugt_03_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_13_exact" +4: "lshrugt_03_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_14_exact" +4: "lshrugt_03_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrugt_03_15_exact" +4: "lshrugt_03_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashr_eq_exact" +4: "ashr_eq_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ne_exact" +4: "ashr_ne_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_exact" +4: "ashr_ugt_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_uge_exact" +4: "ashr_uge_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_exact" +4: "ashr_ult_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ule_exact" +4: "ashr_ule_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sgt_exact" +4: "ashr_sgt_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sge_exact" +4: "ashr_sge_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_slt_exact" +4: "ashr_slt_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sle_exact" +4: "ashr_sle_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_eq_noexact" +4: "ashr_eq_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ne_noexact" +4: "ashr_ne_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_noexact" +4: "ashr_ugt_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_uge_noexact" +4: "ashr_uge_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_noexact" +4: "ashr_ult_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ule_noexact" +4: "ashr_ule_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sgt_noexact" +4: "ashr_sgt_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sge_noexact" +4: "ashr_sge_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_slt_noexact" +4: "ashr_slt_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sle_noexact" +4: "ashr_sle_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_00_00_ashr_extra_use" +4: "ashr_00_00_ashr_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_00_00_ashr_extra_use" has unsupported operation: llvm.store + +1: "ashr_00_00_vec" +4: "ashr_00_00_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_sgt_overflow" +4: "ashr_sgt_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_00_exact" +4: "lshrult_01_00_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_01_exact" +4: "lshrult_01_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_02_exact" +4: "lshrult_01_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_03_exact" +4: "lshrult_01_03_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_04_exact" +4: "lshrult_01_04_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_05_exact" +4: "lshrult_01_05_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_06_exact" +4: "lshrult_01_06_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_07_exact" +4: "lshrult_01_07_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_01_08_exact" +4: "lshrult_01_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_09_exact" +4: "lshrult_01_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_10_exact" +4: "lshrult_01_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_11_exact" +4: "lshrult_01_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_12_exact" +4: "lshrult_01_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_13_exact" +4: "lshrult_01_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_14_exact" +4: "lshrult_01_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_01_15_exact" +4: "lshrult_01_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_00_exact" +4: "lshrult_02_00_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_01_exact" +4: "lshrult_02_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_02_exact" +4: "lshrult_02_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_03_exact" +4: "lshrult_02_03_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_02_04_exact" +4: "lshrult_02_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_05_exact" +4: "lshrult_02_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_06_exact" +4: "lshrult_02_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_07_exact" +4: "lshrult_02_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_08_exact" +4: "lshrult_02_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_09_exact" +4: "lshrult_02_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_10_exact" +4: "lshrult_02_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_11_exact" +4: "lshrult_02_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_12_exact" +4: "lshrult_02_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_13_exact" +4: "lshrult_02_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_14_exact" +4: "lshrult_02_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_02_15_exact" +4: "lshrult_02_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_00_exact" +4: "lshrult_03_00_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_01_exact" +4: "lshrult_03_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshrult_03_02_exact" +4: "lshrult_03_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_03_exact" +4: "lshrult_03_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_04_exact" +4: "lshrult_03_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_05_exact" +4: "lshrult_03_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_06_exact" +4: "lshrult_03_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_07_exact" +4: "lshrult_03_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_08_exact" +4: "lshrult_03_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_09_exact" +4: "lshrult_03_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_10_exact" +4: "lshrult_03_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_11_exact" +4: "lshrult_03_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_12_exact" +4: "lshrult_03_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_13_exact" +4: "lshrult_03_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_14_exact" +4: "lshrult_03_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "lshrult_03_15_exact" +4: "lshrult_03_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_00_exact" +4: "ashrsgt_01_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_01_exact" +4: "ashrsgt_01_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_02_exact" +4: "ashrsgt_01_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_03_exact" +4: "ashrsgt_01_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_04_exact" +4: "ashrsgt_01_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_05_exact" +4: "ashrsgt_01_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_06_exact" +4: "ashrsgt_01_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_07_exact" +4: "ashrsgt_01_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_08_exact" +4: "ashrsgt_01_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_09_exact" +4: "ashrsgt_01_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_10_exact" +4: "ashrsgt_01_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_11_exact" +4: "ashrsgt_01_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_12_exact" +4: "ashrsgt_01_12_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_13_exact" +4: "ashrsgt_01_13_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_14_exact" +4: "ashrsgt_01_14_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_01_15_exact" +4: "ashrsgt_01_15_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_00_exact" +4: "ashrsgt_02_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_01_exact" +4: "ashrsgt_02_01_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_02_exact" +4: "ashrsgt_02_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_03_exact" +4: "ashrsgt_02_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_04_exact" +4: "ashrsgt_02_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_05_exact" +4: "ashrsgt_02_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_06_exact" +4: "ashrsgt_02_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_07_exact" +4: "ashrsgt_02_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_08_exact" +4: "ashrsgt_02_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_09_exact" +4: "ashrsgt_02_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_10_exact" +4: "ashrsgt_02_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_11_exact" +4: "ashrsgt_02_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_12_exact" +4: "ashrsgt_02_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_13_exact" +4: "ashrsgt_02_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_14_exact" +4: "ashrsgt_02_14_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_02_15_exact" +4: "ashrsgt_02_15_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_00_exact" +4: "ashrsgt_03_00_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_01_exact" +4: "ashrsgt_03_01_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_02_exact" +4: "ashrsgt_03_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_03_exact" +4: "ashrsgt_03_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_04_exact" +4: "ashrsgt_03_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_05_exact" +4: "ashrsgt_03_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_06_exact" +4: "ashrsgt_03_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_07_exact" +4: "ashrsgt_03_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_08_exact" +4: "ashrsgt_03_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_09_exact" +4: "ashrsgt_03_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_10_exact" +4: "ashrsgt_03_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_11_exact" +4: "ashrsgt_03_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_12_exact" +4: "ashrsgt_03_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_13_exact" +4: "ashrsgt_03_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_14_exact" +4: "ashrsgt_03_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrsgt_03_15_exact" +4: "ashrsgt_03_15_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_00_exact" +4: "ashrslt_01_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_01_exact" +4: "ashrslt_01_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_02_exact" +4: "ashrslt_01_02_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_03_exact" +4: "ashrslt_01_03_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_04_exact" +4: "ashrslt_01_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_05_exact" +4: "ashrslt_01_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_06_exact" +4: "ashrslt_01_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_07_exact" +4: "ashrslt_01_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_08_exact" +4: "ashrslt_01_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_09_exact" +4: "ashrslt_01_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_10_exact" +4: "ashrslt_01_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_11_exact" +4: "ashrslt_01_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_12_exact" +4: "ashrslt_01_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_13_exact" +4: "ashrslt_01_13_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_14_exact" +4: "ashrslt_01_14_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_01_15_exact" +4: "ashrslt_01_15_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_00_exact" +4: "ashrslt_02_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_01_exact" +4: "ashrslt_02_01_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_02_exact" +4: "ashrslt_02_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_03_exact" +4: "ashrslt_02_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_04_exact" +4: "ashrslt_02_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_05_exact" +4: "ashrslt_02_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_06_exact" +4: "ashrslt_02_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_07_exact" +4: "ashrslt_02_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_08_exact" +4: "ashrslt_02_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_09_exact" +4: "ashrslt_02_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_10_exact" +4: "ashrslt_02_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_11_exact" +4: "ashrslt_02_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_12_exact" +4: "ashrslt_02_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_13_exact" +4: "ashrslt_02_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_14_exact" +4: "ashrslt_02_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_02_15_exact" +4: "ashrslt_02_15_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_00_exact" +4: "ashrslt_03_00_exact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_01_exact" +4: "ashrslt_03_01_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_02_exact" +4: "ashrslt_03_02_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_03_exact" +4: "ashrslt_03_03_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_04_exact" +4: "ashrslt_03_04_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_05_exact" +4: "ashrslt_03_05_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_06_exact" +4: "ashrslt_03_06_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_07_exact" +4: "ashrslt_03_07_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_08_exact" +4: "ashrslt_03_08_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_09_exact" +4: "ashrslt_03_09_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_10_exact" +4: "ashrslt_03_10_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_11_exact" +4: "ashrslt_03_11_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_12_exact" +4: "ashrslt_03_12_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_13_exact" +4: "ashrslt_03_13_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_14_exact" +4: "ashrslt_03_14_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashrslt_03_15_exact" +4: "ashrslt_03_15_exact" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashr_slt_exact_near_pow2_cmpval" +4: "ashr_slt_exact_near_pow2_cmpval" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_exact_near_pow2_cmpval" +4: "ashr_ult_exact_near_pow2_cmpval" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negtest_near_pow2_cmpval_ashr_slt_noexact" +4: "negtest_near_pow2_cmpval_ashr_slt_noexact" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negtest_near_pow2_cmpval_ashr_wrong_cmp_pred" +4: "negtest_near_pow2_cmpval_ashr_wrong_cmp_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negtest_near_pow2_cmpval_isnt_close_to_pow2" +4: "negtest_near_pow2_cmpval_isnt_close_to_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negtest_near_pow2_cmpval_would_overflow_into_signbit" +4: "negtest_near_pow2_cmpval_would_overflow_into_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-shr.txt b/SSA/Projects/InstCombine/tests/logs/icmp-shr.txt new file mode 100644 index 000000000..bd886ba41 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-shr.txt @@ -0,0 +1,552 @@ +1: "use" +5: "use" is empty + +1: "lshr_eq_msb_low_last_zero" +4: "lshr_eq_msb_low_last_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_eq_msb_low_last_zero_vec" +4: "lshr_eq_msb_low_last_zero_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_eq_msb_low_second_zero" +4: "ashr_eq_msb_low_second_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_ne_msb_low_last_zero" +4: "lshr_ne_msb_low_last_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ne_msb_low_second_zero" +4: "ashr_ne_msb_low_second_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_eq_both_equal" +4: "ashr_eq_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ne_both_equal" +4: "ashr_ne_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_eq_both_equal" +4: "lshr_eq_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_ne_both_equal" +4: "lshr_ne_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_eq_both_equal" +4: "exact_ashr_eq_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_ne_both_equal" +4: "exact_ashr_ne_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_eq_both_equal" +4: "exact_lshr_eq_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_ne_both_equal" +4: "exact_lshr_ne_both_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_eq_opposite_msb" +4: "exact_lshr_eq_opposite_msb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_eq_opposite_msb" +4: "lshr_eq_opposite_msb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_ne_opposite_msb" +4: "exact_lshr_ne_opposite_msb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_ne_opposite_msb" +4: "lshr_ne_opposite_msb" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_eq" +4: "exact_ashr_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_ne" +4: "exact_ashr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_eq" +4: "exact_lshr_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_ne" +4: "exact_lshr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_eq" +4: "nonexact_ashr_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_ne" +4: "nonexact_ashr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_eq" +4: "nonexact_lshr_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_ne" +4: "nonexact_lshr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_eq_exactdiv" +4: "exact_lshr_eq_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_ne_exactdiv" +4: "exact_lshr_ne_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_eq_exactdiv" +4: "nonexact_lshr_eq_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_ne_exactdiv" +4: "nonexact_lshr_ne_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_eq_exactdiv" +4: "exact_ashr_eq_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_ashr_ne_exactdiv" +4: "exact_ashr_ne_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_eq_exactdiv" +4: "nonexact_ashr_eq_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_ne_exactdiv" +4: "nonexact_ashr_ne_exactdiv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exact_lshr_eq_noexactdiv" +4: "exact_lshr_eq_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "exact_lshr_ne_noexactdiv" +4: "exact_lshr_ne_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_eq_noexactdiv" +4: "nonexact_lshr_eq_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_ne_noexactdiv" +4: "nonexact_lshr_ne_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "exact_ashr_eq_noexactdiv" +4: "exact_ashr_eq_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "exact_ashr_ne_noexactdiv" +4: "exact_ashr_ne_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_eq_noexactdiv" +4: "nonexact_ashr_eq_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_ne_noexactdiv" +4: "nonexact_ashr_ne_noexactdiv" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_eq_noexactlog" +4: "nonexact_lshr_eq_noexactlog" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_lshr_ne_noexactlog" +4: "nonexact_lshr_ne_noexactlog" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_eq_noexactlog" +4: "nonexact_ashr_eq_noexactlog" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "nonexact_ashr_ne_noexactlog" +4: "nonexact_ashr_ne_noexactlog" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "PR20945" +4: "PR20945" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR21222" +4: "PR21222" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR24873" +4: "PR24873" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo" +5: "foo" is empty + +1: "exact_multiuse" +4: "exact_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "exact_multiuse" has unsupported operation: llvm.call + +1: "ashr_exact_eq_0" +4: "ashr_exact_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_exact_ne_0_uses" +4: "ashr_exact_ne_0_uses" has unsupported operation: llvm.call + +4: "ashr_exact_ne_0_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_exact_eq_0_vec" +4: "ashr_exact_eq_0_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_exact_ne_0" +4: "lshr_exact_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_exact_eq_0_uses" +4: "lshr_exact_eq_0_uses" has unsupported operation: llvm.call + +4: "lshr_exact_eq_0_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_exact_ne_0_vec" +4: "lshr_exact_ne_0_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_0" +4: "ashr_ugt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_0_multiuse" +4: "ashr_ugt_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_ugt_0_multiuse" has unsupported operation: llvm.store + +1: "ashr_ugt_1" +4: "ashr_ugt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_2" +4: "ashr_ugt_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_3" +4: "ashr_ugt_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_4" +4: "ashr_ugt_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_5" +4: "ashr_ugt_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_6" +4: "ashr_ugt_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_7" +4: "ashr_ugt_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_8" +4: "ashr_ugt_8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_9" +4: "ashr_ugt_9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_10" +4: "ashr_ugt_10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_11" +4: "ashr_ugt_11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_12" +4: "ashr_ugt_12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_13" +4: "ashr_ugt_13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_14" +4: "ashr_ugt_14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ugt_15" +4: "ashr_ugt_15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashr_ult_0" +4: "ashr_ult_0" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ashr_ult_1" +4: "ashr_ult_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_2" +4: "ashr_ult_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_2_multiuse" +4: "ashr_ult_2_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_ult_2_multiuse" has unsupported operation: llvm.store + +1: "ashr_ult_3" +4: "ashr_ult_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_4" +4: "ashr_ult_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_5" +4: "ashr_ult_5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_6" +4: "ashr_ult_6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_7" +4: "ashr_ult_7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_8" +4: "ashr_ult_8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_9" +4: "ashr_ult_9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_10" +4: "ashr_ult_10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_11" +4: "ashr_ult_11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_12" +4: "ashr_ult_12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_13" +4: "ashr_ult_13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_14" +4: "ashr_ult_14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ult_15" +4: "ashr_ult_15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_eq_0_multiuse" +4: "lshr_eq_0_multiuse" has unsupported operation: llvm.call + +4: "lshr_eq_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_ne_0_multiuse" +4: "lshr_ne_0_multiuse" has unsupported operation: llvm.call + +4: "lshr_ne_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_eq_0_multiuse" +4: "ashr_eq_0_multiuse" has unsupported operation: llvm.call + +4: "ashr_eq_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_ne_0_multiuse" +4: "ashr_ne_0_multiuse" has unsupported operation: llvm.call + +4: "ashr_ne_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_exact_eq_0_multiuse" +4: "lshr_exact_eq_0_multiuse" has unsupported operation: llvm.call + +4: "lshr_exact_eq_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_exact_ne_0_multiuse" +4: "lshr_exact_ne_0_multiuse" has unsupported operation: llvm.call + +4: "lshr_exact_ne_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_exact_eq_0_multiuse" +4: "ashr_exact_eq_0_multiuse" has unsupported operation: llvm.call + +4: "ashr_exact_eq_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_exact_ne_0_multiuse" +4: "ashr_exact_ne_0_multiuse" has unsupported operation: llvm.call + +4: "ashr_exact_ne_0_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ugt" +4: "lshr_pow2_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ugt_use" +4: "lshr_pow2_ugt_use" has unsupported operation: llvm.call + +4: "lshr_pow2_ugt_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ugt_vec" +4: "lshr_pow2_ugt_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_not_pow2_ugt" +4: "lshr_not_pow2_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ugt1" +4: "lshr_pow2_ugt1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_pow2_ugt" +4: "ashr_pow2_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_sgt" +4: "lshr_pow2_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ult" +4: "lshr_pow2_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ult_use" +4: "lshr_pow2_ult_use" has unsupported operation: llvm.call + +4: "lshr_pow2_ult_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ult_vec" +4: "lshr_pow2_ult_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_not_pow2_ult" +4: "lshr_not_pow2_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ult_equal_constants" +4: "lshr_pow2_ult_equal_constants" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_ult_smin" +4: "lshr_pow2_ult_smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ashr_pow2_ult" +4: "ashr_pow2_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_pow2_slt" +4: "lshr_pow2_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_sgt_minus_1" +4: "lshr_neg_sgt_minus_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_sgt_minus_1_vector" +4: "lshr_neg_sgt_minus_1_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_sgt_minus_1_extra_use" +4: "lshr_neg_sgt_minus_1_extra_use" has unsupported operation: llvm.call + +4: "lshr_neg_sgt_minus_1_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_sgt_minus_2" +4: "lshr_neg_sgt_minus_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_slt_minus_1" +4: "lshr_neg_slt_minus_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_slt_zero" +4: "lshr_neg_slt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_slt_zero_vector" +4: "lshr_neg_slt_zero_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_slt_zero_extra_use" +4: "lshr_neg_slt_zero_extra_use" has unsupported operation: llvm.call + +4: "lshr_neg_slt_zero_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_slt_non-zero" +4: "lshr_neg_slt_non-zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "lshr_neg_sgt_zero" +4: "lshr_neg_sgt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit" +4: "exactly_one_set_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_use1" +4: "exactly_one_set_signbit_use1" has unsupported operation: llvm.call + +4: "exactly_one_set_signbit_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit" +4: "same_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_use2" +4: "same_signbit_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_use2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "same_signbit_use2" has unsupported operation: llvm.call + +4: "same_signbit_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_use3" +4: "same_signbit_use3" has unsupported operation: llvm.call + +4: "same_signbit_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_use3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "same_signbit_use3" has unsupported operation: llvm.call + +4: "same_signbit_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_poison_elts" +4: "same_signbit_poison_elts" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_signbit_poison_elts" has unsupported operation: llvm.mlir.undef + +4: "same_signbit_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "same_signbit_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "same_signbit_poison_elts" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_poison_elts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_wrong_type" +4: "same_signbit_wrong_type" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_wrong_type" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_wrong_shamt" +4: "exactly_one_set_signbit_wrong_shamt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "exactly_one_set_signbit_wrong_shamt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "exactly_one_set_signbit_wrong_shamt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_wrong_shr" +4: "exactly_one_set_signbit_wrong_shr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "exactly_one_set_signbit_wrong_shr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "exactly_one_set_signbit_wrong_shr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_wrong_pred" +4: "exactly_one_set_signbit_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_signed" +4: "exactly_one_set_signbit_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_use1_signed" +4: "exactly_one_set_signbit_use1_signed" has unsupported operation: llvm.call + +4: "exactly_one_set_signbit_use1_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_signed" +4: "same_signbit_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_use2_signed" +4: "same_signbit_use2_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_use2_signed" has unsupported operation: builtin.unregistered: llvm.sext + +4: "same_signbit_use2_signed" has unsupported operation: llvm.call + +4: "same_signbit_use2_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_use3_signed" +4: "same_signbit_use3_signed" has unsupported operation: llvm.call + +4: "same_signbit_use3_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_use3_signed" has unsupported operation: builtin.unregistered: llvm.sext + +4: "same_signbit_use3_signed" has unsupported operation: llvm.call + +4: "same_signbit_use3_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_poison_elts_signed" +4: "same_signbit_poison_elts_signed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_signbit_poison_elts_signed" has unsupported operation: llvm.mlir.undef + +4: "same_signbit_poison_elts_signed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "same_signbit_poison_elts_signed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "same_signbit_poison_elts_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_poison_elts_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_signbit_wrong_type_signed" +4: "same_signbit_wrong_type_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_signbit_wrong_type_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "exactly_one_set_signbit_wrong_shamt_signed" +4: "exactly_one_set_signbit_wrong_shamt_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "exactly_one_set_signbit_wrong_shamt_signed" has unsupported operation: builtin.unregistered: llvm.sext + +4: "exactly_one_set_signbit_wrong_shamt_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_ult_i1" +4: "slt_zero_ult_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_ult_i1_fail1" +4: "slt_zero_ult_i1_fail1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "slt_zero_ult_i1_fail1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_ult_i1_fail2" +4: "slt_zero_ult_i1_fail2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "slt_zero_ult_i1_fail2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_slt_i1_fail" +4: "slt_zero_slt_i1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_i1_signed" +4: "slt_zero_eq_i1_signed" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_i1_fail_signed" +4: "slt_zero_eq_i1_fail_signed" has unsupported operation: builtin.unregistered: llvm.sext + +4: "slt_zero_eq_i1_fail_signed" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-signmask.txt b/SSA/Projects/InstCombine/tests/logs/icmp-signmask.txt new file mode 100644 index 000000000..0f01ac1b0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-signmask.txt @@ -0,0 +1,15 @@ +1: "cmp_x_and_negp2_with_eq" +4: "cmp_x_and_negp2_with_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_x_and_negp2_with_eq_fail_not_signmask" +4: "cmp_x_and_negp2_with_eq_fail_not_signmask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_x_and_negp2_with_ne" +4: "cmp_x_and_negp2_with_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_x_and_negp2_with_ne_or_z" +4: "cmp_x_and_negp2_with_ne_or_z" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_x_and_negp2_with_ne_fail_not_p2" +4: "cmp_x_and_negp2_with_ne_fail_not_p2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-sub.txt b/SSA/Projects/InstCombine/tests/logs/icmp-sub.txt new file mode 100644 index 000000000..d83be3527 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-sub.txt @@ -0,0 +1,221 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test_nuw_and_unsigned_pred" +4: "test_nuw_and_unsigned_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_nsw_and_signed_pred" +4: "test_nsw_and_signed_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_nuw_nsw_and_unsigned_pred" +4: "test_nuw_nsw_and_unsigned_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_nuw_nsw_and_signed_pred" +4: "test_nuw_nsw_and_signed_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_negative_nuw_and_signed_pred" +4: "test_negative_nuw_and_signed_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_negative_nsw_and_unsigned_pred" +4: "test_negative_nsw_and_unsigned_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_negative_combined_sub_unsigned_overflow" +4: "test_negative_combined_sub_unsigned_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_negative_combined_sub_signed_overflow" +4: "test_negative_combined_sub_signed_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_sub_0_Y_eq_0" +4: "test_sub_0_Y_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sub_0_Y_ne_0" +4: "test_sub_0_Y_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sub_4_Y_ne_4" +4: "test_sub_4_Y_ne_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sub_127_Y_eq_127" +4: "test_sub_127_Y_eq_127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sub_255_Y_eq_255" +4: "test_sub_255_Y_eq_255" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_sub_255_Y_eq_255_vec" +4: "test_sub_255_Y_eq_255_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sub_undef" +4: "icmp_eq_sub_undef" has unsupported operation: llvm.mlir.undef + +4: "icmp_eq_sub_undef" has unsupported operation: llvm.mlir.undef + +4: "icmp_eq_sub_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_sub_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_sub_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sub_non_splat" +4: "icmp_eq_sub_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sub_undef2" +4: "icmp_eq_sub_undef2" has unsupported operation: llvm.mlir.undef + +4: "icmp_eq_sub_undef2" has unsupported operation: llvm.mlir.undef + +4: "icmp_eq_sub_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_sub_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "icmp_eq_sub_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_sub_non_splat2" +4: "icmp_eq_sub_non_splat2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_sgt_42" +4: "neg_sgt_42" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_eq_43" +4: "neg_eq_43" has unsupported operation: llvm.call + +4: "neg_eq_43" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_ne_44" +4: "neg_ne_44" has unsupported operation: llvm.call + +4: "neg_ne_44" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_eq_45" +4: "neg_nsw_eq_45" has unsupported operation: llvm.call + +4: "neg_nsw_eq_45" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_ne_46" +4: "neg_nsw_ne_46" has unsupported operation: llvm.call + +4: "neg_nsw_ne_46" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "subC_eq" +4: "subC_eq" has unsupported operation: llvm.call + +4: "subC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "subC_ne" +4: "subC_ne" has unsupported operation: llvm.call + +4: "subC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "subC_nsw_eq" +4: "subC_nsw_eq" has unsupported operation: llvm.call + +4: "subC_nsw_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "subC_nsw_ne" +4: "subC_nsw_ne" has unsupported operation: llvm.call + +4: "subC_nsw_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_slt_42" +4: "neg_slt_42" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_ugt_42_splat" +4: "neg_ugt_42_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_sgt_42_use" +4: "neg_sgt_42_use" has unsupported operation: llvm.call + +4: "neg_sgt_42_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_slt_n1" +4: "neg_slt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_slt_0" +4: "neg_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_slt_1" +4: "neg_slt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_sgt_n1" +4: "neg_sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_sgt_0" +4: "neg_sgt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_sgt_1" +4: "neg_sgt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_slt_n1" +4: "neg_nsw_slt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_slt_0" +4: "neg_nsw_slt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_slt_1" +4: "neg_nsw_slt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_sgt_n1" +4: "neg_nsw_sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_sgt_0" +4: "neg_nsw_sgt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "neg_nsw_sgt_1" +4: "neg_nsw_sgt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq_zero_use" +4: "sub_eq_zero_use" has unsupported operation: llvm.call + +4: "sub_eq_zero_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ne_zero_use" +4: "sub_ne_zero_use" has unsupported operation: llvm.call + +4: "sub_ne_zero_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq_zero_select" +4: "sub_eq_zero_select" has unsupported operation: llvm.store + +1: "PR54558_reduced" +4: "PR54558_reduced" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR54558_reduced" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "PR54558_reduced" has unsupported operation: llvm.call + +4: "PR54558_reduced" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR54558_reduced" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR54558_reduced" has unsupported operation: llvm.return + +1: "PR54558_reduced_more" +4: "PR54558_reduced_more" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR54558_reduced_more" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR54558_reduced_more" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR54558_reduced_more" has unsupported operation: llvm.return + +1: "PR60818_ne" +4: "PR60818_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR60818_eq" +4: "PR60818_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR60818_eq_commuted" +4: "PR60818_eq_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR60818_ne_vector" +4: "PR60818_ne_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR60818_eq_multi_use" +4: "PR60818_eq_multi_use" has unsupported operation: llvm.call + +4: "PR60818_eq_multi_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR60818_sgt" +4: "PR60818_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-topbitssame.txt b/SSA/Projects/InstCombine/tests/logs/icmp-topbitssame.txt new file mode 100644 index 000000000..27fda918a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-topbitssame.txt @@ -0,0 +1,77 @@ +1: "use" +5: "use" is empty + +1: "use16" +5: "use16" is empty + +1: "testi16i8" +4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi16i8_com" +4: "testi16i8_com" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi16i8_ne" +4: "testi16i8_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi16i8_ne_com" +4: "testi16i8_ne_com" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi64i32" +4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi64i32_ne" +4: "testi64i32_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "testi32i8" +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "wrongimm1" +4: "wrongimm1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrongimm1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrongimm1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "wrongimm2" +4: "wrongimm2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrongimm2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrongimm2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt" +4: "slt" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "slt" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extrause_a" +4: "extrause_a" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "extrause_a" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "extrause_a" has unsupported operation: llvm.call + +1: "extrause_l" +4: "extrause_l" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "extrause_l" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "extrause_l" has unsupported operation: llvm.call + +1: "extrause_la" +4: "extrause_la" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "extrause_la" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "extrause_la" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "extrause_la" has unsupported operation: llvm.call + +4: "extrause_la" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-trunc.txt b/SSA/Projects/InstCombine/tests/logs/icmp-trunc.txt new file mode 100644 index 000000000..34201947b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-trunc.txt @@ -0,0 +1,304 @@ +1: "use" +5: "use" is empty + +1: "ult_2" +4: "ult_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_16_splat" +4: "ult_16_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_3" +4: "ult_3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ult_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_2_use" +4: "ult_2_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ult_2_use" has unsupported operation: llvm.call + +4: "ult_2_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR52260" +4: "PR52260" has unsupported operation after optimization: llvm.mlir.addressof + +4: "PR52260" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "PR52260" has unsupported operation after optimization: llvm.getelementptr + +4: "PR52260" has unsupported operation after optimization: llvm.load + +4: "PR52260" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "PR52260" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_192" +4: "ult_192" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_2044_splat" +4: "ult_2044_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_96" +4: "ult_96" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ult_96" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_192_use" +4: "ult_192_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ult_192_use" has unsupported operation: llvm.call + +4: "ult_192_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_3" +4: "ugt_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_7_splat" +4: "ugt_7_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_4" +4: "ugt_4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ugt_4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_3_use" +4: "ugt_3_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ugt_3_use" has unsupported operation: llvm.call + +4: "ugt_3_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_253" +4: "ugt_253" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_2043_splat" +4: "ugt_2043_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_252" +4: "ugt_252" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ugt_252" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_253_use" +4: "ugt_253_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ugt_253_use" has unsupported operation: llvm.call + +4: "ugt_253_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_0" +4: "slt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_0_splat" +4: "slt_0_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_1" +4: "slt_1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "slt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_0_use" +4: "slt_0_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "slt_0_use" has unsupported operation: llvm.call + +4: "slt_0_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_n1" +4: "sgt_n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_n1_splat" +4: "sgt_n1_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_0" +4: "sgt_0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sgt_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_n1_use" +4: "sgt_n1_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sgt_n1_use" has unsupported operation: llvm.call + +4: "sgt_n1_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_eq_i32_i8" +4: "trunc_eq_i32_i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_eq_i32_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_eq_v2i32_v2i8" +4: "trunc_eq_v2i32_v2i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_eq_v2i32_v2i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_ne_i64_i10" +4: "trunc_ne_i64_i10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ne_i64_i10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_eq0" +4: "shl1_trunc_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_ne0" +4: "shl1_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_eq0_use1" +4: "shl1_trunc_eq0_use1" has unsupported operation: llvm.call + +4: "shl1_trunc_eq0_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_ne0_use2" +4: "shl1_trunc_ne0_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl1_trunc_ne0_use2" has unsupported operation: llvm.call + +4: "shl1_trunc_ne0_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl2_trunc_eq0" +4: "shl2_trunc_eq0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl2_trunc_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl2_trunc_ne0" +4: "shl2_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl2_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl3_trunc_eq0" +4: "shl3_trunc_eq0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl3_trunc_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl4_trunc_ne0" +4: "shl4_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl4_trunc_ne0" has unsupported operation: llvm.mlir.undef + +4: "shl4_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl4_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl4_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl4_trunc_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_sgt0" +4: "shl1_trunc_sgt0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl1_trunc_sgt0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_eq1" +4: "shl1_trunc_eq1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl1_trunc_eq1" has unsupported operation: llvm.call + +4: "shl1_trunc_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_ne32" +4: "shl1_trunc_ne32" has unsupported operation: llvm.call + +4: "shl1_trunc_ne32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl2_trunc_eq8_i32" +4: "shl2_trunc_eq8_i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl2_trunc_eq8_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl2_trunc_ne8_i32" +4: "shl2_trunc_ne8_i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl2_trunc_ne8_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shl1_trunc_sgt4" +4: "shl1_trunc_sgt4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl1_trunc_sgt4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_nuw" +4: "eq_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "eq_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_nuw" +4: "ult_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ult_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_nuw" +4: "ule_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ule_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_nuw" has unsupported operation: llvm.call + +1: "ugt_nuw" +4: "ugt_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ugt_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_nuw" +4: "uge_nuw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "uge_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_nuw" has unsupported operation: llvm.call + +1: "uge_nuw_i48" +4: "uge_nuw_i48" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "uge_nuw_i48" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_nuw_i48" has unsupported operation: llvm.call + +1: "sgt_nuw_fail" +4: "sgt_nuw_fail" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sgt_nuw_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_nsw" +4: "ne_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ne_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_nsw" +4: "slt_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "slt_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_nsw" +4: "sle_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sle_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_nsw" has unsupported operation: llvm.call + +1: "sgt_nsw" +4: "sgt_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sgt_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_nsw" +4: "sge_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sge_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_nsw" has unsupported operation: llvm.call + +1: "sge_nsw_i48" +4: "sge_nsw_i48" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sge_nsw_i48" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_nsw_i48" has unsupported operation: llvm.call + +1: "uge_nsw" +4: "uge_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "uge_nsw" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_nsw_non_splat" +4: "uge_nsw_non_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "uge_nsw_non_splat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-uadd-sat.txt b/SSA/Projects/InstCombine/tests/logs/icmp-uadd-sat.txt new file mode 100644 index 000000000..ea28b6607 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-uadd-sat.txt @@ -0,0 +1,82 @@ +1: "icmp_eq_basic" +4: "icmp_eq_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_basic" +4: "icmp_ne_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_basic" +4: "icmp_ule_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_basic" +4: "icmp_ult_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_basic" +4: "icmp_uge_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_basic" +4: "icmp_ugt_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_basic" +4: "icmp_sle_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_basic" +4: "icmp_slt_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_basic" +4: "icmp_sge_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_basic" +4: "icmp_sgt_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_multiuse" +4: "icmp_eq_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_eq_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_multiuse" has unsupported operation: llvm.call + +1: "icmp_eq_vector_equal" +4: "icmp_eq_vector_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_unequal" +4: "icmp_eq_vector_unequal" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_eq_vector_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_vector_equal" +4: "icmp_ne_vector_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_vector_unequal" +4: "icmp_ne_vector_unequal" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_ne_vector_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_vector_equal" +4: "icmp_ule_vector_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_vector_unequal" +4: "icmp_ule_vector_unequal" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_ule_vector_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_vector_equal" +4: "icmp_sgt_vector_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_vector_unequal" +4: "icmp_sgt_vector_unequal" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_sgt_vector_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_multiuse_equal" +4: "icmp_eq_vector_multiuse_equal" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "icmp_eq_vector_multiuse_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_vector_multiuse_equal" has unsupported operation: llvm.call + +1: "use.i8" +5: "use.i8" is empty + +1: "use.v2i8" +5: "use.v2i8" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..229edec31 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,125 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_undef0" +4: "p2_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: llvm.call + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison1" +4: "p2_vec_poison1" has unsupported operation: llvm.call + +4: "p2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison2" +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: llvm.call + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: llvm.call + +4: "both" has unsupported operation: llvm.call + +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse" +4: "oneuse" has unsupported operation: llvm.call + +4: "oneuse" has unsupported operation: llvm.call + +4: "oneuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2_vec_nonsplat" +4: "n2_vec_nonsplat" has unsupported operation: llvm.call + +4: "n2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: llvm.call + +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..962f9f6c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-uge-of-not-of-shl-allones-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,66 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison1" +4: "p2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison2" +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2_vec_nonsplat" +4: "n2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..ed0a15b38 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ugt-of-shl-1-by-bits-and-val-to-icmp-eq-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,42 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison" +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1_vec_nonsplat" +4: "n1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..ed0a15b38 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ule-of-shl-1-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,42 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison" +4: "p2_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1_vec_nonsplat" +4: "n1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..229edec31 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-add-of-shl-one-by-bits-to-allones-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,125 @@ +1: "use8" +5: "use8" is empty + +1: "use2i8" +5: "use2i8" is empty + +1: "use3i8" +5: "use3i8" is empty + +1: "p0" +4: "p0" has unsupported operation: llvm.call + +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: llvm.call + +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_undef0" +4: "p2_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_undef0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_undef0" has unsupported operation: llvm.call + +4: "p2_vec_undef0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison0" has unsupported operation: llvm.call + +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison1" +4: "p2_vec_poison1" has unsupported operation: llvm.call + +4: "p2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison2" +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p2_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p2_vec_poison2" has unsupported operation: llvm.call + +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: llvm.call + +4: "both" has unsupported operation: llvm.call + +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse" +4: "oneuse" has unsupported operation: llvm.call + +4: "oneuse" has unsupported operation: llvm.call + +4: "oneuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: llvm.call + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2_vec_nonsplat" +4: "n2_vec_nonsplat" has unsupported operation: llvm.call + +4: "n2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: llvm.call + +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt b/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt new file mode 100644 index 000000000..962f9f6c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-ult-of-not-of-shl-allones-by-bits-and-val-to-icmp-ne-of-lshr-val-by-bits-and-0.txt @@ -0,0 +1,66 @@ +1: "p0" +4: "p0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_vec" +4: "p1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison0" +4: "p2_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison1" +4: "p2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_vec_poison2" +4: "p2_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "c0" +4: "c0" has unsupported operation: llvm.call + +4: "c0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "both" +4: "both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "oneuse0" +4: "oneuse0" has unsupported operation: llvm.call + +4: "oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse1" +4: "oneuse1" has unsupported operation: llvm.call + +4: "oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse2" +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: llvm.call + +4: "oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2_vec_nonsplat" +4: "n2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_vec_nonsplat" +4: "n3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +4: "n3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: llvm.call + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-usub-sat.txt b/SSA/Projects/InstCombine/tests/logs/icmp-usub-sat.txt new file mode 100644 index 000000000..078fe652e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-usub-sat.txt @@ -0,0 +1,134 @@ +1: "icmp_eq_basic_positive" +4: "icmp_eq_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_basic_positive" +4: "icmp_ne_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_basic_positive" +4: "icmp_ule_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_basic_positive" +4: "icmp_ult_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_basic_positive" +4: "icmp_uge_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_basic_positive" +4: "icmp_ugt_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_basic_positive" +4: "icmp_sle_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_basic_positive" +4: "icmp_slt_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_basic_positive" +4: "icmp_sge_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_basic_positive" +4: "icmp_sgt_basic_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_basic_negative" +4: "icmp_eq_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_basic_negative" +4: "icmp_ne_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_basic_negative" +4: "icmp_ule_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ult_basic_negative" +4: "icmp_ult_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_uge_basic_negative" +4: "icmp_uge_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt_basic_negative" +4: "icmp_ugt_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle_basic_negative" +4: "icmp_sle_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt_basic_negative" +4: "icmp_slt_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge_basic_negative" +4: "icmp_sge_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_basic_negative" +4: "icmp_sgt_basic_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_multiuse_positive" +4: "icmp_eq_multiuse_positive" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_multiuse_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_multiuse_positive" has unsupported operation: llvm.call + +1: "icmp_eq_multiuse_negative" +4: "icmp_eq_multiuse_negative" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_multiuse_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_multiuse_negative" has unsupported operation: llvm.call + +1: "icmp_eq_vector_positive_equal" +4: "icmp_eq_vector_positive_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_positive_unequal" +4: "icmp_eq_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_vector_positive_equal" +4: "icmp_ne_vector_positive_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne_vector_positive_unequal" +4: "icmp_ne_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_ne_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_vector_positive_equal" +4: "icmp_ule_vector_positive_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ule_vector_positive_unequal" +4: "icmp_ule_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_ule_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_vector_positive_equal" +4: "icmp_sgt_vector_positive_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt_vector_positive_unequal" +4: "icmp_sgt_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_sgt_vector_positive_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_negative_equal" +4: "icmp_eq_vector_negative_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_negative_unequal" +4: "icmp_eq_vector_negative_unequal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_vector_negative_unequal" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq_vector_multiuse_positive_equal" +4: "icmp_eq_vector_multiuse_positive_equal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_vector_multiuse_positive_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_vector_multiuse_positive_equal" has unsupported operation: llvm.call + +1: "icmp_eq_vector_multiuse_negative_equal" +4: "icmp_eq_vector_multiuse_negative_equal" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "icmp_eq_vector_multiuse_negative_equal" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp_eq_vector_multiuse_negative_equal" has unsupported operation: llvm.call + +1: "use.i8" +5: "use.i8" is empty + +1: "use.v2i8" +5: "use.v2i8" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt new file mode 100644 index 000000000..c6f6cb248 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-vec-inseltpoison.txt @@ -0,0 +1,179 @@ +1: "sge" +4: "sge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge" +4: "uge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle" +4: "sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule" +4: "ule" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_min_signed_value" +4: "ult_min_signed_value" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_zero" +4: "sge_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_zero" +"uge_zero" contains vectors which are unsupported + +1: "sle_zero" +4: "sle_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_zero" +4: "ule_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_weird" +4: "sge_weird" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_weird" +4: "uge_weird" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_weird" +4: "sle_weird" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_weird" +4: "ule_weird" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_min" +4: "sge_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_min" +4: "uge_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_max" +4: "sle_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_max" +4: "ule_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR27756_1" +4: "PR27756_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR27756_2" +4: "PR27756_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR27756_3" +4: "PR27756_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR27786" +4: "PR27786" has unsupported operation: llvm.mlir.addressof + +4: "PR27786" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "PR27786" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "PR27786" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "same_shuffle_inputs_icmp" +4: "same_shuffle_inputs_icmp" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_shuffle_inputs_icmp" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "same_shuffle_inputs_fcmp" +4: "same_shuffle_inputs_fcmp" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "same_shuffle_inputs_fcmp" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use_v4i8" +5: "use_v4i8" is empty + +1: "same_shuffle_inputs_icmp_extra_use1" +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use1" has unsupported operation: llvm.call + +1: "use_v2i8" +5: "use_v2i8" is empty + +1: "same_shuffle_inputs_icmp_extra_use2" +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use2" has unsupported operation: llvm.call + +1: "same_shuffle_inputs_icmp_extra_use3" +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: llvm.call + +4: "same_shuffle_inputs_icmp_extra_use3" has unsupported operation: llvm.call + +1: "splat_icmp" +4: "splat_icmp" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "splat_icmp" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_icmp_poison" +4: "splat_icmp_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_icmp_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "splat_icmp_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_icmp_larger_size" +4: "splat_icmp_larger_size" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_icmp_larger_size" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "splat_icmp_larger_size" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_fcmp_smaller_size" +4: "splat_fcmp_smaller_size" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_fcmp_smaller_size" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "splat_fcmp_smaller_size" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_icmp_extra_use" +4: "splat_icmp_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_icmp_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_icmp_extra_use" has unsupported operation: llvm.call + +4: "splat_icmp_extra_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_splat_icmp" +4: "not_splat_icmp" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "not_splat_icmp" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "not_splat_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_splat_icmp2" +4: "not_splat_icmp2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "not_splat_icmp2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "not_splat_icmp2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-vec.txt b/SSA/Projects/InstCombine/tests/logs/icmp-vec.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/icmp-vscale.txt b/SSA/Projects/InstCombine/tests/logs/icmp-vscale.txt new file mode 100644 index 000000000..c14ba8cf6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-vscale.txt @@ -0,0 +1,90 @@ +1: "ugt_vscale64_x_32" +4: "ugt_vscale64_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ugt_vscale64_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_vscale64_x_31" +4: "ugt_vscale64_x_31" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ugt_vscale64_x_31" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ugt_vscale16_x_32" +4: "ugt_vscale16_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ugt_vscale16_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ult_vscale16" +4: "ult_vscale16" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ult_vscale16" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ule_vscale64" +4: "ule_vscale64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ule_vscale64" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ueq_vscale64_range4_4" +4: "ueq_vscale64_range4_4" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ueq_vscale64_range4_4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "ne_vscale64_x_32" +4: "ne_vscale64_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "ne_vscale64_x_32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ule_max" +4: "vscale_ule_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ule_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ult_max" +4: "vscale_ult_max" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ult_max" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vscale_uge_min" +4: "vscale_uge_min" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_uge_min" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ugt_min" +4: "vscale_ugt_min" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ugt_min" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vscale_uge_no_max" +4: "vscale_uge_no_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_uge_no_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ugt_no_max" +4: "vscale_ugt_no_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ugt_no_max" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_uge_max_overflow" +4: "vscale_uge_max_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_uge_max_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ugt_max_overflow" +4: "vscale_ugt_max_overflow" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ugt_max_overflow" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vscale_eq_min_overflow" +4: "vscale_eq_min_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_eq_min_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ult_min_overflow" +4: "vscale_ult_min_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ult_min_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "vscale_ugt_min_overflow" +4: "vscale_ugt_min_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ugt_min_overflow" has unsupported operation after optimization: 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 new file mode 100644 index 000000000..342405b3f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-with-selects.txt @@ -0,0 +1,78 @@ +1: "use" +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 + +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 new file mode 100644 index 000000000..1af5d129d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp-xor-signbit.txt @@ -0,0 +1,94 @@ +1: "slt_to_ult" +4: "slt_to_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_to_ult_splat" +4: "slt_to_ult_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_to_slt" +4: "ult_to_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_to_slt_splat" +4: "ult_to_slt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_to_ugt" +4: "slt_to_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_to_ugt_splat" +4: "slt_to_ugt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_to_sgt" +4: "ult_to_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_to_sgt_splat" +4: "ult_to_sgt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_to_ugt" +4: "sge_to_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_to_ugt_splat" +4: "sge_to_ugt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_to_sgt" +4: "uge_to_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_to_sgt_splat" +4: "uge_to_sgt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_to_ult" +4: "sge_to_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_to_ult_splat" +4: "sge_to_ult_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_to_slt" +4: "uge_to_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_to_slt_splat" +4: "uge_to_slt_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_to_ugt_bitcasted_splat" +4: "sgt_to_ugt_bitcasted_splat" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "sgt_to_ugt_bitcasted_splat" has unsupported operation: builtin.unregistered: llvm.bitcast + +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 + +1: "slt_zero_eq_i1" +4: "slt_zero_eq_i1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_i1_fail" +4: "slt_zero_eq_i1_fail" has unsupported operation: builtin.unregistered: llvm.zext + +4: "slt_zero_eq_i1_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_ne_0" +4: "slt_zero_eq_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_ne_ne_0" +4: "slt_zero_ne_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_ne_0_vec" +4: "slt_zero_eq_ne_0_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_ne_ne_b" +4: "slt_zero_ne_ne_b" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_zero_ne_ne_b" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_ne_0_fail1" +4: "slt_zero_eq_ne_0_fail1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_zero_eq_ne_0_fail1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "slt_zero_eq_ne_0_fail1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_eq_ne_0_fail2" +4: "slt_zero_eq_ne_0_fail2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_zero_eq_ne_0_fail2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "slt_zero_eq_ne_0_fail2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp.txt b/SSA/Projects/InstCombine/tests/logs/icmp.txt new file mode 100644 index 000000000..c2f2c50fc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp.txt @@ -0,0 +1,2 @@ +3: icmp.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/icmp_sdiv_with_and_without_range.txt b/SSA/Projects/InstCombine/tests/logs/icmp_sdiv_with_and_without_range.txt new file mode 100644 index 000000000..9ce85a81f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/icmp_sdiv_with_and_without_range.txt @@ -0,0 +1,10 @@ +1: "without_range" +4: "without_range" has unsupported operation: llvm.load + +4: "without_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "with_range" +4: "with_range" has unsupported operation: llvm.load + +4: "with_range" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/idioms.txt b/SSA/Projects/InstCombine/tests/logs/idioms.txt new file mode 100644 index 000000000..5ce7d15b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/idioms.txt @@ -0,0 +1,9 @@ +1: "test_asr" +4: "test_asr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_asr" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_asr" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_asr" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/implies.txt b/SSA/Projects/InstCombine/tests/logs/implies.txt new file mode 100644 index 000000000..a78cdfdbe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/implies.txt @@ -0,0 +1,118 @@ +1: "or_implies_sle" +4: "or_implies_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_implies_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "or_implies_sle_fail" +4: "or_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_distjoint_implies_ule" +4: "or_distjoint_implies_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_distjoint_implies_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "or_distjoint_implies_ule_fail" +4: "or_distjoint_implies_ule_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_distjoint_implies_ule_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_distjoint_implies_ule_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_prove_distjoin_implies_ule" +4: "or_prove_distjoin_implies_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_prove_distjoin_implies_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_or_distjoint_implies_sle" +4: "src_or_distjoint_implies_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_or_distjoint_implies_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_or_distjoint_implies_sle_fail" +4: "src_or_distjoint_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_or_distjoint_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "src_or_distjoint_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_addnsw_implies_sle" +4: "src_addnsw_implies_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_addnsw_implies_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_addnsw_implies_sle_fail" +4: "src_addnsw_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_addnsw_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "src_addnsw_implies_sle_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_and_implies_ult" +4: "src_and_implies_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_and_implies_ult" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_and_implies_ult_fail" +4: "src_and_implies_ult_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_and_implies_ult_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "src_and_implies_ult_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_and_implies_slt_fail" +4: "src_and_implies_slt_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_and_implies_slt_fail" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "src_and_implies_slt_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_or_implies_ule" +4: "src_or_implies_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_or_implies_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_or_implies_false_ugt_todo" +4: "src_or_implies_false_ugt_todo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_or_implies_false_ugt_todo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "src_or_implies_false_ugt_todo" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "src_udiv_implies_ult" +4: "src_udiv_implies_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_udiv_implies_ult" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_udiv_implies_ult2" +4: "src_udiv_implies_ult2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_udiv_implies_ult2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_smin_implies_sle" +4: "src_smin_implies_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_smin_implies_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_umin_implies_ule" +4: "src_umin_implies_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_umin_implies_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_umax_implies_ule" +4: "src_umax_implies_ule" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "src_umax_implies_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_umax_implies_ule" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "src_smax_implies_sle" +4: "src_smax_implies_sle" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "src_smax_implies_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "src_smax_implies_sle" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/inbounds-gep.txt b/SSA/Projects/InstCombine/tests/logs/inbounds-gep.txt new file mode 100644 index 000000000..d83ad12f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/inbounds-gep.txt @@ -0,0 +1,77 @@ +1: "g" +5: "g" is empty + +1: "use" +5: "use" is empty + +1: "call1" +4: "call1" has unsupported operation: llvm.mlir.addressof + +4: "call1" has unsupported operation: llvm.call + +4: "call1" has unsupported operation: llvm.getelementptr + +4: "call1" has unsupported operation: llvm.call + +4: "call1" has unsupported operation: llvm.return + +1: "call2" +4: "call2" has unsupported operation: llvm.mlir.addressof + +4: "call2" has unsupported operation: llvm.call + +4: "call2" has unsupported operation: llvm.getelementptr + +4: "call2" has unsupported operation: llvm.call + +4: "call2" has unsupported operation: llvm.return + +1: "call3" +4: "call3" has unsupported operation: llvm.mlir.addressof + +4: "call3" has unsupported operation: llvm.call + +4: "call3" has unsupported operation: llvm.getelementptr + +4: "call3" has unsupported operation: llvm.call + +4: "call3" has unsupported operation: llvm.return + +1: "alloca" +4: "alloca" has unsupported operation: llvm.mlir.addressof + +4: "alloca" has unsupported operation: llvm.alloca + +4: "alloca" has unsupported operation: llvm.getelementptr + +4: "alloca" has unsupported operation: llvm.call + +4: "alloca" has unsupported operation: llvm.return + +1: "arg1" +4: "arg1" has unsupported operation: llvm.mlir.addressof + +4: "arg1" has unsupported operation: llvm.getelementptr + +4: "arg1" has unsupported operation: llvm.call + +4: "arg1" has unsupported operation: llvm.return + +1: "arg2" +4: "arg2" has unsupported operation: llvm.mlir.addressof + +4: "arg2" has unsupported operation: llvm.getelementptr + +4: "arg2" has unsupported operation: llvm.call + +4: "arg2" has unsupported operation: llvm.return + +1: "arg3" +4: "arg3" has unsupported operation: llvm.mlir.addressof + +4: "arg3" has unsupported operation: llvm.getelementptr + +4: "arg3" has unsupported operation: llvm.call + +4: "arg3" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/indexed-gep-compares.txt b/SSA/Projects/InstCombine/tests/logs/indexed-gep-compares.txt new file mode 100644 index 000000000..9b467e4e0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/indexed-gep-compares.txt @@ -0,0 +1,172 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.getelementptr + +1: "test1_nuw" +4: "test1_nuw" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1_nuw" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_nuw" has unsupported operation: llvm.getelementptr + +1: "test1_not_all_nuw" +4: "test1_not_all_nuw" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1_not_all_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1_not_all_nuw" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_not_all_nuw" has unsupported operation: llvm.getelementptr + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.inttoptr + +4: "test2" has unsupported operation: llvm.getelementptr + +1: "test3_no_inbounds1" +4: "test3_no_inbounds1" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3_no_inbounds1" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds1" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3_no_inbounds1" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test3_no_inbounds2" +4: "test3_no_inbounds2" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3_no_inbounds2" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds2" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3_no_inbounds2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test3_no_inbounds3" +4: "test3_no_inbounds3" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3_no_inbounds3" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds3" has unsupported operation: llvm.getelementptr + +4: "test3_no_inbounds3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3_no_inbounds3" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test4" has unsupported operation: llvm.inttoptr + +4: "test4" has unsupported operation: llvm.getelementptr + +1: "fun_ptr" +5: "fun_ptr" is empty + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.zero + +4: "test5" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: llvm.getelementptr + +4: "test5" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "fun_i32" +5: "fun_i32" is empty + +1: "test6" +4: "test6" has unsupported operation: llvm.mlir.zero + +4: "test6" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: llvm.inttoptr + +4: "test6" has unsupported operation: llvm.getelementptr + +4: "test6" has unsupported operation: builtin.unregistered: llvm.landingpad + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.br + +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "test8" +4: "test8" has unsupported operation: llvm.load + +4: "test8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test8" has unsupported operation: llvm.inttoptr + +4: "test8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test8" has unsupported operation: llvm.getelementptr + +4: "test8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test8" has unsupported operation: llvm.inttoptr + +4: "test8" has unsupported operation: llvm.getelementptr + +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_zero_offset_cycle" +4: "test_zero_offset_cycle" has unsupported operation: llvm.getelementptr + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_zero_offset_cycle" has unsupported operation: llvm.inttoptr + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_zero_offset_cycle" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/infinite-loop-postdom.txt b/SSA/Projects/InstCombine/tests/logs/infinite-loop-postdom.txt new file mode 100644 index 000000000..e78318f3d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/infinite-loop-postdom.txt @@ -0,0 +1,90 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +1: "test1-canonicalized" +4: "test1-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1-canonicalized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1-canonicalized" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +1: "test2-canonicalized" +4: "test2-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2-canonicalized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2-canonicalized" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: llvm.return + +1: "test3-canonicalized" +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3-canonicalized" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3-canonicalized" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/inline-intrinsic-assert.txt b/SSA/Projects/InstCombine/tests/logs/inline-intrinsic-assert.txt new file mode 100644 index 000000000..a96fd6a59 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/inline-intrinsic-assert.txt @@ -0,0 +1,14 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +1: "bar" +4: "bar" has unsupported operation: llvm.call + +4: "bar" has unsupported operation: llvm.call + +1: "sqr" +4: "sqr" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt new file mode 100644 index 000000000..4fb44f751 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/inselt-binop-inseltpoison.txt @@ -0,0 +1,532 @@ +1: "add_constant" +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "add_constant" has unsupported operation: llvm.mlir.undef + +4: "add_constant" has unsupported operation: llvm.mlir.undef + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_constant_not_undef_lane" +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op0" +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op0_not_undef_lane" +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op1" +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op1_not_undef_lane" +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_constant" +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "mul_constant" has unsupported operation: llvm.mlir.undef + +4: "mul_constant" has unsupported operation: llvm.mlir.undef + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_constant_not_undef_lane" +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "mul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "mul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op0" +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op0_not_undef_lane" +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op1" +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op1_not_undef_lane" +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op0" +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op0_not_undef_lane" +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op1" +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op1_not_undef_lane" +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op0" +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op0_not_undef_lane" +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op1" +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op1_not_undef_lane" +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op0" +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op0_not_undef_lane" +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op1" +4: "urem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "urem_constant_op1_not_undef_lane" +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op0" +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op0_not_undef_lane" +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op1" +4: "srem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "srem_constant_op1_not_undef_lane" +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "udiv_constant_op0" +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "udiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "udiv_constant_op1_not_undef_lane" +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +4: "sdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sdiv_constant_op0_not_undef_lane" +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sdiv_constant_op1" +4: "sdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "sdiv_constant_op1_not_undef_lane" +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "and_constant" +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_constant" has unsupported operation: llvm.mlir.undef + +4: "and_constant" has unsupported operation: llvm.mlir.undef + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "and_constant_not_undef_lane" +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_constant" +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "or_constant" has unsupported operation: llvm.mlir.undef + +4: "or_constant" has unsupported operation: llvm.mlir.undef + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_constant_not_undef_lane" +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_constant" +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_constant" has unsupported operation: llvm.mlir.undef + +4: "xor_constant" has unsupported operation: llvm.mlir.undef + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_constant_not_undef_lane" +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "fadd_constant" +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_constant" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_constant_not_undef_lane" +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_constant_op0" +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_constant_op0_not_undef_lane" +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_constant_op1" +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_constant_op1_not_undef_lane" +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_constant" +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fmul_constant" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_constant_not_undef_lane" +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_constant_op0" +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op0_not_undef_lane" +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op1" +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op1_not_undef_lane" +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem_constant_op0" +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op0_not_undef_lane" +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op1" +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op1_not_undef_lane" +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.frem + diff --git a/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt b/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt new file mode 100644 index 000000000..9ca1370f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/inselt-binop.txt @@ -0,0 +1,916 @@ +1: "add_constant" +4: "add_constant" has unsupported operation: llvm.mlir.undef + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "add_constant" has unsupported operation: llvm.mlir.undef + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: llvm.mlir.undef + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_constant_not_undef_lane" +4: "add_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "add_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op0" +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op0_not_undef_lane" +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op1" +4: "sub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_constant_op1_not_undef_lane" +4: "sub_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_constant" +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "mul_constant" has unsupported operation: llvm.mlir.undef + +4: "mul_constant" has unsupported operation: llvm.mlir.undef + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: llvm.mlir.undef + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_constant_not_undef_lane" +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "mul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "mul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op0" +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op0_not_undef_lane" +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op1" +4: "shl_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_constant_op1_not_undef_lane" +4: "shl_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op0" +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op0_not_undef_lane" +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op1" +4: "ashr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "ashr_constant_op1_not_undef_lane" +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op0" +4: "lshr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op0_not_undef_lane" +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op1" +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_constant_op1_not_undef_lane" +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op0" +4: "urem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op0_not_undef_lane" +4: "urem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "urem_constant_op1" +4: "urem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "urem_constant_op1_not_undef_lane" +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "urem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op0" +4: "srem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op0_not_undef_lane" +4: "srem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "srem_constant_op1" +4: "srem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "srem_constant_op1_not_undef_lane" +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "srem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "udiv_constant_op0" +4: "udiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "udiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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: llvm.mlir.undef + +4: "udiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "udiv_constant_op1_not_undef_lane" +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "udiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sdiv_constant_op0_not_undef_lane" +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sdiv_constant_op1" +4: "sdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "sdiv_constant_op1_not_undef_lane" +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "and_constant" +4: "and_constant" has unsupported operation: llvm.mlir.undef + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_constant" has unsupported operation: llvm.mlir.undef + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: llvm.mlir.undef + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "and_constant_not_undef_lane" +4: "and_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_constant" +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "or_constant" has unsupported operation: llvm.mlir.undef + +4: "or_constant" has unsupported operation: llvm.mlir.undef + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: llvm.mlir.undef + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_constant_not_undef_lane" +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "or_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "or_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_constant" +4: "xor_constant" has unsupported operation: llvm.mlir.undef + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_constant" has unsupported operation: llvm.mlir.undef + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: llvm.mlir.undef + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_constant_not_undef_lane" +4: "xor_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "fadd_constant" +4: "fadd_constant" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_constant" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fadd_constant_not_undef_lane" +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_constant_op0" +4: "fsub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_constant_op0_not_undef_lane" +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fsub_constant_op1" +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_constant_op1_not_undef_lane" +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fmul_constant" +4: "fmul_constant" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fmul_constant" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fmul_constant_not_undef_lane" +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fmul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fmul_constant_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_constant_op0" +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op0_not_undef_lane" +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op1" +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_constant_op1_not_undef_lane" +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem_constant_op0" +4: "frem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op0_not_undef_lane" +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op0_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op1" +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1" has unsupported operation: builtin.unregistered: llvm.frem + +1: "frem_constant_op1_not_undef_lane" +4: "frem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: llvm.mlir.undef + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_constant_op1_not_undef_lane" has unsupported operation: builtin.unregistered: llvm.frem + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-const-shuf-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/insert-const-shuf-inseltpoison.txt new file mode 100644 index 000000000..406c3398c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-const-shuf-inseltpoison.txt @@ -0,0 +1,135 @@ +1: "PR29126" +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR29126" has unsupported operation: llvm.mlir.undef + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "twoInserts" +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "twoInserts" has unsupported operation: llvm.mlir.undef + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffleRetain" +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffleRetain" has unsupported operation: llvm.mlir.undef + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "disguisedSelect" +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "disguisedSelect" has unsupported operation: llvm.mlir.undef + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "notSelectButNoMaskDifference" +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "notSelectButNoMaskDifference" has unsupported operation: llvm.mlir.undef + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "tooRisky" +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "tooRisky" has unsupported operation: llvm.mlir.undef + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "twoShufUses" +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "twoShufUses" has unsupported operation: llvm.mlir.undef + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "longerMask" +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "longerMask" has unsupported operation: llvm.mlir.undef + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shorterMask" +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-const-shuf.txt b/SSA/Projects/InstCombine/tests/logs/insert-const-shuf.txt new file mode 100644 index 000000000..1db1272b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-const-shuf.txt @@ -0,0 +1,137 @@ +1: "PR29126" +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR29126" has unsupported operation: llvm.mlir.undef + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR29126" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "twoInserts" +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "twoInserts" has unsupported operation: llvm.mlir.undef + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoInserts" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffleRetain" +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffleRetain" has unsupported operation: llvm.mlir.undef + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuffleRetain" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "disguisedSelect" +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "disguisedSelect" has unsupported operation: llvm.mlir.undef + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "disguisedSelect" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "notSelectButNoMaskDifference" +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "notSelectButNoMaskDifference" has unsupported operation: llvm.mlir.undef + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "notSelectButNoMaskDifference" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "tooRisky" +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "tooRisky" has unsupported operation: llvm.mlir.undef + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "tooRisky" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "twoShufUses" +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "twoShufUses" has unsupported operation: llvm.mlir.undef + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "twoShufUses" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "longerMask" +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "longerMask" has unsupported operation: llvm.mlir.undef + +4: "longerMask" has unsupported operation: llvm.mlir.undef + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "longerMask" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shorterMask" +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shorterMask" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-ext.txt b/SSA/Projects/InstCombine/tests/logs/insert-ext.txt new file mode 100644 index 000000000..d305a511d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-ext.txt @@ -0,0 +1,71 @@ +1: "use" +5: "use" is empty + +1: "usevec" +5: "usevec" is empty + +1: "fpext_fpext" +4: "fpext_fpext" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fpext_fpext" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "sext_sext" +4: "sext_sext" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sext_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_zext" +4: "zext_zext" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "zext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fpext_fpext_types" +4: "fpext_fpext_types" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fpext_fpext_types" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "fpext_fpext_types" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sext_sext_types" +4: "sext_sext_types" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_types" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_types" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sext_zext" +4: "sext_zext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_zext" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sext_sext_use1" +4: "sext_sext_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_use1" has unsupported operation: llvm.call + +4: "sext_sext_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "zext_zext_use2" +4: "zext_zext_use2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_use2" has unsupported operation: llvm.call + +4: "zext_zext_use2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "zext_zext_use2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_zext_use3" +4: "zext_zext_use3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_use3" has unsupported operation: llvm.call + +4: "zext_zext_use3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_zext_use3" has unsupported operation: llvm.call + +4: "zext_zext_use3" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt new file mode 100644 index 000000000..e306b8187 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle-inseltpoison.txt @@ -0,0 +1,469 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "test_vcopyq_lane_p64" +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract2" +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract3" +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract4" +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr26015" +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26015" has unsupported operation: llvm.mlir.undef + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr25999" +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999" has unsupported operation: llvm.mlir.undef + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999" has unsupported operation: llvm.mlir.undef + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "pr25999_phis1" +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999_phis1" has unsupported operation: llvm.call + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "dummy" +5: "dummy" is empty + +1: "pr25999_phis2" +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999_phis2" has unsupported operation: llvm.call + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr26354" +4: "pr26354" has unsupported operation: llvm.mlir.undef + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26354" has unsupported operation: llvm.mlir.undef + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: llvm.load + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "PR30923" +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR30923" has unsupported operation: llvm.mlir.undef + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "PR30923" has unsupported operation: llvm.store + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "extractelt_insertion" +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "extractelt_insertion" has unsupported operation: llvm.mlir.undef + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.extractelement + +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 + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_shuffle" +4: "insert_shuffle" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_shuffle_translate" +4: "insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate" +4: "insert_not_undef_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate_commute" +4: "insert_not_undef_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate" +4: "insert_insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate_commute" +4: "insert_insert_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate_wrong_mask" +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use" +5: "use" is empty + +1: "insert_not_undef_shuffle_translate_commute_uses" +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: llvm.call + +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate_commute_lengthen" +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat" +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_narrow" +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_widen" +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_extra_use" +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: llvm.call + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_wrong_base" +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_wrong_index" +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat" +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat_extra_uses" +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.call + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.call + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat_variable_index" +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_in_nonsplat" +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_in_nonsplat2" +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding" +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_extract" +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_extract_extra_use" +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract_extra_use" has unsupported operation: llvm.call + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_variable_index" +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_wrong_source_vec" +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_wrong_index" +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_undemanded_element_op0" +4: "insert_undemanded_element_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_op0" has unsupported operation: llvm.call + +4: "insert_undemanded_element_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_undemanded_element_op1" +4: "insert_undemanded_element_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_op1" has unsupported operation: llvm.call + +4: "insert_undemanded_element_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_op0" +4: "insert_demanded_element_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_op0" has unsupported operation: llvm.call + +4: "insert_demanded_element_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_op1" +4: "insert_demanded_element_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_op1" has unsupported operation: llvm.call + +4: "insert_demanded_element_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_constant" +4: "splat_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_constant" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt new file mode 100644 index 000000000..380841e5f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-extract-shuffle.txt @@ -0,0 +1,576 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "test_vcopyq_lane_p64" +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_vcopyq_lane_p64" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract2" +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract3" +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "widen_extract4" +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "widen_extract4" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr26015" +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26015" has unsupported operation: llvm.mlir.undef + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr26015" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr25999" +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999" has unsupported operation: llvm.mlir.undef + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999" has unsupported operation: llvm.mlir.undef + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "pr25999_phis1" +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999_phis1" has unsupported operation: llvm.call + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999_phis1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "dummy" +5: "dummy" is empty + +1: "pr25999_phis2" +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25999_phis2" has unsupported operation: llvm.call + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "pr25999_phis2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "pr26354" +4: "pr26354" has unsupported operation: llvm.mlir.undef + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr26354" has unsupported operation: llvm.mlir.undef + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: llvm.load + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "pr26354" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "PR30923" +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR30923" has unsupported operation: llvm.mlir.undef + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "PR30923" has unsupported operation: llvm.store + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR30923" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "extractelt_insertion" +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "extractelt_insertion" has unsupported operation: llvm.mlir.undef + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "extractelt_insertion" has unsupported operation: builtin.unregistered: llvm.extractelement + +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 + +4: "collectShuffleElts" has unsupported operation: llvm.mlir.undef + +4: "collectShuffleElts" has unsupported operation: llvm.mlir.undef + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "collectShuffleElts" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_shuffle" +4: "insert_shuffle" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_shuffle_translate" +4: "insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate" +4: "insert_not_undef_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate_commute" +4: "insert_not_undef_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate" +4: "insert_insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate_commute" +4: "insert_insert_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_insert_shuffle_translate_wrong_mask" +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_insert_shuffle_translate_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use" +5: "use" is empty + +1: "insert_not_undef_shuffle_translate_commute_uses" +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: llvm.call + +4: "insert_not_undef_shuffle_translate_commute_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_not_undef_shuffle_translate_commute_lengthen" +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_not_undef_shuffle_translate_commute_lengthen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat" +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_narrow" +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_narrow" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_widen" +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_extra_use" +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: llvm.mlir.undef + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: llvm.mlir.undef + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: llvm.call + +4: "insert_nonzero_index_splat_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_wrong_base" +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_base" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_nonzero_index_splat_wrong_index" +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: llvm.mlir.undef + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: llvm.mlir.undef + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_nonzero_index_splat_wrong_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat" +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat_extra_uses" +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.mlir.undef + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.mlir.undef + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.call + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_splat_extra_uses" has unsupported operation: llvm.call + +4: "insert_in_splat_extra_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_in_splat_variable_index" +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_in_nonsplat" +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_in_nonsplat2" +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "insert_in_nonsplat2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding" +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_extract" +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_extract_extra_use" +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract_extra_use" has unsupported operation: llvm.call + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_extract_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_variable_index" +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_wrong_source_vec" +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_wrong_source_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shuf_identity_padding_wrong_index" +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_identity_padding_wrong_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_undemanded_element_op0" +4: "insert_undemanded_element_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_op0" has unsupported operation: llvm.call + +4: "insert_undemanded_element_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_undemanded_element_op1" +4: "insert_undemanded_element_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_op1" has unsupported operation: llvm.call + +4: "insert_undemanded_element_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_undemanded_element_unequal_length_op0" +4: "insert_undemanded_element_unequal_length_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_unequal_length_op0" has unsupported operation: llvm.call + +4: "insert_undemanded_element_unequal_length_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_undemanded_element_unequal_length_op1" +4: "insert_undemanded_element_unequal_length_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_undemanded_element_unequal_length_op1" has unsupported operation: llvm.call + +4: "insert_undemanded_element_unequal_length_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_op0" +4: "insert_demanded_element_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_op0" has unsupported operation: llvm.call + +4: "insert_demanded_element_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_op1" +4: "insert_demanded_element_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_op1" has unsupported operation: llvm.call + +4: "insert_demanded_element_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_unequal_length_op0" +4: "insert_demanded_element_unequal_length_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_unequal_length_op0" has unsupported operation: llvm.call + +4: "insert_demanded_element_unequal_length_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "insert_demanded_element_unequal_length_op1" +4: "insert_demanded_element_unequal_length_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_demanded_element_unequal_length_op1" has unsupported operation: llvm.call + +4: "insert_demanded_element_unequal_length_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_constant" +4: "splat_constant" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "splat_constant" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "infloop_D151807" +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "infloop_D151807" has unsupported operation: llvm.mlir.undef + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "infloop_D151807" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-trunc.txt b/SSA/Projects/InstCombine/tests/logs/insert-trunc.txt new file mode 100644 index 000000000..e002c236e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-trunc.txt @@ -0,0 +1,254 @@ +1: "use" +5: "use" is empty + +1: "use64" +5: "use64" is empty + +1: "low_index_same_length_poison_basevec" +4: "low_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "low_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "high_index_same_length_poison_basevec" +4: "high_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "high_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "high_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_same_length_poison_basevec" +4: "wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_longer_length_poison_basevec" +4: "low_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "low_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "high_index_longer_length_poison_basevec" +4: "high_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "high_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "high_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_longer_length_poison_basevec" +4: "wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_shorter_length_poison_basevec" +4: "low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_shorter_length_poison_basevec" +4: "wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_width_low_index_shorter_length_poison_basevec" +4: "wrong_width_low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_width_low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_width_low_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_shorter_length_poison_basevec_extra_use" +4: "low_index_shorter_length_poison_basevec_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "low_index_shorter_length_poison_basevec_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_shorter_length_poison_basevec_extra_use" has unsupported operation: llvm.call + +4: "low_index_shorter_length_poison_basevec_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_poison_basevec_le" +4: "lshr_same_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_same_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_poison_basevec_be" +4: "lshr_same_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_same_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_poison_basevec_both_endian" +4: "lshr_same_length_poison_basevec_both_endian" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_same_length_poison_basevec_both_endian" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_poison_basevec_both_endian" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_same_length_poison_basevec" +4: "lshr_wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_same_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_longer_length_poison_basevec_le" +4: "lshr_longer_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_longer_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_longer_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_longer_length_poison_basevec_be" +4: "lshr_longer_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_longer_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_longer_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_longer_length_poison_basevec" +4: "lshr_wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_longer_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shorter_length_poison_basevec_le" +4: "lshr_shorter_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_shorter_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_shorter_length_poison_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shorter_length_poison_basevec_be" +4: "lshr_shorter_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_shorter_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_shorter_length_poison_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_shorter_length_poison_basevec" +4: "lshr_wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_shift_shorter_length_poison_basevec" +4: "lshr_wrong_shift_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_wrong_shift_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_shift_shorter_length_poison_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shorter_length_poison_basevec_be_extra_use" +4: "lshr_shorter_length_poison_basevec_be_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_shorter_length_poison_basevec_be_extra_use" has unsupported operation: llvm.call + +4: "lshr_shorter_length_poison_basevec_be_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_shorter_length_poison_basevec_be_extra_use" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_same_length_basevec" +4: "low_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "high_index_same_length_basevec" +4: "high_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "high_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_same_length_basevec" +4: "wrong_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_longer_length_basevec" +4: "low_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "high_index_longer_length_basevec" +4: "high_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "high_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_longer_length_basevec" +4: "wrong_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "low_index_shorter_length_basevec" +4: "low_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "low_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "wrong_index_shorter_length_basevec" +4: "wrong_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wrong_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_basevec_le" +4: "lshr_same_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_basevec_be" +4: "lshr_same_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_same_length_basevec_both_endian" +4: "lshr_same_length_basevec_both_endian" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_same_length_basevec_both_endian" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_same_length_basevec" +4: "lshr_wrong_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_same_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_longer_length_basevec_le" +4: "lshr_longer_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_longer_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_longer_length_basevec_be" +4: "lshr_longer_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_longer_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_longer_length_basevec" +4: "lshr_wrong_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_longer_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shorter_length_basevec_le" +4: "lshr_shorter_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_shorter_length_basevec_le" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shorter_length_basevec_be" +4: "lshr_shorter_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_shorter_length_basevec_be" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_wrong_index_shorter_length_basevec" +4: "lshr_wrong_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "lshr_wrong_index_shorter_length_basevec" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insert-val-extract-elem.txt b/SSA/Projects/InstCombine/tests/logs/insert-val-extract-elem.txt new file mode 100644 index 000000000..5d4dd351d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insert-val-extract-elem.txt @@ -0,0 +1,28 @@ +1: "julia_2xdouble" +4: "julia_2xdouble" has unsupported operation: llvm.load + +4: "julia_2xdouble" has unsupported operation: llvm.store + +4: "julia_2xdouble" has unsupported operation: llvm.return + +1: "julia_2xi64" +4: "julia_2xi64" has unsupported operation: llvm.load + +4: "julia_2xi64" has unsupported operation: llvm.store + +4: "julia_2xi64" has unsupported operation: llvm.return + +1: "julia_4xfloat" +4: "julia_4xfloat" has unsupported operation: llvm.load + +4: "julia_4xfloat" has unsupported operation: llvm.store + +4: "julia_4xfloat" has unsupported operation: llvm.return + +1: "julia_pseudovec" +4: "julia_pseudovec" has unsupported operation: llvm.load + +4: "julia_pseudovec" has unsupported operation: llvm.store + +4: "julia_pseudovec" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/insertelement-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/insertelement-bitcast.txt new file mode 100644 index 000000000..8d4837f8b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insertelement-bitcast.txt @@ -0,0 +1,54 @@ +1: "use_f32" +5: "use_f32" is empty + +1: "use_v4f32" +5: "use_v4f32" is empty + +1: "bitcast_inselt" +4: "bitcast_inselt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcast_inselt" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_inselt_use1" +4: "bitcast_inselt_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_use1" has unsupported operation: llvm.call + +4: "bitcast_inselt_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcast_inselt_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_inselt_use2" +4: "bitcast_inselt_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_use2" has unsupported operation: llvm.call + +4: "bitcast_inselt_use2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bitcast_inselt_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_inselt_use3" +4: "bitcast_inselt_use3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_use3" has unsupported operation: llvm.call + +4: "bitcast_inselt_use3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_use3" has unsupported operation: llvm.call + +4: "bitcast_inselt_use3" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bitcast_inselt_wrong_bitcast1" +4: "bitcast_inselt_wrong_bitcast1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_wrong_bitcast1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_wrong_bitcast1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bitcast_inselt_wrong_bitcast2" +4: "bitcast_inselt_wrong_bitcast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_wrong_bitcast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_inselt_wrong_bitcast2" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insertelement.txt b/SSA/Projects/InstCombine/tests/logs/insertelement.txt new file mode 100644 index 000000000..20be72014 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insertelement.txt @@ -0,0 +1,27 @@ +1: "insert_known_idx" +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_known_idx" has unsupported operation: llvm.mlir.undef + +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_known_idx" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_unknown_idx" +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 + +1: "insert_known_any_idx_fail1" +4: "insert_known_any_idx_fail1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_known_any_idx_fail2" +4: "insert_known_any_idx_fail2" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/insertelt-trunc.txt b/SSA/Projects/InstCombine/tests/logs/insertelt-trunc.txt new file mode 100644 index 000000000..99ff86070 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/insertelt-trunc.txt @@ -0,0 +1,174 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "insert_01_poison_v4i16" +4: "insert_01_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_01_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_01_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert_10_poison_v8i16" +4: "insert_10_poison_v8i16" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_10_poison_v8i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_10_poison_v8i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_10_poison_v8i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_10_poison_v8i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_12_poison_v4i32" +4: "insert_12_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_12_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_12_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_12_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_12_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_21_poison_v4i16" +4: "insert_21_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_21_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_21_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_21_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_21_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_23_poison_v4i32" +4: "insert_23_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_23_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_23_poison_v4i32" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert_32_poison_v4i16" +4: "insert_32_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_32_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_32_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_32_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_32_poison_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_01_v2i16" +4: "insert_01_v2i16" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "insert_10_v8i16" +4: "insert_10_v8i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_10_v8i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_10_v8i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_10_v8i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_12_v4i32" +4: "insert_12_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_12_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_12_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_12_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_21_v4i16" +4: "insert_21_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_21_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_21_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_21_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_23_v4i32" +4: "insert_23_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_23_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_23_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_23_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_32_v4i16" +4: "insert_32_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_32_v4i16" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_32_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_32_v4i16" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_01_v4i16_wrong_shift1" +4: "insert_01_v4i16_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_01_v4i16_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_01_v4i16_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_01_v4i16_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_01_v4i16_wrong_shift1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_01_v4i16_wrong_op" +4: "insert_01_v4i16_wrong_op" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_01_v4i16_wrong_op" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_01_v4i16_wrong_op" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_01_v4i16_wrong_op" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_01_v4i16_wrong_op" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_67_v4i16_uses1" +4: "insert_67_v4i16_uses1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_67_v4i16_uses1" has unsupported operation: llvm.call + +4: "insert_67_v4i16_uses1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_67_v4i16_uses1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_67_v4i16_uses1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_76_v4i16_uses2" +4: "insert_76_v4i16_uses2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_76_v4i16_uses2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_76_v4i16_uses2" has unsupported operation: llvm.call + +4: "insert_76_v4i16_uses2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_76_v4i16_uses2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_67_v4i16_uses3" +4: "insert_67_v4i16_uses3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_67_v4i16_uses3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "insert_67_v4i16_uses3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_67_v4i16_uses3" has unsupported operation: llvm.call + +4: "insert_67_v4i16_uses3" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "insert_01_poison_v4i16_high_first" +4: "insert_01_poison_v4i16_high_first" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "insert_01_poison_v4i16_high_first" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "insert_01_poison_v4i16_high_first" has unsupported operation: builtin.unregistered: llvm.bitcast + diff --git a/SSA/Projects/InstCombine/tests/logs/instcombine-verify-known-bits.txt b/SSA/Projects/InstCombine/tests/logs/instcombine-verify-known-bits.txt new file mode 100644 index 000000000..3bcb04962 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/instcombine-verify-known-bits.txt @@ -0,0 +1,5 @@ +1: "pr110631" +4: "pr110631" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "pr110631" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/int_sideeffect.txt b/SSA/Projects/InstCombine/tests/logs/int_sideeffect.txt new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..0f0490893 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/integer-round-up-pow2-alignment.txt @@ -0,0 +1,197 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "use.v2i4" +5: "use.v2i4" is empty + +1: "use.i1" +5: "use.i1" is empty + +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 + +1: "t5_splat_poison_0b0001" +"t5_splat_poison_0b0001" contains vectors which are unsupported + +1: "t5_splat_poison_0b0010" +"t5_splat_poison_0b0010" contains vectors which are unsupported + +1: "t5_splat_poison_0b0100" +"t5_splat_poison_0b0100" contains vectors which are unsupported + +1: "t5_splat_poison_0b1000" +"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 + +4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: llvm.mlir.undef + +4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8_nonsplat_masked_by_poison_0b0001" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: llvm.mlir.undef + +4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8_nonsplat_masked_by_poison_0b0010" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: llvm.mlir.undef + +4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8_nonsplat_masked_by_poison_0b0100" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: llvm.mlir.undef + +4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8_nonsplat_masked_by_poison_0b1000" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "t18_replacement_0b0001" +4: "t18_replacement_0b0001" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t18_replacement_0b0001" has unsupported operation: llvm.mlir.undef + +4: "t18_replacement_0b0001" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t18_replacement_0b0001" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t18_replacement_0b0001" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t18_replacement_0b0010" has unsupported operation: llvm.mlir.undef + +4: "t18_replacement_0b0010" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t18_replacement_0b0010" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t18_replacement_0b0010" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "t18_replacement_0b1000" +4: "t18_replacement_0b1000" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/intersect-accessgroup.txt b/SSA/Projects/InstCombine/tests/logs/intersect-accessgroup.txt new file mode 100644 index 000000000..4f9c792d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intersect-accessgroup.txt @@ -0,0 +1,50 @@ +1: "arg" +5: "arg" is empty + +1: "func" +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func" has unsupported operation: llvm.getelementptr + +4: "func" has unsupported operation: llvm.load + +4: "func" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "func" has unsupported operation: llvm.call + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr1.txt b/SSA/Projects/InstCombine/tests/logs/intptr1.txt new file mode 100644 index 000000000..04cbe2ff3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr1.txt @@ -0,0 +1,137 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: llvm.inttoptr + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.return + +1: "test1_neg" +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_neg" has unsupported operation: llvm.load + +4: "test1_neg" has unsupported operation: llvm.inttoptr + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_neg" has unsupported operation: llvm.load + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test1_neg" has unsupported operation: llvm.store + +4: "test1_neg" has unsupported operation: llvm.getelementptr + +4: "test1_neg" has unsupported operation: llvm.getelementptr + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1_neg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1_neg" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.inttoptr + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: llvm.getelementptr + +4: "test2" has unsupported operation: llvm.getelementptr + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: llvm.inttoptr + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test4" has unsupported operation: llvm.store + +4: "test4" has unsupported operation: llvm.getelementptr + +4: "test4" has unsupported operation: llvm.getelementptr + +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr2.txt b/SSA/Projects/InstCombine/tests/logs/intptr2.txt new file mode 100644 index 000000000..8056977f2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr2.txt @@ -0,0 +1,23 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr3.txt b/SSA/Projects/InstCombine/tests/logs/intptr3.txt new file mode 100644 index 000000000..522c6a882 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr3.txt @@ -0,0 +1,25 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr4.txt b/SSA/Projects/InstCombine/tests/logs/intptr4.txt new file mode 100644 index 000000000..fed97723d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr4.txt @@ -0,0 +1,31 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr5.txt b/SSA/Projects/InstCombine/tests/logs/intptr5.txt new file mode 100644 index 000000000..e4a2a66f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr5.txt @@ -0,0 +1,31 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr6.txt b/SSA/Projects/InstCombine/tests/logs/intptr6.txt new file mode 100644 index 000000000..0d3eec95c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr6.txt @@ -0,0 +1,2 @@ +3: intptr6.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr7.txt b/SSA/Projects/InstCombine/tests/logs/intptr7.txt new file mode 100644 index 000000000..f483c86cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intptr7.txt @@ -0,0 +1,44 @@ +1: "matching_phi" +4: "matching_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "matching_phi" has unsupported operation: llvm.getelementptr + +4: "matching_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "matching_phi" has unsupported operation: llvm.inttoptr + +4: "matching_phi" has unsupported operation: llvm.store + +4: "matching_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "matching_phi" has unsupported operation: llvm.load + +4: "matching_phi" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "matching_phi" has unsupported operation: llvm.store + +4: "matching_phi" has unsupported operation: llvm.return + +1: "no_matching_phi" +4: "no_matching_phi" has unsupported operation: llvm.getelementptr + +4: "no_matching_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "no_matching_phi" has unsupported operation: llvm.inttoptr + +4: "no_matching_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "no_matching_phi" has unsupported operation: llvm.inttoptr + +4: "no_matching_phi" has unsupported operation: llvm.store + +4: "no_matching_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "no_matching_phi" has unsupported operation: llvm.load + +4: "no_matching_phi" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "no_matching_phi" has unsupported operation: llvm.store + +4: "no_matching_phi" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/intptr8.txt b/SSA/Projects/InstCombine/tests/logs/intptr8.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt b/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt new file mode 100644 index 000000000..9069b7e24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/intrinsic-select.txt @@ -0,0 +1,158 @@ +1: "use" +5: "use" is empty + +1: "ctlz_sel_const_true_false" +4: "ctlz_sel_const_true_false" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "ctlz_sel_const_false" has unsupported operation: llvm.mlir.undef + +4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ctlz_sel_const_false" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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 + +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 + +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 + +1: "non_speculatable" +4: "non_speculatable" has unsupported operation: llvm.mlir.addressof + +4: "non_speculatable" has unsupported operation: llvm.mlir.addressof + +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 + +4: "pr85536" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr85536" has unsupported operation: builtin.unregistered: llvm.intr.smin + +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/intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/intrinsics.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/invariant.group.txt b/SSA/Projects/InstCombine/tests/logs/invariant.group.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/invariant.txt b/SSA/Projects/InstCombine/tests/logs/invariant.txt new file mode 100644 index 000000000..8819d30a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/invariant.txt @@ -0,0 +1,26 @@ +1: "g" +5: "g" is empty + +1: "g_addr1" +5: "g_addr1" is empty + +1: "f" +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: builtin.unregistered: llvm.intr.invariant.start + +4: "f" has unsupported operation: llvm.call + +4: "f" has unsupported operation: llvm.load + +1: "f_addrspace1" +4: "f_addrspace1" has unsupported operation: llvm.store + +4: "f_addrspace1" has unsupported operation: builtin.unregistered: llvm.intr.invariant.start + +4: "f_addrspace1" has unsupported operation: llvm.call + +4: "f_addrspace1" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-scalar.txt b/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-scalar.txt new file mode 100644 index 000000000..34ab57b8a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-scalar.txt @@ -0,0 +1,133 @@ +1: "scalar" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_varx_mone_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_varx_6_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_mone_vary_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_6_vary_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "gen4" +5: "gen4" is empty + +1: "c_1_0_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_0_1_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_0_0_1" +4: "c_0_0_1" has unsupported operation: llvm.call + +4: "c_0_0_1" has unsupported operation: llvm.call + +1: "c_1_1_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_1_0_1" +4: "c_1_0_1" has unsupported operation: llvm.call + +1: "c_0_1_1" +4: "c_0_1_1" has unsupported operation: llvm.call + +1: "c_1_1_1" +4: "c_1_1_1" has unsupported operation: llvm.call + +4: "c_1_1_1" has unsupported operation: llvm.call + +1: "commutativity_constant_varx_6_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "commutativity_constant_6_vary_invmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "use4" +5: "use4" is empty + +1: "n_oneuse_D_is_ok" +4: "n_oneuse_D_is_ok" has unsupported operation: llvm.call + +1: "n_oneuse_A" +4: "n_oneuse_A" has unsupported operation: llvm.call + +1: "n_oneuse_AD" +4: "n_oneuse_AD" has unsupported operation: llvm.call + +4: "n_oneuse_AD" has unsupported operation: llvm.call + +1: "n_third_var" +7: "n_third_var" is unchanged by InstCombine + +1: "n_badxor" +7: "n_badxor" is unchanged by InstCombine + 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 new file mode 100644 index 000000000..cc98eebdf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/invert-variable-mask-in-masked-merge-vector.txt @@ -0,0 +1,106 @@ +1: "vector" +"vector" contains vectors which are unsupported + +1: "vector_poison" +"vector_poison" contains vectors which are unsupported + +1: "in_constant_varx_mone_invmask" +"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 + +1: "in_constant_varx_6_invmask_nonsplat" +"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 + +4: "in_constant_varx_6_invmask_poison" has unsupported operation: llvm.mlir.undef + +4: "in_constant_varx_6_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "in_constant_varx_6_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "in_constant_6_vary_invmask" +"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 + +1: "in_constant_6_vary_invmask_poison" +4: "in_constant_6_vary_invmask_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "in_constant_6_vary_invmask_poison" has unsupported operation: llvm.mlir.undef + +4: "in_constant_6_vary_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "in_constant_6_vary_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "in_constant_6_vary_invmask_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen4" +5: "gen4" is empty + +1: "c_1_0_0" +"c_1_0_0" contains vectors which are unsupported + +1: "c_0_1_0" +"c_0_1_0" contains vectors which are unsupported + +1: "c_0_0_1" +4: "c_0_0_1" has unsupported operation: llvm.call + +4: "c_0_0_1" has unsupported operation: llvm.call + +1: "c_1_1_0" +"c_1_1_0" contains vectors which are unsupported + +1: "c_1_0_1" +4: "c_1_0_1" has unsupported operation: llvm.call + +1: "c_0_1_1" +4: "c_0_1_1" has unsupported operation: llvm.call + +1: "c_1_1_1" +4: "c_1_1_1" has unsupported operation: llvm.call + +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 + +1: "commutativity_constant_6_vary_invmask" +"commutativity_constant_6_vary_invmask" contains vectors which are unsupported + +1: "use4" +5: "use4" is empty + +1: "n_oneuse_D_is_ok" +4: "n_oneuse_D_is_ok" has unsupported operation: llvm.call + +1: "n_oneuse_A" +4: "n_oneuse_A" has unsupported operation: llvm.call + +1: "n_oneuse_AD" +4: "n_oneuse_AD" has unsupported operation: llvm.call + +4: "n_oneuse_AD" has unsupported operation: llvm.call + +1: "n_third_var" +7: "n_third_var" is unchanged by InstCombine + +1: "n_third_var_const" +7: "n_third_var_const" is unchanged by InstCombine + +1: "n_badxor_splat" +7: "n_badxor_splat" is unchanged by InstCombine + +1: "n_badxor" +7: "n_badxor" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/invoke.txt b/SSA/Projects/InstCombine/tests/logs/invoke.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/is_fpclass.txt b/SSA/Projects/InstCombine/tests/logs/is_fpclass.txt new file mode 100644 index 000000000..90183e4ad --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/is_fpclass.txt @@ -0,0 +1,1391 @@ +1: "test_class_no_mask_f32" +4: "test_class_no_mask_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_full_mask_f32" +4: "test_class_full_mask_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_undef_no_mask_f32" +4: "test_class_undef_no_mask_f32" has unsupported operation after optimization: llvm.mlir.undef + +4: "test_class_undef_no_mask_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_undef_full_mask_f32" +4: "test_class_undef_full_mask_f32" has unsupported operation after optimization: llvm.mlir.undef + +4: "test_class_undef_full_mask_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_poison_no_mask_f32" +4: "test_class_poison_no_mask_f32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "test_class_poison_full_mask_f32" +4: "test_class_poison_full_mask_f32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "test_class_undef_val_f32" +4: "test_class_undef_val_f32" has unsupported operation: llvm.mlir.undef + +1: "test_class_poison_val_f32" +4: "test_class_poison_val_f32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "test_class_isnan_f32" +4: "test_class_isnan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_isnan_v2f32" +4: "test_class_isnan_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_isnan_f32_strict" +4: "test_class_isnan_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_f32" +4: "test_class_is_p0_n0_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_v2f32" +4: "test_class_is_p0_n0_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_v2f32_daz" +4: "test_class_is_p0_n0_v2f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_v2f32_dynamic" +4: "test_class_is_p0_n0_v2f32_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_nan_f32" +4: "test_class_is_p0_n0_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_or_nan_v2f32" +4: "test_class_is_p0_n0_or_nan_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_or_nan_f32_daz" +4: "test_class_is_p0_n0_or_nan_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_nan_v2f32_daz" +4: "test_class_is_p0_n0_or_nan_v2f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_sub_or_nan_f32" +4: "test_class_is_p0_n0_or_sub_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_sub_or_nan_v2f32" +4: "test_class_is_p0_n0_or_sub_or_nan_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_sub_or_nan_f32_daz" +4: "test_class_is_p0_n0_or_sub_or_nan_f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_or_sub_or_nan_v2f32_daz" +4: "test_class_is_p0_n0_or_sub_or_nan_v2f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_or_sub_or_snan_f32_daz" +4: "test_class_is_p0_n0_or_sub_or_snan_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_or_sub_or_qnan_f32_daz" +4: "test_class_is_p0_n0_or_sub_or_qnan_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_nan_f32" +4: "test_class_is_not_p0_n0_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_or_qnan_f32" +4: "test_class_is_not_p0_n0_or_qnan_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_snan_f32" +4: "test_class_is_not_p0_n0_or_snan_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_nan_f32_daz" +4: "test_class_is_not_p0_n0_or_nan_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_sub_or_nan_f32" +4: "test_class_is_not_p0_n0_or_sub_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_sub_or_nan_f32_daz" +4: "test_class_is_not_p0_n0_or_sub_or_nan_f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_or_sub_and_not_nan_f32" +4: "test_class_is_not_p0_n0_or_sub_and_not_nan_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_or_sub_and_not_nan_f32_daz" +4: "test_class_is_not_p0_n0_or_sub_and_not_nan_f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_f32" +4: "test_class_is_not_p0_n0_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_v2f32" +4: "test_class_is_not_p0_n0_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_f32_strict" +4: "test_class_is_not_p0_n0_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_f32_daz" +4: "test_class_is_not_p0_n0_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_f32_dynamic" +4: "test_class_is_not_p0_n0_f32_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_p0_n0_psub_nsub_f32_daz" +4: "test_class_is_not_p0_n0_psub_nsub_f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_psub_nsub_f32_dapz" +4: "test_class_is_not_p0_n0_psub_nsub_f32_dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_p0_n0_psub_nsub_f32_dynamic" +4: "test_class_is_not_p0_n0_psub_nsub_f32_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_f32_strict" +4: "test_class_is_p0_n0_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_f32_daz" +4: "test_class_is_p0_n0_f32_daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_f32_dapz" +4: "test_class_is_p0_n0_f32_dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_psub_nsub_f32" +4: "test_class_is_p0_n0_psub_nsub_f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_psub_nsub_f32_daz" +4: "test_class_is_p0_n0_psub_nsub_f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_psub_nsub_f32_dapz" +4: "test_class_is_p0_n0_psub_nsub_f32_dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_psub_nsub_f32_dynamic" +4: "test_class_is_p0_n0_psub_nsub_f32_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_psub_nsub_v2f32" +4: "test_class_is_p0_n0_psub_nsub_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_p0_n0_psub_nsub_v2f32_daz" +4: "test_class_is_p0_n0_psub_nsub_v2f32_daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_psub_nsub_v2f32_dapz" +4: "test_class_is_p0_n0_psub_nsub_v2f32_dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_p0_n0_psub_nsub_v2f32_dynamic" +4: "test_class_is_p0_n0_psub_nsub_v2f32_dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pinf_f32" +4: "test_class_is_pinf_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pinf_or_nan_f32" +4: "test_class_is_pinf_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pinf_v2f32" +4: "test_class_is_pinf_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_ninf_f32" +4: "test_class_is_ninf_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_ninf_or_nan_f32" +4: "test_class_is_ninf_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_ninf_v2f32" +4: "test_class_is_ninf_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_inf_f32" +4: "test_class_is_inf_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_inf_v2f32" +4: "test_class_is_inf_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_inf_or_nan_f32" +4: "test_class_is_inf_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_or_nan_f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pinf_f32_strict" +4: "test_class_is_pinf_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_ninf_f32_strict" +4: "test_class_is_ninf_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_inf_f32_strict" +4: "test_class_is_inf_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pinf_or_nan_f32_strict" +4: "test_class_is_pinf_or_nan_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_ninf_or_nan_f32_strict" +4: "test_class_is_ninf_or_nan_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_inf_or_nan_f32_strict" +4: "test_class_is_inf_or_nan_f32_strict" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_snan_test_snan_f64" +4: "test_constant_class_snan_test_snan_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_qnan_test_qnan_f64" +4: "test_constant_class_qnan_test_qnan_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_qnan_test_snan_f64" +4: "test_constant_class_qnan_test_snan_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_ninf_test_ninf_f64" +4: "test_constant_class_ninf_test_ninf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pinf_test_ninf_f64" +4: "test_constant_class_pinf_test_ninf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_qnan_test_ninf_f64" +4: "test_constant_class_qnan_test_ninf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_snan_test_ninf_f64" +4: "test_constant_class_snan_test_ninf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nnormal_test_nnormal_f64" +4: "test_constant_class_nnormal_test_nnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pnormal_test_nnormal_f64" +4: "test_constant_class_pnormal_test_nnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nsubnormal_test_nsubnormal_f64" +4: "test_constant_class_nsubnormal_test_nsubnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_psubnormal_test_nsubnormal_f64" +4: "test_constant_class_psubnormal_test_nsubnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nzero_test_nzero_f64" +4: "test_constant_class_nzero_test_nzero_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pzero_test_nzero_f64" +4: "test_constant_class_pzero_test_nzero_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pzero_test_pzero_f64" +4: "test_constant_class_pzero_test_pzero_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nzero_test_pzero_f64" +4: "test_constant_class_nzero_test_pzero_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_psubnormal_test_psubnormal_f64" +4: "test_constant_class_psubnormal_test_psubnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nsubnormal_test_psubnormal_f64" +4: "test_constant_class_nsubnormal_test_psubnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pnormal_test_pnormal_f64" +4: "test_constant_class_pnormal_test_pnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_nnormal_test_pnormal_f64" +4: "test_constant_class_nnormal_test_pnormal_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_pinf_test_pinf_f64" +4: "test_constant_class_pinf_test_pinf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_ninf_test_pinf_f64" +4: "test_constant_class_ninf_test_pinf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_qnan_test_pinf_f64" +4: "test_constant_class_qnan_test_pinf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_constant_class_snan_test_pinf_f64" +4: "test_constant_class_snan_test_pinf_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_snan_nnan_src" +4: "test_class_is_snan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_snan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_qnan_nnan_src" +4: "test_class_is_qnan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_qnan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nan_nnan_src" +4: "test_class_is_nan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_nan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nan_other_nnan_src" +4: "test_class_is_nan_other_nnan_src" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_class_is_nan_other_nnan_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nan_nnan_src" +4: "test_class_is_not_nan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_not_nan_nnan_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nan_nnan_src_strict" +4: "test_class_is_not_nan_nnan_src_strict" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_not_nan_nnan_src_strict" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_ninf_pinf_ninf_src" +4: "test_class_is_ninf_pinf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_ninf_pinf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_ninf_ninf_src" +4: "test_class_is_ninf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_ninf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pinf_ninf_src" +4: "test_class_is_pinf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_pinf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_ninf_pinf_pnormal_ninf_src" +4: "test_class_is_ninf_pinf_pnormal_ninf_src" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "test_class_is_ninf_pinf_pnormal_ninf_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_inf_ninf_src" +4: "test_class_is_not_inf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_not_inf_ninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_inf_ninf_src_strict" +4: "test_class_is_not_inf_ninf_src_strict" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test_class_is_not_inf_ninf_src_strict" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_not_is_nan" +4: "test_class_not_is_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_not_is_nan_multi_use" +4: "test_class_not_is_nan_multi_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_class_not_is_nan_multi_use" has unsupported operation: llvm.store + +1: "test_class_not_is_inf_nan" +4: "test_class_not_is_inf_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_not_is_inf_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_not_is_normal" +4: "test_class_not_is_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_xor_false" +4: "test_class_xor_false" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_not_vector" +4: "test_class_not_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_xor_vector" +4: "test_class_xor_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_or_class_f32_0" +4: "test_fold_or_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fold_or3_class_f32_0" +4: "test_fold_or3_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fold_or_all_tests_class_f32_0" +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_or_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_or_class_f32_1" +4: "test_fold_or_class_f32_1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_or_class_f32_multi_use0" +4: "test_no_fold_or_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_or_class_f32_multi_use0" has unsupported operation: llvm.store + +4: "test_no_fold_or_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_or_class_f32_multi_use1" +4: "test_no_fold_or_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_or_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_no_fold_or_class_f32_multi_use1" has unsupported operation: llvm.store + +1: "test_fold_or_class_f32_2" +4: "test_fold_or_class_f32_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_no_fold_or_class_f32_0" +4: "test_no_fold_or_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_or_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_or_class_v2f32" +4: "test_fold_or_class_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_class_f32_0" +4: "test_fold_and_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and3_class_f32_0" +4: "test_fold_and3_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_all_tests_class_f32_0" +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_not_all_tests_class_f32_0" +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_not_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_class_f32_1" +4: "test_fold_and_class_f32_1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_and_class_f32_1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_and_class_f32_multi_use0" +4: "test_no_fold_and_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_no_fold_and_class_f32_multi_use0" has unsupported operation: llvm.store + +4: "test_no_fold_and_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_and_class_f32_multi_use1" +4: "test_no_fold_and_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_no_fold_and_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_no_fold_and_class_f32_multi_use1" has unsupported operation: llvm.store + +1: "test_fold_and_class_f32_2" +4: "test_fold_and_class_f32_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fold_and_class_f32_3" +4: "test_fold_and_class_f32_3" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_class_f32_4" +4: "test_fold_and_class_f32_4" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_and_class_f32_0" +4: "test_no_fold_and_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_and_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_and_class_v2f32" +4: "test_fold_and_class_v2f32" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fold_xor_class_f32_0" +4: "test_fold_xor_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_xor3_class_f32_0" +4: "test_fold_xor3_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_fold_xor_all_tests_class_f32_0" +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_all_tests_class_f32_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_xor_class_f32_1" +4: "test_fold_xor_class_f32_1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_xor_class_f32_multi_use0" +4: "test_no_fold_xor_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_xor_class_f32_multi_use0" has unsupported operation: llvm.store + +4: "test_no_fold_xor_class_f32_multi_use0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_xor_class_f32_multi_use1" +4: "test_no_fold_xor_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_xor_class_f32_multi_use1" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_no_fold_xor_class_f32_multi_use1" has unsupported operation: llvm.store + +1: "test_fold_xor_class_f32_2" +4: "test_fold_xor_class_f32_2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_fold_xor_class_f32_2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_no_fold_xor_class_f32_0" +4: "test_no_fold_xor_class_f32_0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_no_fold_xor_class_f32_0" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_fold_xor_class_v2f32" +4: "test_fold_xor_class_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_none" +4: "test_class_fneg_none" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_none" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_all" +4: "test_class_fneg_all" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_all" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_snan" +4: "test_class_fneg_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_qnan" +4: "test_class_fneg_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_neginf" +4: "test_class_fneg_neginf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_negnormal" +4: "test_class_fneg_negnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_negsubnormal" +4: "test_class_fneg_negsubnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_negzero" +4: "test_class_fneg_negzero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_poszero" +4: "test_class_fneg_poszero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_possubnormal" +4: "test_class_fneg_possubnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posnormal" +4: "test_class_fneg_posnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf" +4: "test_class_fneg_posinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_isnan" +4: "test_class_fneg_isnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_nnan" +4: "test_class_fneg_nnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_normal" +4: "test_class_fneg_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_zero" +4: "test_class_fneg_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_subnormal" +4: "test_class_fneg_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_normal_neginf" +4: "test_class_fneg_normal_neginf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_normal_pinf" +4: "test_class_fneg_normal_pinf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_neginf_posnormal_negsubnormal_poszero" +4: "test_class_fneg_neginf_posnormal_negsubnormal_poszero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_snan" +4: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_qnan" +4: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_nan" +4: "test_class_fneg_neginf_posnormal_negsubnormal_poszero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero_snan" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero_qnan" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero_nan" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero_snan_strictfp" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero_snan_strictfp" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_multiple_use_fneg" +4: "test_class_fneg_multiple_use_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_multiple_use_fneg" has unsupported operation: llvm.store + +4: "test_class_fneg_multiple_use_fneg" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_posinf_negnormal_possubnormal_negzero_nan_vector" +4: "test_class_fneg_posinf_negnormal_possubnormal_negzero_nan_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_none" +4: "test_class_fabs_none" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_none" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_all" +4: "test_class_fabs_all" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_all" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_snan" +4: "test_class_fabs_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_qnan" +4: "test_class_fabs_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_neginf" +4: "test_class_fabs_neginf" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_neginf" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_negnormal" +4: "test_class_fabs_negnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_negnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_negsubnormal" +4: "test_class_fabs_negsubnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_negsubnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_negzero" +4: "test_class_fabs_negzero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_negzero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_poszero" +4: "test_class_fabs_poszero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fabs_possubnormal" +4: "test_class_fabs_possubnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posnormal" +4: "test_class_fabs_posnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf" +4: "test_class_fabs_posinf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_posinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fabs_isnan" +4: "test_class_fabs_isnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fabs_nnan" +4: "test_class_fabs_nnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fabs_normal" +4: "test_class_fabs_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_zero" +4: "test_class_fabs_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fabs_subnormal" +4: "test_class_fabs_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_normal_neginf" +4: "test_class_fabs_normal_neginf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_normal_pinf" +4: "test_class_fabs_normal_pinf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_neginf_posnormal_negsubnormal_poszero" +4: "test_class_fabs_neginf_posnormal_negsubnormal_poszero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_snan" +4: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_qnan" +4: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_nan" +4: "test_class_fabs_neginf_posnormal_negsubnormal_poszero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero_snan" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero_qnan" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero_nan" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero_snan_strictfp" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero_snan_strictfp" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_multiple_use_fabs" +4: "test_class_fabs_multiple_use_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fabs_multiple_use_fabs" has unsupported operation: llvm.store + +4: "test_class_fabs_multiple_use_fabs" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fabs_posinf_negnormal_possubnormal_negzero_nan_vector" +4: "test_class_fabs_posinf_negnormal_possubnormal_negzero_nan_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_none" +4: "test_class_fneg_fabs_none" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_none" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_none" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_all" +4: "test_class_fneg_fabs_all" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_all" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_all" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_snan" +4: "test_class_fneg_fabs_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_qnan" +4: "test_class_fneg_fabs_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_neginf" +4: "test_class_fneg_fabs_neginf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_neginf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_fabs_negnormal" +4: "test_class_fneg_fabs_negnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_negsubnormal" +4: "test_class_fneg_fabs_negsubnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_negzero" +4: "test_class_fneg_fabs_negzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_fabs_poszero" +4: "test_class_fneg_fabs_poszero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_poszero" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_poszero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_possubnormal" +4: "test_class_fneg_fabs_possubnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_possubnormal" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_possubnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posnormal" +4: "test_class_fneg_fabs_posnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_posnormal" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_posnormal" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf" +4: "test_class_fneg_fabs_posinf" has unsupported operation after optimization: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_posinf" has unsupported operation after optimization: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_posinf" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_isnan" +4: "test_class_fneg_fabs_isnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_fabs_nnan" +4: "test_class_fneg_fabs_nnan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_fabs_normal" +4: "test_class_fneg_fabs_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_zero" +4: "test_class_fneg_fabs_zero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_fneg_fabs_subnormal" +4: "test_class_fneg_fabs_subnormal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_normal_neginf" +4: "test_class_fneg_fabs_normal_neginf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_normal_pinf" +4: "test_class_fneg_fabs_normal_pinf" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero" +4: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_snan" +4: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_qnan" +4: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_nan" +4: "test_class_fneg_fabs_neginf_posnormal_negsubnormal_poszero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_snan" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_snan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_qnan" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_qnan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_nan" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_nan" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_snan_strictfp" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_snan_strictfp" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_multiple_use_fabs" +4: "test_class_fneg_fabs_multiple_use_fabs" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_fneg_fabs_multiple_use_fabs" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_class_fneg_fabs_multiple_use_fabs" has unsupported operation: llvm.store + +4: "test_class_fneg_fabs_multiple_use_fabs" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_nan_vector" +4: "test_class_fneg_fabs_posinf_negnormal_possubnormal_negzero_nan_vector" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_zero_nozero_src" +4: "test_class_is_zero_nozero_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_zero_noposzero_src" +4: "test_class_is_zero_noposzero_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_zero_nonegzero_src" +4: "test_class_is_zero_nonegzero_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pzero_nozero_src" +4: "test_class_is_pzero_nozero_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_nopzero_src" +4: "test_class_is_pzero_nopzero_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_nonzero_src" +4: "test_class_is_pzero_nonzero_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nozero_src" +4: "test_class_is_nzero_nozero_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nopzero_src" +4: "test_class_is_nzero_nopzero_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nonzero_src" +4: "test_class_is_nzero_nonzero_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_normal_or_zero_nozero_src" +4: "test_class_is_normal_or_zero_nozero_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_inf_or_nan_nozero_src" +4: "test_class_is_inf_or_nan_nozero_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_or_nan_nozero_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_inf_or_nan_noinf_src" +4: "test_class_is_inf_or_nan_noinf_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_or_nan_noinf_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_inf_or_nan_nonan_src" +4: "test_class_is_inf_or_nan_nonan_src" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "test_class_is_inf_or_nan_nonan_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_normal_or_subnormal_noinf_src" +4: "test_class_is_normal_or_subnormal_noinf_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_neginf_or_nopinf_src" +4: "test_class_is_neginf_or_nopinf_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_neginf_noninf_src" +4: "test_class_is_neginf_noninf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_neginf_noinf_src" +4: "test_class_is_neginf_noinf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_posinf_noninf_src" +4: "test_class_is_posinf_noninf_src" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_posinf_nopinf_src" +4: "test_class_is_posinf_nopinf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_posinf_noinf_src" +4: "test_class_is_posinf_noinf_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_subnormal_nosub_src" +4: "test_class_is_subnormal_nosub_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_subnormal_nonsub_src" +4: "test_class_is_subnormal_nonsub_src" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_subnormal_nosub_src" +4: "test_class_is_not_subnormal_nosub_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_negsubnormal_nosub_src" +4: "test_class_is_not_negsubnormal_nosub_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_negsubnormal_nonegsub_src" +4: "test_class_is_not_negsubnormal_nonegsub_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nnormal_nonorm_src" +4: "test_class_is_nnormal_nonorm_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nnormal_nonorm_src" +4: "test_class_is_not_nnormal_nonorm_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nnormal_onlynorm_src" +4: "test_class_is_not_nnormal_onlynorm_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nnormal_onlynorm_src" +4: "test_class_is_nnormal_onlynorm_src" has unsupported operation after optimization: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_normal_assume_normal" +4: "test_class_is_normal_assume_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_class_is_normal_assume_normal" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test_class_is_normal_assume_not_normal" +4: "test_class_is_normal_assume_not_normal" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "test_class_is_normal_assume_not_normal" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test_class_is_nan_assume_ord" +4: "test_class_is_nan_assume_ord" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_class_is_nan_assume_ord" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test_class_is_nan_assume_uno" +4: "test_class_is_nan_assume_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_class_is_nan_assume_uno" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test_class_is_nan_assume_not_eq_pinf" +4: "test_class_is_nan_assume_not_eq_pinf" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_class_is_nan_assume_not_eq_pinf" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "test_class_is_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf__ieee" +4: "test_class_is_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pnorm_pinf__ieee" +4: "test_class_is_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_pnorm_pinf__ieee" +4: "test_class_is_pzero_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_pnorm_pinf_nan__ieee" +4: "test_class_is_pzero_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_psub_pnorm_pinf__ieee" +4: "test_class_is_nzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nsub_pnorm_pinf__ieee" +4: "test_class_is_nzero_nsub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_not_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_not_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_not_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf__ieee" +4: "test_class_is_not_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_not_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_not_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_not_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_pnorm_pinf__ieee" +4: "test_class_is_not_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_pnorm_pinf__ieee" +4: "test_class_is_not_pzero_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_pnorm_pinf_nan__ieee" +4: "test_class_is_not_pzero_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__ieee" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__ieee" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__ieee" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__ieee" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_psub_pnorm_pinf__ieee" +4: "test_class_is_not_nzero_psub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_nsub_pnorm_pinf__ieee" +4: "test_class_is_not_nzero_nsub_pnorm_pinf__ieee" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf__daz" +4: "test_class_is_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_snan__daz" +4: "test_class_is_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_nan__daz" +4: "test_class_is_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pnorm_pinf__daz" +4: "test_class_is_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pzero_pnorm_pinf__daz" +4: "test_class_is_pzero_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_pnorm_pinf_nan__daz" +4: "test_class_is_pzero_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_nzero_psub_pnorm_pinf__daz" +4: "test_class_is_nzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nsub_pnorm_pinf__daz" +4: "test_class_is_nzero_nsub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_not_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf__daz" +4: "test_class_is_not_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_snan__daz" +4: "test_class_is_not_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_not_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_nan__daz" +4: "test_class_is_not_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pnorm_pinf__daz" +4: "test_class_is_not_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_pzero_pnorm_pinf__daz" +4: "test_class_is_not_pzero_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_pnorm_pinf_nan__daz" +4: "test_class_is_not_pzero_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__daz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__daz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__daz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__daz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__daz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_nzero_psub_pnorm_pinf__daz" +4: "test_class_is_not_nzero_psub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_nsub_pnorm_pinf__daz" +4: "test_class_is_not_nzero_nsub_pnorm_pinf__daz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf__dapz" +4: "test_class_is_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pnorm_pinf__dapz" +4: "test_class_is_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_pzero_pnorm_pinf__dapz" +4: "test_class_is_pzero_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_pzero_pnorm_pinf_nan__dapz" +4: "test_class_is_pzero_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_nzero_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_nsub_nzero_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_nzero_psub_pnorm_pinf__dapz" +4: "test_class_is_nzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_nzero_nsub_pnorm_pinf__dapz" +4: "test_class_is_nzero_nsub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_not_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_not_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf__dapz" +4: "test_class_is_not_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_not_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_not_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_not_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pnorm_pinf__dapz" +4: "test_class_is_not_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_pzero_pnorm_pinf__dapz" +4: "test_class_is_not_pzero_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_pzero_pnorm_pinf_nan__dapz" +4: "test_class_is_not_pzero_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_not_nzero_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__dapz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__dapz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_snan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__dapz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_qnan__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__dapz" +4: "test_class_is_not_nsub_nzero_pzero_psub_pnorm_pinf_nan__dapz" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "test_class_is_not_nzero_psub_pnorm_pinf__dapz" +4: "test_class_is_not_nzero_psub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_nzero_nsub_pnorm_pinf__dapz" +4: "test_class_is_not_nzero_nsub_pnorm_pinf__dapz" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_psub_pnorm_pinf__dynamic" +4: "test_class_is_psub_pnorm_pinf__dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +1: "test_class_is_not_psub_pnorm_pinf__dynamic" +4: "test_class_is_not_psub_pnorm_pinf__dynamic" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + diff --git a/SSA/Projects/InstCombine/tests/logs/isascii-1.txt b/SSA/Projects/InstCombine/tests/logs/isascii-1.txt new file mode 100644 index 000000000..795b41879 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/isascii-1.txt @@ -0,0 +1,14 @@ +1: "isascii" +5: "isascii" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/isascii-i16.txt b/SSA/Projects/InstCombine/tests/logs/isascii-i16.txt new file mode 100644 index 000000000..b5c670c72 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/isascii-i16.txt @@ -0,0 +1,45 @@ +1: "isascii" +5: "isascii" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_isascii" +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.call + +4: "fold_isascii" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/isdigit-1.txt b/SSA/Projects/InstCombine/tests/logs/isdigit-1.txt new file mode 100644 index 000000000..7cb811f09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/isdigit-1.txt @@ -0,0 +1,20 @@ +1: "isdigit" +5: "isdigit" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_simplify5" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/isdigit-i16.txt b/SSA/Projects/InstCombine/tests/logs/isdigit-i16.txt new file mode 100644 index 000000000..f12fae12e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/isdigit-i16.txt @@ -0,0 +1,61 @@ +1: "isdigit" +5: "isdigit" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_isdigit" +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.call + +4: "fold_isdigit" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/ispow2.txt b/SSA/Projects/InstCombine/tests/logs/ispow2.txt new file mode 100644 index 000000000..d030e8de7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ispow2.txt @@ -0,0 +1,668 @@ +1: "is_pow2or0_negate_op" +4: "is_pow2or0_negate_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_negate_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_negate_op_vec" +4: "is_pow2or0_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_decrement_op" +4: "is_pow2or0_decrement_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_decrement_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_decrement_op_vec" +4: "is_pow2or0_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_negate_op" +4: "isnot_pow2or0_negate_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_negate_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_negate_op_vec" +4: "isnot_pow2or0_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_decrement_op" +4: "isnot_pow2or0_decrement_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_decrement_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_decrement_op_vec" +4: "isnot_pow2or0_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_negate_op_commute1" +4: "is_pow2or0_negate_op_commute1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_negate_op_commute1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_negate_op_commute2" +4: "isnot_pow2or0_negate_op_commute2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_negate_op_commute2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2or0_negate_op_commute3" +4: "isnot_pow2or0_negate_op_commute3" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2or0_negate_op_commute3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "is_pow2or0_negate_op_extra_use1" +4: "is_pow2or0_negate_op_extra_use1" has unsupported operation: llvm.call + +4: "is_pow2or0_negate_op_extra_use1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_negate_op_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_negate_op_extra_use2" +4: "is_pow2or0_negate_op_extra_use2" has unsupported operation: llvm.call + +4: "is_pow2or0_negate_op_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop" +4: "is_pow2_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_non_zero_ult_2" +4: "is_pow2_non_zero_ult_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_non_zero_ult_2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "is_pow2_non_zero_ult_2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_non_zero_ult_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_non_zero_eq_1" +4: "is_pow2_non_zero_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_non_zero_eq_1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "is_pow2_non_zero_eq_1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_non_zero_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_non_zero_ugt_1" +4: "is_pow2_non_zero_ugt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_non_zero_ugt_1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "is_pow2_non_zero_ugt_1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_non_zero_ugt_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_non_zero_ne_1" +4: "is_pow2_non_zero_ne_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_non_zero_ne_1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "is_pow2_non_zero_ne_1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_non_zero_ne_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_logical" +4: "is_pow2_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use_i1" +5: "use_i1" is empty + +1: "is_pow2_ctpop_extra_uses" +4: "is_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_extra_uses_logical" +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: llvm.call + +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: llvm.call + +4: "is_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_commute_vec" +4: "is_pow2_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_cmp_op1" +4: "is_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_cmp_op1_logical" +4: "is_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "is_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_cmp_op2_logical" +4: "is_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "is_pow2_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_pred1_logical" +4: "is_pow2_ctpop_wrong_pred1_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_wrong_pred1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_pred2" +4: "is_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_ctpop_wrong_pred2_logical" +4: "is_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "isnot_pow2_ctpop" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_logical" +4: "isnot_pow2_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_extra_uses" +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_extra_uses_logical" +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: llvm.call + +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: llvm.call + +4: "isnot_pow2_ctpop_extra_uses_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_commute_vec" +4: "isnot_pow2_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_wrong_cmp_op1" +4: "isnot_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_wrong_cmp_op1_logical" +4: "isnot_pow2_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "isnot_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_wrong_cmp_op2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_wrong_cmp_op2_logical" +4: "isnot_pow2_ctpop_wrong_cmp_op2_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "isnot_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2_ctpop_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_ctpop_wrong_pred2_logical" +4: "isnot_pow2_ctpop_wrong_pred2_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "is_pow2_negate_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_negate_op_logical" +4: "is_pow2_negate_op_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_negate_op_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_negate_op_vec" +4: "is_pow2_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_decrement_op" +4: "is_pow2_decrement_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_decrement_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_decrement_op_logical" +4: "is_pow2_decrement_op_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_decrement_op_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_decrement_op_vec" +4: "is_pow2_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_negate_op" +4: "isnot_pow2_negate_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_negate_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_negate_op_logical" +4: "isnot_pow2_negate_op_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_negate_op_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_negate_op_vec" +4: "isnot_pow2_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_negate_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_decrement_op" +4: "isnot_pow2_decrement_op" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_decrement_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_decrement_op_logical" +4: "isnot_pow2_decrement_op_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_decrement_op_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2_decrement_op_vec" +4: "isnot_pow2_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2_decrement_op_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop" +4: "is_pow2or0_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_swap_cmp" +4: "is_pow2or0_ctpop_swap_cmp" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_swap_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_logical" +4: "is_pow2or0_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_commute_vec" +4: "is_pow2or0_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_extra_uses" +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_logical_extra_uses" +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "is_pow2or0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_wrong_cmp_op1" +4: "is_pow2or0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_wrong_cmp_op1_logical" +4: "is_pow2or0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "is_pow2or0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_wrong_pred1" +4: "is_pow2or0_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_wrong_pred2" +4: "is_pow2or0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2or0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "is_pow2or0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "is_pow2or0_ctpop_wrong_pred2_logical" +4: "is_pow2or0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +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.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 + +1: "isnot_pow2nor0_ctpop" +4: "isnot_pow2nor0_ctpop" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_swap_cmp" +4: "isnot_pow2nor0_ctpop_swap_cmp" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_swap_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_logical" +4: "isnot_pow2nor0_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_commute_vec" +4: "isnot_pow2nor0_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_commute_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_extra_uses" +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_logical_extra_uses" +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: llvm.call + +4: "isnot_pow2nor0_ctpop_logical_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_wrong_cmp_op1" +4: "isnot_pow2nor0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_wrong_cmp_op1_logical" +4: "isnot_pow2nor0_ctpop_wrong_cmp_op1_logical" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +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.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 + +4: "isnot_pow2nor0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_commute_vec_wrong_cmp_op1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_wrong_pred1" +4: "isnot_pow2nor0_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_wrong_pred2" +4: "isnot_pow2nor0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +4: "isnot_pow2nor0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "isnot_pow2nor0_ctpop_wrong_pred2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "isnot_pow2nor0_ctpop_wrong_pred2_logical" +4: "isnot_pow2nor0_ctpop_wrong_pred2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctpop + +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.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 + +1: "is_pow2_fail_pr63327" +4: "is_pow2_fail_pr63327" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z" +4: "blsmsk_is_p2_or_z" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z" +4: "blsmsk_isnt_p2_or_z" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_isnt_p2_or_z" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_fail" +4: "blsmsk_is_p2_or_z_fail" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_is_p2_or_z_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_fail" +4: "blsmsk_isnt_p2_or_z_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use.i32" +5: "use.i32" is empty + +1: "blsmsk_isnt_p2_or_z_fail_multiuse" +4: "blsmsk_isnt_p2_or_z_fail_multiuse" has unsupported operation: llvm.call + +4: "blsmsk_isnt_p2_or_z_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_fail_wrong_add" +4: "blsmsk_isnt_p2_or_z_fail_wrong_add" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_fail_bad_xor" +4: "blsmsk_isnt_p2_or_z_fail_bad_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_fail_bad_cmp" +4: "blsmsk_is_p2_or_z_fail_bad_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_ule_xy" +4: "blsmsk_is_p2_or_z_ule_xy" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_is_p2_or_z_ule_xy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_ule_yx_fail" +4: "blsmsk_is_p2_or_z_ule_yx_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_uge_yx" +4: "blsmsk_is_p2_or_z_uge_yx" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_is_p2_or_z_uge_yx" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_is_p2_or_z_uge_xy_fail" +4: "blsmsk_is_p2_or_z_uge_xy_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_ugt_xy" +4: "blsmsk_isnt_p2_or_z_ugt_xy" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_isnt_p2_or_z_ugt_xy" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_ugt_yx_fail" +4: "blsmsk_isnt_p2_or_z_ugt_yx_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_ult_yx" +4: "blsmsk_isnt_p2_or_z_ult_yx" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "blsmsk_isnt_p2_or_z_ult_yx" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "blsmsk_isnt_p2_or_z_ult_xy_fail" +4: "blsmsk_isnt_p2_or_z_ult_xy_fail" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_nz_known_bits" +4: "is_pow2_nz_known_bits" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_nz_known_bits_fail_multiuse" +4: "is_pow2_nz_known_bits_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_pow2_nz_known_bits_fail_multiuse" has unsupported operation: llvm.call + +4: "is_pow2_nz_known_bits_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_pow2_nz_known_bits" +4: "not_pow2_nz_known_bits" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_pow2_nz_known_bits_fail_not_p2_test" +4: "not_pow2_nz_known_bits_fail_not_p2_test" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "not_pow2_nz_known_bits_fail_not_p2_test" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_pow2_or_z_known_bits" +4: "is_pow2_or_z_known_bits" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_pow2_or_z_known_bits" +4: "not_pow2_or_z_known_bits" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_pow2_or_z_known_bits_fail_wrong_cmp" +4: "not_pow2_or_z_known_bits_fail_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "not_pow2_or_z_known_bits_fail_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "has_single_bit" +4: "has_single_bit" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "has_single_bit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "has_single_bit_inv" +4: "has_single_bit_inv" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "has_single_bit_inv" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_power2_or_zero_with_range" +4: "is_power2_or_zero_with_range" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_power2_or_zero_with_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "is_power2_or_zero_inv_with_range" +4: "is_power2_or_zero_inv_with_range" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "is_power2_or_zero_inv_with_range" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/kcfi-operand-bundles.txt b/SSA/Projects/InstCombine/tests/logs/kcfi-operand-bundles.txt new file mode 100644 index 000000000..3203638be --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/kcfi-operand-bundles.txt @@ -0,0 +1,15 @@ +1: "f1" +4: "f1" has unsupported operation: llvm.return + +1: "f2" +5: "f2" is empty + +1: "g" +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/known-bits.txt b/SSA/Projects/InstCombine/tests/logs/known-bits.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt b/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt new file mode 100644 index 000000000..8f9d61c8b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-fpclass-reduce-signbit.txt @@ -0,0 +1,43 @@ +1: "vector_reduce_maximum_signbit" +"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 + +4: "vector_reduce_maximum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmaximum + +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 + +1: "vector_reduce_minimum_signbit_fail_maybe_nan" +4: "vector_reduce_minimum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "vector_reduce_minimum_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fminimum + +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 + +1: "vector_reduce_max_signbit_fail_maybe_nan" +4: "vector_reduce_max_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "vector_reduce_max_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmax + +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 + +1: "vector_reduce_min_signbit_fail_maybe_nan" +4: "vector_reduce_min_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "vector_reduce_min_signbit_fail_maybe_nan" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmin + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt b/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt new file mode 100644 index 000000000..d479b59a3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-never-nan.txt @@ -0,0 +1,96 @@ +1: "fabs_sqrt_src_maybe_nan" +4: "fabs_sqrt_src_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +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" +4: "nnan_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_fadd_maybe_nan_lhs" +4: "nnan_fadd_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd_maybe_nan_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_fadd_maybe_nan_rhs" +4: "nnan_fadd_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fadd_maybe_nan_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_fmul" +4: "nnan_fmul" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fmul" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "nnan_fmul" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_fsub" +4: "nnan_fsub" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fsub" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "nnan_fsub" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "func" +5: "func" is empty + +1: "nnan_fneg" +4: "nnan_fneg" has unsupported operation: llvm.call + +1: "nnan_unary_fneg" +4: "nnan_unary_fneg" has unsupported operation: llvm.call + +1: "fpext_maybe_nan" +4: "fpext_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fptrunc_maybe_nan" +4: "fptrunc_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fptrunc_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_fdiv" +4: "nnan_fdiv" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fdiv" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "nnan_fdiv" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "nnan_frem" +4: "nnan_frem" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_frem" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "nnan_frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "nnan_frem" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "llvm.canonicalize.f64" +5: "llvm.canonicalize.f64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/known-non-zero.txt b/SSA/Projects/InstCombine/tests/logs/known-non-zero.txt new file mode 100644 index 000000000..d36957b7a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-non-zero.txt @@ -0,0 +1,104 @@ +1: "test0" +4: "test0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test0" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test0" has unsupported operation: builtin.unregistered: llvm.br + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +1: "D60846_miscompile" +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.br + +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "D60846_miscompile" has unsupported operation: llvm.store + +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.br + +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "D60846_miscompile" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "D60846_miscompile" has unsupported operation: llvm.return + +1: "test_sgt_zero" +4: "test_sgt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sgt_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_sgt_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test_slt_neg_ten" +4: "test_slt_neg_ten" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_slt_neg_ten" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_slt_ten" +4: "test_slt_ten" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_slt_ten" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_slt_ten" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test_ugt_unknown" +4: "test_ugt_unknown" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_ugt_unknown" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ugt_unknown" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test_sle_zero" +4: "test_sle_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sle_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_sle_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test_sge_neg_ten" +4: "test_sge_neg_ten" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sge_neg_ten" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_sge_ten" +4: "test_sge_ten" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sge_ten" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_sge_ten" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test_ule_unknown" +4: "test_ule_unknown" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_ule_unknown" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_ule_unknown" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + diff --git a/SSA/Projects/InstCombine/tests/logs/known-phi-br.txt b/SSA/Projects/InstCombine/tests/logs/known-phi-br.txt new file mode 100644 index 000000000..1b3612457 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-phi-br.txt @@ -0,0 +1,61 @@ +1: "limit_i64_eq_7" +4: "limit_i64_eq_7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_eq_7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_eq_7" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_ne_255" +4: "limit_i64_ne_255" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ne_255" has unsupported operation: llvm.call + +4: "limit_i64_ne_255" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ne_255" has unsupported operation: builtin.unregistered: llvm.br + +1: "use" +5: "use" is empty + +1: "limit_i64_ule_15" +4: "limit_i64_ule_15" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ule_15" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ule_15" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_uge_8" +4: "limit_i64_uge_8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_uge_8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_uge_8" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_ult_8" +4: "limit_i64_ult_8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ult_8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ult_8" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_ugt_7" +4: "limit_i64_ugt_7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ugt_7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ugt_7" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_ule_15_mask3" +4: "limit_i64_ule_15_mask3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ule_15_mask3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ule_15_mask3" has unsupported operation: builtin.unregistered: llvm.br + +1: "limit_i64_ult_8_mask1" +4: "limit_i64_ult_8_mask1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "limit_i64_ult_8_mask1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "limit_i64_ult_8_mask1" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/known-phi-recurse.txt b/SSA/Projects/InstCombine/tests/logs/known-phi-recurse.txt new file mode 100644 index 000000000..46c3ae50a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-phi-recurse.txt @@ -0,0 +1,46 @@ +1: "single_entry_phi" +4: "single_entry_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "single_entry_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "single_entry_phi" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "single_entry_phi" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "two_entry_phi_with_constant" +4: "two_entry_phi_with_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "two_entry_phi_with_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "two_entry_phi_with_constant" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_entry_phi_with_constant" has unsupported operation: builtin.unregistered: llvm.br + +1: "two_entry_phi_non_constant" +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "two_entry_phi_non_constant" has unsupported operation: builtin.unregistered: llvm.br + +1: "neg_many_branches" +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.switch + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.br + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.br + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.br + +4: "neg_many_branches" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/known-signbit-shift.txt b/SSA/Projects/InstCombine/tests/logs/known-signbit-shift.txt new file mode 100644 index 000000000..d96c10aaa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known-signbit-shift.txt @@ -0,0 +1,12 @@ +1: "test_shift_nonnegative" +4: "test_shift_nonnegative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_shift_negative" +4: "test_shift_negative" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_no_sign_bit_conflict1" +4: "test_no_sign_bit_conflict1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "test_no_sign_bit_conflict2" +4: "test_no_sign_bit_conflict2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/known_align.txt b/SSA/Projects/InstCombine/tests/logs/known_align.txt new file mode 100644 index 000000000..a2d538680 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/known_align.txt @@ -0,0 +1,2 @@ +3: known_align.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/ldexp-ext.txt b/SSA/Projects/InstCombine/tests/logs/ldexp-ext.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ldexp.txt b/SSA/Projects/InstCombine/tests/logs/ldexp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/lib-call-exit.txt b/SSA/Projects/InstCombine/tests/logs/lib-call-exit.txt new file mode 100644 index 000000000..256e6874a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lib-call-exit.txt @@ -0,0 +1,26 @@ +1: "exit" +5: "exit" is empty + +1: "_Exit" +5: "_Exit" is empty + +1: "call_exit_0" +4: "call_exit_0" has unsupported operation: llvm.call + +4: "call_exit_0" has unsupported operation: llvm.return + +1: "call_exit_1" +4: "call_exit_1" has unsupported operation: llvm.call + +4: "call_exit_1" has unsupported operation: llvm.return + +1: "call__Exit_m1" +4: "call__Exit_m1" has unsupported operation: llvm.call + +4: "call__Exit_m1" has unsupported operation: llvm.return + +1: "call__Exit_N" +4: "call__Exit_N" has unsupported operation: llvm.call + +4: "call__Exit_N" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/lifetime-no-null-opt.txt b/SSA/Projects/InstCombine/tests/logs/lifetime-no-null-opt.txt new file mode 100644 index 000000000..946c0a1cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lifetime-no-null-opt.txt @@ -0,0 +1,32 @@ +1: "foo" +5: "foo" is empty + +1: "bar" +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.dbg.declare + +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "bar" has unsupported operation: llvm.call + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/lifetime-sanitizer.txt b/SSA/Projects/InstCombine/tests/logs/lifetime-sanitizer.txt new file mode 100644 index 000000000..4a3e954de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lifetime-sanitizer.txt @@ -0,0 +1,43 @@ +1: "foo" +5: "foo" is empty + +1: "asan" +4: "asan" has unsupported operation: llvm.alloca + +4: "asan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "asan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "asan" has unsupported operation: llvm.call + +4: "asan" has unsupported operation: llvm.return + +1: "hwasan" +4: "hwasan" has unsupported operation: llvm.alloca + +4: "hwasan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "hwasan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "hwasan" has unsupported operation: llvm.call + +4: "hwasan" has unsupported operation: llvm.return + +1: "msan" +4: "msan" has unsupported operation: llvm.alloca + +4: "msan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "msan" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "msan" has unsupported operation: llvm.call + +4: "msan" has unsupported operation: llvm.return + +1: "no_asan" +4: "no_asan" has unsupported operation: llvm.alloca + +4: "no_asan" has unsupported operation: llvm.call + +4: "no_asan" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/lifetime.txt b/SSA/Projects/InstCombine/tests/logs/lifetime.txt new file mode 100644 index 000000000..946c0a1cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lifetime.txt @@ -0,0 +1,32 @@ +1: "foo" +5: "foo" is empty + +1: "bar" +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.dbg.declare + +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "bar" has unsupported operation: llvm.call + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "bar" has unsupported operation: builtin.unregistered: llvm.br + +4: "bar" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt b/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt new file mode 100644 index 000000000..b7807d4c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-bitcast-select.txt @@ -0,0 +1,58 @@ +1: "_Z3foov" +4: "_Z3foov" has unsupported operation: llvm.mlir.addressof + +4: "_Z3foov" has unsupported operation: llvm.mlir.addressof + +4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z3foov" has unsupported operation: llvm.return + +4: "_Z3foov" has unsupported operation: builtin.unregistered: llvm.zext + +4: "_Z3foov" has unsupported operation: llvm.getelementptr + +4: "_Z3foov" has unsupported operation: llvm.getelementptr + +4: "_Z3foov" has unsupported operation: llvm.load + +4: "_Z3foov" has unsupported operation: llvm.load + +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 + +4: "bitcasted_store" has unsupported operation: llvm.return + +1: "bitcasted_minmax_with_select_of_pointers" +4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: llvm.load + +4: "bitcasted_minmax_with_select_of_pointers" has unsupported operation: llvm.load + +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-bitcast-vec.txt b/SSA/Projects/InstCombine/tests/logs/load-bitcast-vec.txt new file mode 100644 index 000000000..2f6ab0e5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-bitcast-vec.txt @@ -0,0 +1,36 @@ +1: "matching_scalar" +4: "matching_scalar" has unsupported operation: llvm.load + +1: "nonmatching_scalar" +4: "nonmatching_scalar" has unsupported operation: llvm.load + +1: "larger_scalar" +4: "larger_scalar" has unsupported operation: llvm.load + +1: "smaller_scalar" +4: "smaller_scalar" has unsupported operation: llvm.load + +1: "smaller_scalar_less_aligned" +4: "smaller_scalar_less_aligned" has unsupported operation: llvm.load + +1: "matching_scalar_small_deref" +4: "matching_scalar_small_deref" has unsupported operation: llvm.load + +1: "matching_scalar_smallest_deref" +4: "matching_scalar_smallest_deref" has unsupported operation: llvm.load + +1: "matching_scalar_smallest_deref_or_null" +4: "matching_scalar_smallest_deref_or_null" has unsupported operation: llvm.load + +1: "matching_scalar_smallest_deref_addrspace" +4: "matching_scalar_smallest_deref_addrspace" has unsupported operation: llvm.load + +1: "matching_scalar_smallest_deref_or_null_addrspace" +4: "matching_scalar_smallest_deref_or_null_addrspace" has unsupported operation: llvm.load + +1: "matching_scalar_volatile" +4: "matching_scalar_volatile" has unsupported operation: llvm.load + +1: "nonvector" +4: "nonvector" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/load-bitcast32.txt b/SSA/Projects/InstCombine/tests/logs/load-bitcast32.txt new file mode 100644 index 000000000..3b0087821 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-bitcast32.txt @@ -0,0 +1,36 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1" has unsupported operation: llvm.inttoptr + +1: "test2" +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: llvm.inttoptr + +1: "test3" +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: llvm.inttoptr + +1: "test4" +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test5" +4: "test5" has unsupported operation: llvm.load + +4: "test5" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test6" +4: "test6" has unsupported operation: llvm.load + +4: "test6" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test6" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/load-bitcast64.txt b/SSA/Projects/InstCombine/tests/logs/load-bitcast64.txt new file mode 100644 index 000000000..2558d1568 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-bitcast64.txt @@ -0,0 +1,36 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: llvm.inttoptr + +1: "test2" +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation: llvm.inttoptr + +1: "test3" +4: "test3" has unsupported operation: llvm.load + +4: "test3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test3" has unsupported operation: llvm.inttoptr + +1: "test4" +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test5" +4: "test5" has unsupported operation: llvm.load + +4: "test5" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test5" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test6" +4: "test6" has unsupported operation: llvm.load + +4: "test6" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/load-cmp.txt b/SSA/Projects/InstCombine/tests/logs/load-cmp.txt new file mode 100644 index 000000000..5296623a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-cmp.txt @@ -0,0 +1,2 @@ +3: load-cmp.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-2.txt b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-2.txt new file mode 100644 index 000000000..9fe4ea40d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-2.txt @@ -0,0 +1,7 @@ +1: "test_load_load_combine_metadata" +4: "test_load_load_combine_metadata" has unsupported operation: llvm.load + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.store + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-3.txt b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-3.txt new file mode 100644 index 000000000..9fe4ea40d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-3.txt @@ -0,0 +1,7 @@ +1: "test_load_load_combine_metadata" +4: "test_load_load_combine_metadata" has unsupported operation: llvm.load + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.store + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-4.txt b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-4.txt new file mode 100644 index 000000000..9fe4ea40d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-4.txt @@ -0,0 +1,7 @@ +1: "test_load_load_combine_metadata" +4: "test_load_load_combine_metadata" has unsupported operation: llvm.load + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.store + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-dominance.txt b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-dominance.txt new file mode 100644 index 000000000..fa92cce69 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata-dominance.txt @@ -0,0 +1,59 @@ +1: "combine_metadata_dominance1" +4: "combine_metadata_dominance1" has unsupported operation: builtin.unregistered: llvm.br + +4: "combine_metadata_dominance1" has unsupported operation: llvm.load + +4: "combine_metadata_dominance1" has unsupported operation: llvm.store + +4: "combine_metadata_dominance1" has unsupported operation: llvm.return + +1: "use" +5: "use" is empty + +1: "combine_metadata_dominance2" +4: "combine_metadata_dominance2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "combine_metadata_dominance2" has unsupported operation: llvm.load + +4: "combine_metadata_dominance2" has unsupported operation: llvm.store + +4: "combine_metadata_dominance2" has unsupported operation: llvm.return + +4: "combine_metadata_dominance2" has unsupported operation: llvm.return + +1: "combine_metadata_dominance3" +4: "combine_metadata_dominance3" has unsupported operation: builtin.unregistered: llvm.br + +4: "combine_metadata_dominance3" has unsupported operation: llvm.load + +4: "combine_metadata_dominance3" has unsupported operation: llvm.store + +4: "combine_metadata_dominance3" has unsupported operation: llvm.return + +1: "combine_metadata_dominance4" +4: "combine_metadata_dominance4" has unsupported operation: builtin.unregistered: llvm.br + +4: "combine_metadata_dominance4" has unsupported operation: llvm.load + +4: "combine_metadata_dominance4" has unsupported operation: llvm.store + +4: "combine_metadata_dominance4" has unsupported operation: llvm.return + +1: "combine_metadata_dominance5" +4: "combine_metadata_dominance5" has unsupported operation: builtin.unregistered: llvm.br + +4: "combine_metadata_dominance5" has unsupported operation: llvm.load + +4: "combine_metadata_dominance5" has unsupported operation: llvm.store + +4: "combine_metadata_dominance5" has unsupported operation: llvm.return + +1: "combine_metadata_dominance6" +4: "combine_metadata_dominance6" has unsupported operation: builtin.unregistered: llvm.br + +4: "combine_metadata_dominance6" has unsupported operation: llvm.load + +4: "combine_metadata_dominance6" has unsupported operation: llvm.store + +4: "combine_metadata_dominance6" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-combine-metadata.txt b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata.txt new file mode 100644 index 000000000..1c99c8576 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-combine-metadata.txt @@ -0,0 +1,9 @@ +1: "test_load_load_combine_metadata" +4: "test_load_load_combine_metadata" has unsupported operation: llvm.load + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.store + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.store + +4: "test_load_load_combine_metadata" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-gep-overalign.txt b/SSA/Projects/InstCombine/tests/logs/load-gep-overalign.txt new file mode 100644 index 000000000..d447322c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-gep-overalign.txt @@ -0,0 +1,22 @@ +1: "report" +5: "report" is empty + +1: "test_vector_load_i8" +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.call + +4: "test_vector_load_i8" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load-no-aliasing.txt b/SSA/Projects/InstCombine/tests/logs/load-no-aliasing.txt new file mode 100644 index 000000000..a643bd23f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-no-aliasing.txt @@ -0,0 +1,7 @@ +1: "test_load_store_load_combine" +4: "test_load_store_load_combine" has unsupported operation: llvm.load + +4: "test_load_store_load_combine" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test_load_store_load_combine" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/load-select.txt b/SSA/Projects/InstCombine/tests/logs/load-select.txt new file mode 100644 index 000000000..eddca0f8b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-select.txt @@ -0,0 +1,5 @@ +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/load-store-forward.txt b/SSA/Projects/InstCombine/tests/logs/load-store-forward.txt new file mode 100644 index 000000000..0e6ca97a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load-store-forward.txt @@ -0,0 +1,2 @@ +3: load-store-forward.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/load-store-masked-constant-array.txt b/SSA/Projects/InstCombine/tests/logs/load-store-masked-constant-array.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/load.txt b/SSA/Projects/InstCombine/tests/logs/load.txt new file mode 100644 index 000000000..7cc162201 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load.txt @@ -0,0 +1,2 @@ +3: load.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/load3.txt b/SSA/Projects/InstCombine/tests/logs/load3.txt new file mode 100644 index 000000000..f2d8e6cca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load3.txt @@ -0,0 +1,21 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.getelementptr + +4: "test1" has unsupported operation after optimization: llvm.load + +4: "test1" has unsupported operation after optimization: llvm.getelementptr + +4: "test1" has unsupported operation after optimization: llvm.load + +1: "test2" +4: "test2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test2" has unsupported operation after optimization: llvm.load + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/load_combine_aa.txt b/SSA/Projects/InstCombine/tests/logs/load_combine_aa.txt new file mode 100644 index 000000000..d54f1c9cf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/load_combine_aa.txt @@ -0,0 +1,11 @@ +1: "test_load_combine_aa" +4: "test_load_combine_aa" has unsupported operation: llvm.load + +4: "test_load_combine_aa" has unsupported operation: llvm.store + +4: "test_load_combine_aa" has unsupported operation: llvm.store + +4: "test_load_combine_aa" has unsupported operation: llvm.store + +4: "test_load_combine_aa" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/loadstore-alignment.txt b/SSA/Projects/InstCombine/tests/logs/loadstore-alignment.txt new file mode 100644 index 000000000..d8c17b74e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/loadstore-alignment.txt @@ -0,0 +1,91 @@ +1: "static_hem" +4: "static_hem" has unsupported operation: llvm.mlir.addressof + +4: "static_hem" has unsupported operation: llvm.getelementptr + +4: "static_hem" has unsupported operation: llvm.load + +1: "hem" +4: "hem" has unsupported operation: llvm.mlir.addressof + +4: "hem" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem" has unsupported operation: llvm.getelementptr + +4: "hem" has unsupported operation: llvm.load + +1: "hem_2d" +4: "hem_2d" has unsupported operation: llvm.mlir.addressof + +4: "hem_2d" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem_2d" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem_2d" has unsupported operation: llvm.getelementptr + +4: "hem_2d" has unsupported operation: llvm.load + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.load + +1: "bar" +4: "bar" has unsupported operation: llvm.alloca + +4: "bar" has unsupported operation: llvm.call + +4: "bar" has unsupported operation: llvm.load + +1: "static_hem_store" +4: "static_hem_store" has unsupported operation: llvm.mlir.addressof + +4: "static_hem_store" has unsupported operation: llvm.getelementptr + +4: "static_hem_store" has unsupported operation: llvm.store + +4: "static_hem_store" has unsupported operation: llvm.return + +1: "hem_store" +4: "hem_store" has unsupported operation: llvm.mlir.addressof + +4: "hem_store" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem_store" has unsupported operation: llvm.getelementptr + +4: "hem_store" has unsupported operation: llvm.store + +4: "hem_store" has unsupported operation: llvm.return + +1: "hem_2d_store" +4: "hem_2d_store" has unsupported operation: llvm.mlir.addressof + +4: "hem_2d_store" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem_2d_store" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hem_2d_store" has unsupported operation: llvm.getelementptr + +4: "hem_2d_store" has unsupported operation: llvm.store + +4: "hem_2d_store" has unsupported operation: llvm.return + +1: "foo_store" +4: "foo_store" has unsupported operation: llvm.mlir.addressof + +4: "foo_store" has unsupported operation: llvm.store + +4: "foo_store" has unsupported operation: llvm.return + +1: "bar_store" +4: "bar_store" has unsupported operation: llvm.alloca + +4: "bar_store" has unsupported operation: llvm.call + +4: "bar_store" has unsupported operation: llvm.store + +4: "bar_store" has unsupported operation: llvm.return + +1: "kip" +5: "kip" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/loadstore-metadata.txt b/SSA/Projects/InstCombine/tests/logs/loadstore-metadata.txt new file mode 100644 index 000000000..6bed111ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/loadstore-metadata.txt @@ -0,0 +1,60 @@ +1: "test_load_cast_combine_tbaa" +4: "test_load_cast_combine_tbaa" has unsupported operation: llvm.load + +1: "test_load_cast_combine_noalias" +4: "test_load_cast_combine_noalias" has unsupported operation: llvm.load + +1: "test_load_cast_combine_range" +4: "test_load_cast_combine_range" has unsupported operation: llvm.load + +1: "test_load_cast_combine_invariant" +4: "test_load_cast_combine_invariant" has unsupported operation: llvm.load + +1: "test_load_cast_combine_nontemporal" +4: "test_load_cast_combine_nontemporal" has unsupported operation: llvm.load + +1: "test_load_cast_combine_align" +4: "test_load_cast_combine_align" has unsupported operation: llvm.load + +1: "test_load_cast_combine_deref" +4: "test_load_cast_combine_deref" has unsupported operation: llvm.load + +1: "test_load_cast_combine_deref_or_null" +4: "test_load_cast_combine_deref_or_null" has unsupported operation: llvm.load + +1: "test_load_cast_combine_loop" +4: "test_load_cast_combine_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_load_cast_combine_loop" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_load_cast_combine_loop" has unsupported operation: llvm.getelementptr + +4: "test_load_cast_combine_loop" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_load_cast_combine_loop" has unsupported operation: llvm.getelementptr + +4: "test_load_cast_combine_loop" has unsupported operation: llvm.load + +4: "test_load_cast_combine_loop" has unsupported operation: llvm.store + +4: "test_load_cast_combine_loop" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_load_cast_combine_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_load_cast_combine_loop" has unsupported operation: llvm.return + +1: "test_load_cast_combine_nonnull" +4: "test_load_cast_combine_nonnull" has unsupported operation: llvm.load + +4: "test_load_cast_combine_nonnull" has unsupported operation: llvm.getelementptr + +4: "test_load_cast_combine_nonnull" has unsupported operation: llvm.store + +4: "test_load_cast_combine_nonnull" has unsupported operation: llvm.return + +1: "test_load_cast_combine_noundef" +4: "test_load_cast_combine_noundef" has unsupported operation: llvm.load + +1: "test_load_cast_combine_noalias_addrspace" +4: "test_load_cast_combine_noalias_addrspace" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/log-pow-nofastmath.txt b/SSA/Projects/InstCombine/tests/logs/log-pow-nofastmath.txt new file mode 100644 index 000000000..9851bf6de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/log-pow-nofastmath.txt @@ -0,0 +1,16 @@ +1: "mylog" +4: "mylog" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "mylog" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: llvm.call + +1: "log" +5: "log" is empty + +1: "exp2" +5: "exp2" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/log-pow.txt b/SSA/Projects/InstCombine/tests/logs/log-pow.txt new file mode 100644 index 000000000..00f2080a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/log-pow.txt @@ -0,0 +1,111 @@ +1: "log_pow" +4: "log_pow" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "log_pow" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log_powi_const" +4: "log_powi_const" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "log_powi_const" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log_powi_nonconst" +4: "log_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "log_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "log_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "logf64_powi_nonconst" +4: "logf64_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "logf64_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "logf64_powi_nonconst" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "logf_powfi_const" +4: "logf_powfi_const" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "logf_powfi_const" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "logf_powfi_nonconst" +4: "logf_powfi_nonconst" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "logf_powfi_nonconst" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "logf_powfi_nonconst" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log_powi_not_fast" +4: "log_powi_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "log_powi_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "log10f_powf" +4: "log10f_powf" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +4: "log10f_powf" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log2v_powv" +4: "log2v_powv" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +4: "log2v_powv" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log_pow_not_fast" +4: "log_pow_not_fast" has unsupported operation: llvm.call + +4: "log_pow_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "function_pointer" +4: "function_pointer" has unsupported operation: llvm.call + +4: "function_pointer" has unsupported operation: llvm.call + +1: "log10_exp" +4: "log10_exp" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "logv_exp2v" +4: "logv_exp2v" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log2f_exp10f" +4: "log2f_exp10f" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log_exp2_not_fast" +4: "log_exp2_not_fast" has unsupported operation: llvm.call + +4: "log_exp2_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "pr43617" +4: "pr43617" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "pr43617" has unsupported operation: llvm.call + +4: "pr43617" has unsupported operation: builtin.unregistered: llvm.intr.log + +4: "pr43617" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "log" +5: "log" is empty + +1: "logf" +5: "logf" is empty + +1: "log2f" +5: "log2f" is empty + +1: "log10" +5: "log10" is empty + +1: "exp" +5: "exp" is empty + +1: "exp2" +5: "exp2" is empty + +1: "exp10f" +5: "exp10f" is empty + +1: "pow" +5: "pow" is empty + +1: "powf" +5: "powf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/log-to-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/log-to-intrinsic.txt new file mode 100644 index 000000000..58792a1f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/log-to-intrinsic.txt @@ -0,0 +1,131 @@ +1: "test_logf_pos" +4: "test_logf_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_logf_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_logf_pos" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "test_log_pos" +4: "test_log_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log_pos" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "test_logl_pos" +4: "test_logl_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_logl_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_logl_pos" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "test_log10f_pos" +4: "test_log10f_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log10f_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log10f_pos" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +1: "test_log10_pos" +4: "test_log10_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log10_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log10_pos" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +1: "test_log10l_pos" +4: "test_log10l_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log10l_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log10l_pos" has unsupported operation: builtin.unregistered: llvm.intr.log10 + +1: "test_log2f_pos" +4: "test_log2f_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log2f_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log2f_pos" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +1: "test_log2_pos" +4: "test_log2_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log2_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log2_pos" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +1: "test_log2l_pos" +4: "test_log2l_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log2l_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log2l_pos" has unsupported operation: builtin.unregistered: llvm.intr.log2 + +1: "test_logb_pos" +4: "test_logb_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_logb_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_logb_pos" has unsupported operation: llvm.call + +1: "test_log1p_pos" +4: "test_log1p_pos" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_log1p_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_log1p_pos" has unsupported operation: llvm.call + +1: "metadata" +4: "metadata" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "metadata" has unsupported operation: builtin.unregistered: llvm.intr.log + +1: "test_logf_pos_denormalpreserve" +4: "test_logf_pos_denormalpreserve" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_logf_pos_denormalpreserve" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_logf_pos_denormalpreserve" has unsupported operation: llvm.call + +1: "test_logf_pos_denormaldynamic" +4: "test_logf_pos_denormaldynamic" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_logf_pos_denormaldynamic" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_logf_pos_denormaldynamic" has unsupported operation: llvm.call + +1: "log" +5: "log" is empty + +1: "logf" +5: "logf" is empty + +1: "logl" +5: "logl" is empty + +1: "log10" +5: "log10" is empty + +1: "log10f" +5: "log10f" is empty + +1: "log10l" +5: "log10l" is empty + +1: "log2" +5: "log2" is empty + +1: "log2f" +5: "log2f" is empty + +1: "log2l" +5: "log2l" is empty + +1: "logb" +5: "logb" is empty + +1: "log1p" +5: "log1p" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/logb.txt b/SSA/Projects/InstCombine/tests/logs/logb.txt new file mode 100644 index 000000000..b2cad4c40 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/logb.txt @@ -0,0 +1,46 @@ +1: "logbf_const" +4: "logbf_const" has unsupported operation: llvm.call + +1: "logb_const" +4: "logb_const" has unsupported operation: llvm.call + +1: "logbf_zero" +4: "logbf_zero" has unsupported operation: llvm.call + +1: "logb_zero" +4: "logb_zero" has unsupported operation: llvm.call + +1: "logbf_neg_zero" +4: "logbf_neg_zero" has unsupported operation: llvm.call + +1: "logb_neg_zero" +4: "logb_neg_zero" has unsupported operation: llvm.call + +1: "logbf_inf" +4: "logbf_inf" has unsupported operation: llvm.call + +1: "logb_inf" +4: "logb_inf" has unsupported operation: llvm.call + +1: "logbf_nan" +4: "logbf_nan" has unsupported operation: llvm.call + +1: "logb_nan" +4: "logb_nan" has unsupported operation: llvm.call + +1: "logbf_poison" +4: "logbf_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "logbf_poison" has unsupported operation: llvm.call + +1: "logb_poison" +4: "logb_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "logb_poison" has unsupported operation: llvm.call + +1: "logbf" +5: "logbf" is empty + +1: "logb" +5: "logb" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt new file mode 100644 index 000000000..1ad008cef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/logical-select-inseltpoison.txt @@ -0,0 +1,303 @@ +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 + +4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap0" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap1" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap2" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap3" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap4" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap5" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap6" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bitcast_select_swap7" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcast_select_multi_uses" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_select_multi_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_select_multi_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bools" +4: "bools" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical" +4: "bools_logical" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_multi_uses1" +4: "bools_multi_uses1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "bools_multi_uses2" +4: "bools_multi_uses2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "vec_of_bools" +4: "vec_of_bools" has unsupported operation: builtin.unregistered: llvm.select + +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" +4: "vec_sel_consts" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "vec_sel_consts_weird" +4: "vec_sel_consts_weird" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "vec_not_sel_consts" +7: "vec_not_sel_consts" is unchanged by InstCombine + +1: "vec_not_sel_consts_undef_elts" +4: "vec_not_sel_consts_undef_elts" has unsupported operation: llvm.mlir.undef + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: llvm.mlir.undef + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: llvm.mlir.undef + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_not_sel_consts_undef_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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 + +4: "fp_bitcast" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "fp_bitcast" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "fp_bitcast" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "computesignbits_through_shuffles" +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.sext + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "computesignbits_through_shuffles" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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/logical-select.txt b/SSA/Projects/InstCombine/tests/logs/logical-select.txt new file mode 100644 index 000000000..c0b2a4f88 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/logical-select.txt @@ -0,0 +1,2 @@ +3: logical-select.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt b/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt new file mode 100644 index 000000000..0f427178f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/low-bit-splat.txt @@ -0,0 +1,78 @@ +1: "use8" +5: "use8" is empty + +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.ashr +2: llvm.return + +1: "t1_otherbitwidth" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.ashr +2: llvm.return + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_poison0" +4: "t3_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t4_vec_poison1" +4: "t4_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t5_vec_poison2" +4: "t5_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "n6_extrause" +4: "n6_extrause" has unsupported operation: llvm.call + +1: "t7_already_masked" +4: "t7_already_masked" has unsupported operation: llvm.call + +1: "t8_already_masked_extrause" +4: "t8_already_masked_extrause" has unsupported operation: llvm.call + +4: "t8_already_masked_extrause" has unsupported operation: llvm.call + +1: "n9_wrongly_masked_extrause" +4: "n9_wrongly_masked_extrause" has unsupported operation: llvm.call + +4: "n9_wrongly_masked_extrause" has unsupported operation: llvm.call + +1: "n10" +7: "n10" is unchanged by InstCombine + +1: "n11" +7: "n11" is unchanged by InstCombine + +1: "n12" +7: "n12" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/lower-dbg-declare.txt b/SSA/Projects/InstCombine/tests/logs/lower-dbg-declare.txt new file mode 100644 index 000000000..d60926501 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lower-dbg-declare.txt @@ -0,0 +1,2 @@ +3: lower-dbg-declare.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/lshr-and-negC-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/lshr-and-negC-icmpeq-zero.txt new file mode 100644 index 000000000..31435dd3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lshr-and-negC-icmpeq-zero.txt @@ -0,0 +1,65 @@ +1: "scalar_i8_lshr_and_negC_eq" +4: "scalar_i8_lshr_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_lshr_and_negC_eq" +4: "scalar_i16_lshr_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq" +4: "scalar_i32_lshr_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_lshr_and_negC_eq" +4: "scalar_i64_lshr_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_ne" +4: "scalar_i32_lshr_and_negC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_lshr_and_negC_eq" +4: "vec_4xi32_lshr_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_lshr_and_negC_eq_poison1" +4: "vec_lshr_and_negC_eq_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_lshr_and_negC_eq_poison2" +4: "vec_lshr_and_negC_eq_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_lshr_and_negC_eq_poison3" +4: "vec_lshr_and_negC_eq_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_negC_eq_extra_use_lshr" +4: "scalar_lshr_and_negC_eq_extra_use_lshr" has unsupported operation: llvm.store + +4: "scalar_lshr_and_negC_eq_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_negC_eq_extra_use_and" +4: "scalar_lshr_and_negC_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_negC_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_negC_eq_extra_use_lshr_and" +4: "scalar_lshr_and_negC_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_negC_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_negC_eq_extra_use_lshr_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_X_is_constant1" +4: "scalar_i32_lshr_and_negC_eq_X_is_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_X_is_constant2" +4: "scalar_i32_lshr_and_negC_eq_X_is_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_udiv_and_negC_eq_X_is_constant3" +4: "scalar_i32_udiv_and_negC_eq_X_is_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_X_is_constant_negative" +4: "scalar_i32_lshr_and_negC_eq_X_is_constant_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_slt" +4: "scalar_i32_lshr_and_negC_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_nonzero" +4: "scalar_i32_lshr_and_negC_eq_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "scalar_i8_lshr_and_negC_eq_not_negatedPowerOf2" +4: "scalar_i8_lshr_and_negC_eq_not_negatedPowerOf2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/lshr-and-signbit-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/lshr-and-signbit-icmpeq-zero.txt new file mode 100644 index 000000000..b7abde05e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lshr-and-signbit-icmpeq-zero.txt @@ -0,0 +1,56 @@ +1: "scalar_i8_lshr_and_signbit_eq" +4: "scalar_i8_lshr_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_lshr_and_signbit_eq" +4: "scalar_i16_lshr_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_signbit_eq" +4: "scalar_i32_lshr_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_lshr_and_signbit_eq" +4: "scalar_i64_lshr_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_signbit_ne" +4: "scalar_i32_lshr_and_signbit_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_lshr_and_signbit_eq" +4: "vec_4xi32_lshr_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_lshr_and_signbit_eq_poison1" +4: "vec_4xi32_lshr_and_signbit_eq_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_lshr_and_signbit_eq_poison2" +4: "vec_4xi32_lshr_and_signbit_eq_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_lshr_and_signbit_eq_poison3" +4: "vec_4xi32_lshr_and_signbit_eq_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_signbit_eq_extra_use_lshr" +4: "scalar_lshr_and_signbit_eq_extra_use_lshr" has unsupported operation: llvm.store + +4: "scalar_lshr_and_signbit_eq_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_signbit_eq_extra_use_and" +4: "scalar_lshr_and_signbit_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_signbit_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_lshr_and_signbit_eq_extra_use_lshr_and" +4: "scalar_lshr_and_signbit_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_signbit_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_lshr_and_signbit_eq_extra_use_lshr_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_signbit_eq_X_is_constant1" +4: "scalar_i32_lshr_and_signbit_eq_X_is_constant1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_X_is_constant2" +4: "scalar_i32_lshr_and_negC_eq_X_is_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_slt" +4: "scalar_i32_lshr_and_negC_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_lshr_and_negC_eq_nonzero" +4: "scalar_i32_lshr_and_negC_eq_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/lshr-ashr-of-uscmp.txt b/SSA/Projects/InstCombine/tests/logs/lshr-ashr-of-uscmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/lshr-phi.txt b/SSA/Projects/InstCombine/tests/logs/lshr-phi.txt new file mode 100644 index 000000000..81de5a3e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lshr-phi.txt @@ -0,0 +1,21 @@ +1: "hash_string" +4: "hash_string" has unsupported operation: llvm.load + +4: "hash_string" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "hash_string" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "hash_string" has unsupported operation: llvm.getelementptr + +4: "hash_string" has unsupported operation: llvm.load + +4: "hash_string" has unsupported operation: builtin.unregistered: llvm.sext + +4: "hash_string" has unsupported operation: llvm.getelementptr + +4: "hash_string" has unsupported operation: llvm.load + +4: "hash_string" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "hash_string" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/lshr-trunc-sext-to-ashr-sext.txt b/SSA/Projects/InstCombine/tests/logs/lshr-trunc-sext-to-ashr-sext.txt new file mode 100644 index 000000000..75178c711 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lshr-trunc-sext-to-ashr-sext.txt @@ -0,0 +1,131 @@ +1: "use32" +5: "use32" is empty + +1: "use8" +5: "use8" is empty + +1: "use4" +5: "use4" is empty + +1: "usevec8" +5: "usevec8" is empty + +1: "usevec4" +5: "usevec4" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "n3" +4: "n3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n3" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t4_vec_splat" +4: "t4_vec_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t5_vec_poison" +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t6_extrause0" +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t6_extrause0" has unsupported operation: llvm.call + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t7_extrause0_vec_poison" +4: "t7_extrause0_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t7_extrause0_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t7_extrause0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t7_extrause0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t7_extrause0_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t7_extrause0_vec_poison" has unsupported operation: llvm.call + +4: "t7_extrause0_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t8_extrause1" +4: "t8_extrause1" has unsupported operation: llvm.call + +4: "t8_extrause1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t9_extrause1_vec_poison" +4: "t9_extrause1_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t9_extrause1_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t9_extrause1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t9_extrause1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t9_extrause1_vec_poison" has unsupported operation: llvm.call + +4: "t9_extrause1_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t10_extrause2" +4: "t10_extrause2" has unsupported operation: llvm.call + +4: "t10_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t10_extrause2" has unsupported operation: llvm.call + +4: "t10_extrause2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t11_extrause2_vec_poison" +4: "t11_extrause2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t11_extrause2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t11_extrause2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t11_extrause2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t11_extrause2_vec_poison" has unsupported operation: llvm.call + +4: "t11_extrause2_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t11_extrause2_vec_poison" has unsupported operation: llvm.call + +4: "t11_extrause2_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "wide_source_shifted_signbit" +4: "wide_source_shifted_signbit" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_source_shifted_signbit_use1" +4: "wide_source_shifted_signbit_use1" has unsupported operation: llvm.call + +4: "wide_source_shifted_signbit_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_source_shifted_signbit_use2" +4: "wide_source_shifted_signbit_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_source_shifted_signbit_use2" has unsupported operation: llvm.call + +4: "wide_source_shifted_signbit_use2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "same_source_shifted_signbit" +4: "same_source_shifted_signbit" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "same_source_shifted_signbit" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "same_source_shifted_signbit_use1" +4: "same_source_shifted_signbit_use1" has unsupported operation: llvm.call + +1: "same_source_shifted_signbit_use2" +4: "same_source_shifted_signbit_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "same_source_shifted_signbit_use2" has unsupported operation: llvm.call + +4: "same_source_shifted_signbit_use2" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/lshr.txt b/SSA/Projects/InstCombine/tests/logs/lshr.txt new file mode 100644 index 000000000..7a89cc6da --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/lshr.txt @@ -0,0 +1,558 @@ +1: "use" +5: "use" is empty + +1: "usevec" +5: "usevec" is empty + +1: "lshr_ctlz_zero_is_not_undef" +4: "lshr_ctlz_zero_is_not_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_ctlz_zero_is_not_undef" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_cttz_zero_is_not_undef" +4: "lshr_cttz_zero_is_not_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_cttz_zero_is_not_undef" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_ctpop" +4: "lshr_ctpop" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_ctpop" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_ctlz_zero_is_not_undef_splat_vec" +4: "lshr_ctlz_zero_is_not_undef_splat_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_ctlz_zero_is_not_undef_splat_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_cttz_zero_is_not_undef_splat_vec" +4: "lshr_cttz_zero_is_not_undef_splat_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_cttz_zero_is_not_undef_splat_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_ctpop_splat_vec" +4: "lshr_ctpop_splat_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_ctpop_splat_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_ctlz_zero_is_undef" +4: "lshr_ctlz_zero_is_undef" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +1: "lshr_cttz_zero_is_undef" +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 + +1: "lshr_ctlz_zero_is_undef_vec" +"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 + +1: "lshr_cttz_zero_is_undef_vec" +"lshr_cttz_zero_is_undef_vec" contains vectors which are unsupported + +1: "lshr_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "lshr_exact_splat_vec" +"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 + +1: "shl_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "shl_add_commute_vec" +"shl_add_commute_vec" contains vectors which are unsupported + +1: "shl_add_use1" +4: "shl_add_use1" has unsupported operation: llvm.call + +1: "shl_add_use2" +4: "shl_add_use2" has unsupported operation: llvm.call + +1: "bool_zext" +4: "bool_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_zext_use" +4: "bool_zext_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bool_zext_use" has unsupported operation: llvm.call + +4: "bool_zext_use" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_zext_splat" +4: "bool_zext_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "smear_sign_and_widen" +4: "smear_sign_and_widen" has unsupported operation: builtin.unregistered: llvm.zext + +1: "smear_sign_and_widen_should_not_change_type" +4: "smear_sign_and_widen_should_not_change_type" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smear_sign_and_widen_splat" +4: "smear_sign_and_widen_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fake_sext" +4: "fake_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fake_sext_but_should_not_change_type" +4: "fake_sext_but_should_not_change_type" has unsupported operation: builtin.unregistered: llvm.sext + +1: "fake_sext_splat" +4: "fake_sext_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_lshr_constant" +4: "narrow_lshr_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "mul_splat_fold" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "mul_splat_fold_vec" +4: "mul_splat_fold_vec" has unsupported operation: llvm.call + +1: "shl_add_lshr_flag_preservation" +2: llvm.func +2: llvm.shl +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "shl_add_lshr" +2: llvm.func +2: llvm.shl +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "shl_add_lshr_comm" +2: llvm.func +2: llvm.shl +2: llvm.mul +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "shl_add_lshr_no_nuw" +7: "shl_add_lshr_no_nuw" is unchanged by InstCombine + +1: "shl_sub_lshr_not_exact" +7: "shl_sub_lshr_not_exact" is unchanged by InstCombine + +1: "shl_sub_lshr_no_nuw" +7: "shl_sub_lshr_no_nuw" is unchanged by InstCombine + +1: "shl_sub_lshr" +2: llvm.func +2: llvm.shl +2: llvm.sub +2: llvm.lshr +2: llvm.return + +1: "shl_sub_lshr_reverse" +2: llvm.func +2: llvm.shl +2: llvm.sub +2: llvm.lshr +2: llvm.return + +1: "shl_sub_lshr_reverse_no_nsw" +2: llvm.func +2: llvm.shl +2: llvm.sub +2: llvm.lshr +2: llvm.return + +1: "shl_sub_lshr_reverse_nsw_on_op1" +2: llvm.func +2: llvm.shl +2: llvm.sub +2: llvm.lshr +2: llvm.return + +1: "shl_sub_lshr_reverse_no_exact" +7: "shl_sub_lshr_reverse_no_exact" is unchanged by InstCombine + +1: "shl_sub_lshr_reverse_multiuse" +4: "shl_sub_lshr_reverse_multiuse" has unsupported operation: llvm.call + +1: "shl_sub_lshr_reverse_multiuse2" +4: "shl_sub_lshr_reverse_multiuse2" has unsupported operation: llvm.call + +1: "shl_sub_lshr_reverse_no_nuw" +7: "shl_sub_lshr_reverse_no_nuw" is unchanged by InstCombine + +1: "shl_sub_lshr_reverse_no_nsw_2" +7: "shl_sub_lshr_reverse_no_nsw_2" is unchanged by InstCombine + +1: "shl_or_lshr" +2: llvm.func +2: llvm.shl +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "shl_or_disjoint_lshr" +2: llvm.func +2: llvm.shl +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "shl_or_lshr_comm" +2: llvm.func +2: llvm.shl +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "shl_or_disjoint_lshr_comm" +2: llvm.func +2: llvm.shl +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "shl_xor_lshr" +2: llvm.func +2: llvm.shl +2: llvm.xor +2: llvm.lshr +2: llvm.return + +1: "shl_xor_lshr_comm" +2: llvm.func +2: llvm.shl +2: llvm.xor +2: llvm.lshr +2: llvm.return + +1: "shl_and_lshr" +2: llvm.func +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "shl_and_lshr_comm" +2: llvm.func +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "shl_lshr_and_exact" +2: llvm.func +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "shl_add_lshr_neg" +7: "shl_add_lshr_neg" is unchanged by InstCombine + +1: "mul_splat_fold_wrong_mul_const" +7: "mul_splat_fold_wrong_mul_const" is unchanged by InstCombine + +1: "shl_add_lshr_multiuse" +4: "shl_add_lshr_multiuse" has unsupported operation: llvm.call + +1: "mul_splat_fold_wrong_lshr_const" +7: "mul_splat_fold_wrong_lshr_const" is unchanged by InstCombine + +1: "mul_splat_fold_no_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "mul_splat_fold_no_flags" +7: "mul_splat_fold_no_flags" is unchanged by InstCombine + +1: "mul_splat_fold_too_narrow" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "negative_and_odd" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.return + +1: "negative_and_odd_vec" +"negative_and_odd_vec" contains vectors which are unsupported + +1: "negative_and_odd_uses" +4: "negative_and_odd_uses" has unsupported operation: llvm.store + +1: "srem3" +7: "srem3" is unchanged by InstCombine + +1: "srem2_lshr30" +7: "srem2_lshr30" is unchanged by InstCombine + +1: "trunc_sandwich" +4: "trunc_sandwich" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_splat_vec" +4: "trunc_sandwich_splat_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_min_shift1" +4: "trunc_sandwich_min_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_small_shift1" +4: "trunc_sandwich_small_shift1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_max_sum_shift" +4: "trunc_sandwich_max_sum_shift" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_max_sum_shift2" +4: "trunc_sandwich_max_sum_shift2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_big_sum_shift1" +4: "trunc_sandwich_big_sum_shift1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_big_sum_shift2" +4: "trunc_sandwich_big_sum_shift2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_use1" +4: "trunc_sandwich_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_splat_vec_use1" +4: "trunc_sandwich_splat_vec_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_splat_vec_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_min_shift1_use1" +4: "trunc_sandwich_min_shift1_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_min_shift1_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_small_shift1_use1" +4: "trunc_sandwich_small_shift1_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_small_shift1_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_max_sum_shift_use1" +4: "trunc_sandwich_max_sum_shift_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_max_sum_shift_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_max_sum_shift2_use1" +4: "trunc_sandwich_max_sum_shift2_use1" has unsupported operation: llvm.call + +4: "trunc_sandwich_max_sum_shift2_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_sandwich_big_sum_shift1_use1" +4: "trunc_sandwich_big_sum_shift1_use1" has unsupported operation: llvm.call + +1: "trunc_sandwich_big_sum_shift2_use1" +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 + +1: "lshr_sext_i1_to_i128" +4: "lshr_sext_i1_to_i128" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "icmp_ult" +4: "icmp_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_eq" +4: "icmp_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ne" +4: "icmp_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_ugt" +4: "icmp_ugt" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "icmp_uge" +4: "icmp_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sle" +4: "icmp_sle" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_slt" +4: "icmp_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sgt" +4: "icmp_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "icmp_sge" +4: "icmp_sge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "narrow_bswap" +4: "narrow_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_bswap_extra_wide" +4: "narrow_bswap_extra_wide" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap_extra_wide" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_bswap_undershift" +4: "narrow_bswap_undershift" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap_undershift" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_bswap_splat" +4: "narrow_bswap_splat" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_bswap_splat_poison_elt" +4: "narrow_bswap_splat_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_bswap_splat_poison_elt" has unsupported operation: llvm.mlir.undef + +4: "narrow_bswap_splat_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "narrow_bswap_splat_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "narrow_bswap_splat_poison_elt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "narrow_bswap_splat_poison_elt" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "narrow_bswap_overshift" +4: "narrow_bswap_overshift" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap_overshift" has unsupported operation: builtin.unregistered: llvm.zext + +1: "narrow_bswap_overshift2" +4: "narrow_bswap_overshift2" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +4: "narrow_bswap_overshift2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_narrow_bswap" +4: "not_narrow_bswap" has unsupported operation: builtin.unregistered: llvm.zext + +4: "not_narrow_bswap" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "not_signbit" +4: "not_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_signbit" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_signbit_vec" +4: "not_signbit_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_signbit_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_signbit_alt_xor" +4: "not_signbit_alt_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_signbit_alt_xor" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_not_signbit" +7: "not_not_signbit" is unchanged by InstCombine + +1: "not_signbit_use" +4: "not_signbit_use" has unsupported operation: llvm.call + +1: "not_signbit_zext" +4: "not_signbit_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_signbit_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_signbit_trunc" +4: "not_signbit_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_signbit_trunc" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_add_lshr" +4: "bool_add_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_bool_add_lshr" +4: "not_bool_add_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_bool_add_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_add_ashr" +4: "bool_add_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_add_lshr_vec" +4: "bool_add_lshr_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bool_add_lshr_uses" +4: "bool_add_lshr_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses" has unsupported operation: llvm.call + +4: "bool_add_lshr_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses" has unsupported operation: llvm.call + +1: "bool_add_lshr_uses2" +4: "bool_add_lshr_uses2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses2" has unsupported operation: llvm.call + +4: "bool_add_lshr_uses2" has unsupported operation: llvm.call + +1: "bool_add_lshr_uses3" +4: "bool_add_lshr_uses3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses3" has unsupported operation: llvm.call + +4: "bool_add_lshr_uses3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_uses3" has unsupported operation: llvm.call + +4: "bool_add_lshr_uses3" has unsupported operation: llvm.call + +1: "bool_add_lshr_vec_wrong_shift_amt" +4: "bool_add_lshr_vec_wrong_shift_amt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "bool_add_lshr_vec_wrong_shift_amt" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/malloc-free-addrspace.txt b/SSA/Projects/InstCombine/tests/logs/malloc-free-addrspace.txt new file mode 100644 index 000000000..8c6115786 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/malloc-free-addrspace.txt @@ -0,0 +1,57 @@ +1: "remove_malloc" +4: "remove_malloc" has unsupported operation after optimization: llvm.call + +4: "remove_malloc" has unsupported operation after optimization: llvm.call + +1: "remove_calloc" +4: "remove_calloc" has unsupported operation after optimization: llvm.call + +4: "remove_calloc" has unsupported operation after optimization: llvm.call + +1: "remove_aligned_alloc" +4: "remove_aligned_alloc" has unsupported operation after optimization: llvm.call + +4: "remove_aligned_alloc" has unsupported operation after optimization: llvm.call + +1: "remove_strdup" +4: "remove_strdup" has unsupported operation after optimization: llvm.call + +4: "remove_strdup" has unsupported operation after optimization: llvm.call + +1: "remove_new" +4: "remove_new" has unsupported operation after optimization: llvm.call + +4: "remove_new" has unsupported operation after optimization: llvm.call + +1: "remove_new_array" +4: "remove_new_array" has unsupported operation after optimization: llvm.call + +4: "remove_new_array" has unsupported operation after optimization: llvm.call + +1: "calloc" +5: "calloc" is empty + +1: "malloc" +5: "malloc" is empty + +1: "aligned_alloc" +5: "aligned_alloc" is empty + +1: "strdup" +5: "strdup" is empty + +1: "free" +5: "free" is empty + +1: "_Znwm" +5: "_Znwm" is empty + +1: "_ZdlPv" +5: "_ZdlPv" is empty + +1: "_Znam" +5: "_Znam" is empty + +1: "_ZdaPv" +5: "_ZdaPv" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/malloc-free-delete-dbginvar.txt b/SSA/Projects/InstCombine/tests/logs/malloc-free-delete-dbginvar.txt new file mode 100644 index 000000000..2031629cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/malloc-free-delete-dbginvar.txt @@ -0,0 +1,16 @@ +1: "free" +5: "free" is empty + +1: "test12" +4: "test12" has unsupported operation: llvm.mlir.zero + +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test12" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12" has unsupported operation: llvm.call + +4: "test12" has unsupported operation: builtin.unregistered: llvm.br + +4: "test12" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/malloc-free-mismatched.txt b/SSA/Projects/InstCombine/tests/logs/malloc-free-mismatched.txt new file mode 100644 index 000000000..7197b6a95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/malloc-free-mismatched.txt @@ -0,0 +1,18 @@ +1: "_Z6answeri" +4: "_Z6answeri" has unsupported operation: llvm.call + +4: "_Z6answeri" has unsupported operation: llvm.call + +1: "test_alloca" +4: "test_alloca" has unsupported operation: llvm.alloca + +4: "test_alloca" has unsupported operation: llvm.call + +4: "test_alloca" has unsupported operation: llvm.return + +1: "_Znam" +5: "_Znam" is empty + +1: "free" +5: "free" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/malloc-free.txt b/SSA/Projects/InstCombine/tests/logs/malloc-free.txt new file mode 100644 index 000000000..65370b42c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/malloc-free.txt @@ -0,0 +1,176 @@ +1: "main" +6: Cannot find function after optimization with sym name: "main" + +1: "dead_aligned_alloc" +6: Cannot find function after optimization with sym name: "dead_aligned_alloc" + +1: "aligned_alloc_only_pointe" +4: "aligned_alloc_only_pointe" has unsupported operation: llvm.mlir.zero + +4: "aligned_alloc_only_pointe" has unsupported operation: llvm.call + +4: "aligned_alloc_only_pointe" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "aligned_alloc_pointer_only_used_by_cmp_alignment_and_value_known_ok" +6: Cannot find function after optimization with sym name: "aligned_alloc_pointer_only_used_by_cmp_alignment_and_value_known_ok" + +1: "aligned_alloc_pointer_only_used_by_cmp_alignment_no_power_of_2" +4: "aligned_alloc_pointer_only_used_by_cmp_alignment_no_power_of_2" has unsupported operation: llvm.mlir.zero + +4: "aligned_alloc_pointer_only_used_by_cmp_alignment_no_power_of_2" has unsupported operation: llvm.call + +4: "aligned_alloc_pointer_only_used_by_cmp_alignment_no_power_of_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "aligned_alloc_pointer_only_used_by_cmp_size_not_multiple_of_alignment" +4: "aligned_alloc_pointer_only_used_by_cmp_size_not_multiple_of_alignment" has unsupported operation: llvm.mlir.zero + +4: "aligned_alloc_pointer_only_used_by_cmp_size_not_multiple_of_alignment" has unsupported operation: llvm.call + +4: "aligned_alloc_pointer_only_used_by_cmp_size_not_multiple_of_alignment" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "other_aligned_allocation_function" +6: Cannot find function after optimization with sym name: "other_aligned_allocation_function" + +1: "calloc" +5: "calloc" is empty + +1: "malloc" +5: "malloc" is empty + +1: "aligned_alloc" +5: "aligned_alloc" is empty + +1: "other_aligned_alloc" +5: "other_aligned_alloc" is empty + +1: "free" +5: "free" is empty + +1: "foo" +6: Cannot find function after optimization with sym name: "foo" + +1: "test3" +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: llvm.return + +1: "test5" +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +4: "test5" has unsupported operation: llvm.store + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "test5" has unsupported operation: llvm.store + +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: llvm.mlir.zero + +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: llvm.call + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: llvm.return + +1: "test12" +4: "test12" has unsupported operation: llvm.mlir.zero + +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test12" has unsupported operation: llvm.call + +4: "test12" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12" has unsupported operation: builtin.unregistered: llvm.br + +4: "test12" has unsupported operation: llvm.return + +1: "test_nonnull_free_move" +4: "test_nonnull_free_move" has unsupported operation: llvm.mlir.zero + +4: "test_nonnull_free_move" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_nonnull_free_move" has unsupported operation: llvm.call + +4: "test_nonnull_free_move" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_nonnull_free_move" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_nonnull_free_move" has unsupported operation: llvm.return + +1: "test_dereferenceable_free_move" +4: "test_dereferenceable_free_move" has unsupported operation: llvm.mlir.zero + +4: "test_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_dereferenceable_free_move" has unsupported operation: llvm.call + +4: "test_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dereferenceable_free_move" has unsupported operation: llvm.return + +1: "test_nonnull_dereferenceable_free_move" +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: llvm.mlir.zero + +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: llvm.call + +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_nonnull_dereferenceable_free_move" has unsupported operation: llvm.return + +1: "test13" +4: "test13" has unsupported operation: llvm.call + +4: "test13" has unsupported operation: llvm.return + +1: "test14" +4: "test14" has unsupported operation: llvm.call + +4: "test14" has unsupported operation: llvm.return + +1: "test15" +4: "test15" has unsupported operation: llvm.call + +4: "test15" has unsupported operation: llvm.return + +1: "test16" +4: "test16" has unsupported operation: llvm.call + +4: "test16" has unsupported operation: llvm.return + +1: "llvm.objectsize.i64.p0" +5: "llvm.objectsize.i64.p0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/malloc_free_delete_nvptx.txt b/SSA/Projects/InstCombine/tests/logs/malloc_free_delete_nvptx.txt new file mode 100644 index 000000000..eddb72e57 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/malloc_free_delete_nvptx.txt @@ -0,0 +1,21 @@ +1: "user" +5: "user" is empty + +1: "malloc" +5: "malloc" is empty + +1: "free" +5: "free" is empty + +1: "malloc_then_free_not_needed" +4: "malloc_then_free_not_needed" has unsupported operation: llvm.return + +1: "malloc_then_free_needed" +4: "malloc_then_free_needed" has unsupported operation: llvm.call + +4: "malloc_then_free_needed" has unsupported operation: llvm.call + +4: "malloc_then_free_needed" has unsupported operation: llvm.call + +4: "malloc_then_free_needed" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt new file mode 100644 index 000000000..e348d6095 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-add.txt @@ -0,0 +1,191 @@ +1: "p" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_splatvec" +"p_splatvec" contains vectors which are unsupported + +1: "p_vec_undef" +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_vec_poison" +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_constmask_splatvec" +"p_constmask_splatvec" contains vectors which are unsupported + +1: "p_constmask_vec" +7: "p_constmask_vec" is unchanged by InstCombine + +1: "p_constmask_vec_undef" +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_constmask2_splatvec" +"p_constmask2_splatvec" contains vectors which are unsupported + +1: "p_constmask2_vec" +7: "p_constmask2_vec" is unchanged by InstCombine + +1: "p_constmask2_vec_undef" +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen32" +5: "gen32" is empty + +1: "p_commutative0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_commutative1" +4: "p_commutative1" has unsupported operation: llvm.call + +1: "p_commutative2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_commutative3" +4: "p_commutative3" has unsupported operation: llvm.call + +1: "p_commutative4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "p_commutative5" +4: "p_commutative5" has unsupported operation: llvm.call + +1: "p_commutative6" +4: "p_commutative6" has unsupported operation: llvm.call + +1: "p_constmask_commutative" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + +1: "use32" +5: "use32" is empty + +1: "n0_oneuse" +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse" +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +1: "n1_badxor" +7: "n1_badxor" is unchanged by InstCombine + +1: "n2_badmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "n3_constmask_badmask" +7: "n3_constmask_badmask" is unchanged by InstCombine + +1: "n3_constmask_samemask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.return + 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 new file mode 100644 index 000000000..a0bc1bc16 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-and-of-ors.txt @@ -0,0 +1,155 @@ +1: "p" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "p_splatvec" +"p_splatvec" contains vectors which are unsupported + +1: "p_vec_undef" +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask" +7: "p_constmask" is unchanged by InstCombine + +1: "p_constmask_splatvec" +7: "p_constmask_splatvec" is unchanged by InstCombine + +1: "p_constmask_vec" +7: "p_constmask_vec" is unchanged by InstCombine + +1: "p_constmask_vec_undef" +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen32" +5: "gen32" is empty + +1: "p_commutative0" +7: "p_commutative0" is unchanged by InstCombine + +1: "p_commutative1" +4: "p_commutative1" has unsupported operation: llvm.call + +1: "p_commutative2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "p_commutative3" +4: "p_commutative3" has unsupported operation: llvm.call + +1: "p_commutative4" +7: "p_commutative4" is unchanged by InstCombine + +1: "p_commutative5" +4: "p_commutative5" has unsupported operation: llvm.call + +1: "p_commutative6" +4: "p_commutative6" has unsupported operation: llvm.call + +1: "p_constmask_commutative" +7: "p_constmask_commutative" is unchanged by InstCombine + +1: "use32" +5: "use32" is empty + +1: "n0_oneuse_of_neg_is_ok_0" +4: "n0_oneuse_of_neg_is_ok_0" has unsupported operation: llvm.call + +1: "n0_oneuse_1" +4: "n0_oneuse_1" has unsupported operation: llvm.call + +1: "n0_oneuse_2" +4: "n0_oneuse_2" has unsupported operation: llvm.call + +1: "n0_oneuse_3" +4: "n0_oneuse_3" has unsupported operation: llvm.call + +4: "n0_oneuse_3" has unsupported operation: llvm.call + +1: "n0_oneuse_4" +4: "n0_oneuse_4" has unsupported operation: llvm.call + +4: "n0_oneuse_4" has unsupported operation: llvm.call + +1: "n0_oneuse_5" +4: "n0_oneuse_5" has unsupported operation: llvm.call + +4: "n0_oneuse_5" has unsupported operation: llvm.call + +4: "n0_oneuse_5" has unsupported operation: llvm.call + +1: "n0_oneuse_6" +4: "n0_oneuse_6" has unsupported operation: llvm.call + +4: "n0_oneuse_6" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse_0" +4: "n0_constmask_oneuse_0" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse_1" +4: "n0_constmask_oneuse_1" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse_2" +4: "n0_constmask_oneuse_2" has unsupported operation: llvm.call + +4: "n0_constmask_oneuse_2" has unsupported operation: llvm.call + +1: "n1_badxor" +7: "n1_badxor" is unchanged by InstCombine + +1: "n2_badmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + +1: "n3_constmask_badmask_set" +7: "n3_constmask_badmask_set" is unchanged by InstCombine + +1: "n3_constmask_badmask_unset" +7: "n3_constmask_badmask_unset" is unchanged by InstCombine + +1: "n3_constmask_samemask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.or +2: llvm.and +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt new file mode 100644 index 000000000..269c496b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-or.txt @@ -0,0 +1,173 @@ +1: "p" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "p_splatvec" +"p_splatvec" contains vectors which are unsupported + +1: "p_vec_undef" +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_vec_poison" +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask" +7: "p_constmask" is unchanged by InstCombine + +1: "p_constmask_splatvec" +7: "p_constmask_splatvec" is unchanged by InstCombine + +1: "p_constmask_vec" +7: "p_constmask_vec" is unchanged by InstCombine + +1: "p_constmask_vec_undef" +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask2" +7: "p_constmask2" is unchanged by InstCombine + +1: "p_constmask2_splatvec" +7: "p_constmask2_splatvec" is unchanged by InstCombine + +1: "p_constmask2_vec" +7: "p_constmask2_vec" is unchanged by InstCombine + +1: "p_constmask2_vec_undef" +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen32" +5: "gen32" is empty + +1: "p_commutative0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "p_commutative1" +4: "p_commutative1" has unsupported operation: llvm.call + +1: "p_commutative2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "p_commutative3" +4: "p_commutative3" has unsupported operation: llvm.call + +1: "p_commutative4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "p_commutative5" +4: "p_commutative5" has unsupported operation: llvm.call + +1: "p_commutative6" +4: "p_commutative6" has unsupported operation: llvm.call + +1: "p_constmask_commutative" +7: "p_constmask_commutative" is unchanged by InstCombine + +1: "use32" +5: "use32" is empty + +1: "n0_oneuse" +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse" +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +1: "n1_badxor" +7: "n1_badxor" is unchanged by InstCombine + +1: "n2_badmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.return + +1: "n3_constmask_badmask" +7: "n3_constmask_badmask" is unchanged by InstCombine + +1: "n3_constmask_samemask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt b/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt new file mode 100644 index 000000000..2b88d82fe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked-merge-xor.txt @@ -0,0 +1,191 @@ +1: "p" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_splatvec" +"p_splatvec" contains vectors which are unsupported + +1: "p_vec_undef" +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_vec_poison" +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_constmask_splatvec" +"p_constmask_splatvec" contains vectors which are unsupported + +1: "p_constmask_vec" +7: "p_constmask_vec" is unchanged by InstCombine + +1: "p_constmask_vec_undef" +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "p_constmask2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_constmask2_splatvec" +"p_constmask2_splatvec" contains vectors which are unsupported + +1: "p_constmask2_vec" +7: "p_constmask2_vec" is unchanged by InstCombine + +1: "p_constmask2_vec_undef" +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p_constmask2_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen32" +5: "gen32" is empty + +1: "p_commutative0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_commutative1" +4: "p_commutative1" has unsupported operation: llvm.call + +1: "p_commutative2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_commutative3" +4: "p_commutative3" has unsupported operation: llvm.call + +1: "p_commutative4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "p_commutative5" +4: "p_commutative5" has unsupported operation: llvm.call + +1: "p_commutative6" +4: "p_commutative6" has unsupported operation: llvm.call + +1: "p_constmask_commutative" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "use32" +5: "use32" is empty + +1: "n0_oneuse" +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +4: "n0_oneuse" has unsupported operation: llvm.call + +1: "n0_constmask_oneuse" +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +4: "n0_constmask_oneuse" has unsupported operation: llvm.call + +1: "n1_badxor" +7: "n1_badxor" is unchanged by InstCombine + +1: "n2_badmask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "n3_constmask_badmask" +7: "n3_constmask_badmask" is unchanged by InstCombine + +1: "n3_constmask_samemask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/masked_intrinsics-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics-inseltpoison.txt new file mode 100644 index 000000000..5f9753daf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics-inseltpoison.txt @@ -0,0 +1,2 @@ +3: masked_intrinsics-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/masked_intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics.txt new file mode 100644 index 000000000..2b556fe63 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics.txt @@ -0,0 +1,2 @@ +3: masked_intrinsics.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/masked_intrinsics_keep_metadata.txt b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics_keep_metadata.txt new file mode 100644 index 000000000..786aae544 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/masked_intrinsics_keep_metadata.txt @@ -0,0 +1,15 @@ +1: "mload1" +4: "mload1" has unsupported operation: llvm.load + +1: "mload2" +4: "mload2" has unsupported operation: llvm.mlir.addressof + +4: "mload2" has unsupported operation: llvm.load + +4: "mload2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mstore" +4: "mstore" has unsupported operation: llvm.store + +4: "mstore" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/math-odd-even-parity.txt b/SSA/Projects/InstCombine/tests/logs/math-odd-even-parity.txt new file mode 100644 index 000000000..2463eb38e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/math-odd-even-parity.txt @@ -0,0 +1,27 @@ +1: "erf" +5: "erf" is empty + +1: "cos" +5: "cos" is empty + +1: "fabs" +5: "fabs" is empty + +1: "use" +5: "use" is empty + +1: "test_erf" +4: "test_erf" has unsupported operation: llvm.call + +1: "test_cos_fabs" +4: "test_cos_fabs" has unsupported operation: llvm.call + +1: "test_erf_multi_use" +4: "test_erf_multi_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_erf_multi_use" has unsupported operation: llvm.call + +4: "test_erf_multi_use" has unsupported operation: llvm.call + +4: "test_erf_multi_use" has unsupported operation: builtin.unregistered: llvm.fneg + diff --git a/SSA/Projects/InstCombine/tests/logs/matrix-multiplication-negation.txt b/SSA/Projects/InstCombine/tests/logs/matrix-multiplication-negation.txt new file mode 100644 index 000000000..7da8a1efb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/matrix-multiplication-negation.txt @@ -0,0 +1,136 @@ +1: "test_negation_move_to_result" +4: "test_negation_move_to_result" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_negation_move_to_result_with_fastflags" +4: "test_negation_move_to_result_with_fastflags" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result_with_fastflags" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_negation_move_to_result_with_nnan_flag" +4: "test_negation_move_to_result_with_nnan_flag" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result_with_nnan_flag" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_negation_move_to_result_with_nsz_flag" +4: "test_negation_move_to_result_with_nsz_flag" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result_with_nsz_flag" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_negation_move_to_result_with_fastflag_on_negation" +4: "test_negation_move_to_result_with_fastflag_on_negation" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result_with_fastflag_on_negation" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_move_negation_to_second_operand" +4: "test_move_negation_to_second_operand" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_move_negation_to_second_operand" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_move_negation_to_second_operand_with_fast_flags" +4: "test_move_negation_to_second_operand_with_fast_flags" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_move_negation_to_second_operand_with_fast_flags" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_negation_move_to_result_from_second_operand" +4: "test_negation_move_to_result_from_second_operand" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_move_to_result_from_second_operand" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_move_negation_to_first_operand" +4: "test_move_negation_to_first_operand" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_move_negation_to_first_operand" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_negation_not_moved" +4: "test_negation_not_moved" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_negation_not_moved" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_negation_not_moved_second_operand" +4: "test_negation_not_moved_second_operand" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_negation_not_moved_second_operand" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_negation_on_result" +4: "test_negation_on_result" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "test_negation_on_result" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "test_with_two_operands_negated1" +4: "test_with_two_operands_negated1" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_with_two_operands_negated2" +4: "test_with_two_operands_negated2" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_with_two_operands_negated_with_fastflags" +4: "test_with_two_operands_negated_with_fastflags" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "test_with_two_operands_negated2_commute" +4: "test_with_two_operands_negated2_commute" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "matrix_multiply_two_operands_negated_with_same_size" +4: "matrix_multiply_two_operands_negated_with_same_size" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "matrix_multiply_two_operands_with_multiple_uses" +4: "matrix_multiply_two_operands_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "matrix_multiply_two_operands_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "matrix_multiply_two_operands_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "matrix_multiply_two_operands_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "matrix_multiply_two_operands_with_multiple_uses2" +4: "matrix_multiply_two_operands_with_multiple_uses2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "matrix_multiply_two_operands_with_multiple_uses2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "matrix_multiply_two_operands_with_multiple_uses2" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "matrix_multiply_two_operands_with_multiple_uses2" has unsupported operation: llvm.store + +4: "matrix_multiply_two_operands_with_multiple_uses2" has unsupported operation: llvm.store + +1: "fneg_with_multiple_uses" +4: "fneg_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fneg_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "fneg_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fneg_with_multiple_uses" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fneg_with_multiple_uses_2" +4: "fneg_with_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_with_multiple_uses_2" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "fneg_with_multiple_uses_2" has unsupported operation: llvm.store + +1: "chain_of_matrix_mutliplies" +4: "chain_of_matrix_mutliplies" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "chain_of_matrix_mutliplies" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "chain_of_matrix_mutliplies" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +1: "chain_of_matrix_mutliplies_with_two_negations" +4: "chain_of_matrix_mutliplies_with_two_negations" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "chain_of_matrix_mutliplies_with_two_negations" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "chain_of_matrix_mutliplies_with_two_negations" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "chain_of_matrix_mutliplies_with_two_negations" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "chain_of_matrix_mutliplies_propagation" +4: "chain_of_matrix_mutliplies_propagation" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "chain_of_matrix_mutliplies_propagation" has unsupported operation: builtin.unregistered: llvm.intr.matrix.multiply + +4: "chain_of_matrix_mutliplies_propagation" has unsupported operation: builtin.unregistered: llvm.fneg + diff --git a/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt b/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt new file mode 100644 index 000000000..dd86d2b83 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/max-of-nots.txt @@ -0,0 +1,184 @@ +1: "umin_of_nots" +4: "umin_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smin_of_nots" +4: "smin_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "compute_min_2" +4: "compute_min_2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "extra_use" +5: "extra_use" is empty + +1: "umin_not_1_extra_use" +4: "umin_not_1_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin_not_1_extra_use" has unsupported operation: llvm.call + +1: "umin_not_2_extra_use" +4: "umin_not_2_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_not_2_extra_use" has unsupported operation: llvm.call + +4: "umin_not_2_extra_use" has unsupported operation: llvm.call + +1: "umin3_not" +4: "umin3_not" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin3_not" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin3_not_more_uses" +4: "umin3_not_more_uses" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin3_not_more_uses" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin3_not_more_uses" has unsupported operation: llvm.call + +4: "umin3_not_more_uses" has unsupported operation: llvm.call + +1: "use8" +5: "use8" is empty + +1: "umin3_not_all_ops_extra_uses" +4: "umin3_not_all_ops_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin3_not_all_ops_extra_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin3_not_all_ops_extra_uses" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses" has unsupported operation: llvm.call + +1: "compute_min_3" +4: "compute_min_3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "compute_min_3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "compute_min_arithmetic" +4: "compute_min_arithmetic" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "fake_use" +5: "fake_use" is empty + +1: "compute_min_pessimization" +4: "compute_min_pessimization" has unsupported operation: llvm.call + +4: "compute_min_pessimization" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "max_of_nots" +4: "max_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "max_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "abs_of_min_of_not" +4: "abs_of_min_of_not" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "abs_of_min_of_not" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "max_of_nots_vec" +4: "max_of_nots_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "max_of_nots_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "max_of_nots_weird_type_vec" +4: "max_of_nots_weird_type_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "max_of_nots_weird_type_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +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 + +1: "use" +5: "use" is empty + +1: "cmyk" +4: "cmyk" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk" has unsupported operation: llvm.call + +4: "cmyk" has unsupported operation: llvm.return + +1: "cmyk2" +4: "cmyk2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk2" has unsupported operation: llvm.call + +4: "cmyk2" has unsupported operation: llvm.return + +1: "cmyk3" +4: "cmyk3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk3" has unsupported operation: llvm.call + +4: "cmyk3" has unsupported operation: llvm.return + +1: "cmyk4" +4: "cmyk4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk4" has unsupported operation: llvm.call + +4: "cmyk4" has unsupported operation: llvm.return + +1: "cmyk5" +4: "cmyk5" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk5" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk5" has unsupported operation: llvm.call + +4: "cmyk5" has unsupported operation: llvm.return + +1: "cmyk6" +4: "cmyk6" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "cmyk6" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "cmyk6" has unsupported operation: llvm.call + +4: "cmyk6" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt b/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt new file mode 100644 index 000000000..1e9fdd359 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/max_known_bits.txt @@ -0,0 +1,57 @@ +1: "foo" +4: "foo" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +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" +4: "min_max_clamp" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "min_max_clamp_2" +4: "min_max_clamp_2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "min_max_clamp_3" +4: "min_max_clamp_3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp_3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_3" has unsupported operation: builtin.unregistered: llvm.sext + +1: "min_max_clamp_4" +4: "min_max_clamp_4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp_4" has unsupported operation: builtin.unregistered: llvm.sext + +1: "min_max_clamp_intrinsic" +4: "min_max_clamp_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "min_max_clamp_intrinsic_2" +4: "min_max_clamp_intrinsic_2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_intrinsic_2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "min_max_clamp_intrinsic_3" +4: "min_max_clamp_intrinsic_3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp_intrinsic_3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_intrinsic_3" has unsupported operation: builtin.unregistered: llvm.sext + +1: "min_max_clamp_intrinsic_4" +4: "min_max_clamp_intrinsic_4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_max_clamp_intrinsic_4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "min_max_clamp_intrinsic_4" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/maximum.txt b/SSA/Projects/InstCombine/tests/logs/maximum.txt new file mode 100644 index 000000000..4d6d11944 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/maximum.txt @@ -0,0 +1,189 @@ +1: "constant_fold_maximum_f32" +4: "constant_fold_maximum_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_inv" +4: "constant_fold_maximum_f32_inv" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_nan0" +4: "constant_fold_maximum_f32_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_nan1" +4: "constant_fold_maximum_f32_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_nan_nan" +4: "constant_fold_maximum_f32_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_p0_p0" +4: "constant_fold_maximum_f32_p0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_p0_n0" +4: "constant_fold_maximum_f32_p0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_n0_p0" +4: "constant_fold_maximum_f32_n0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f32_n0_n0" +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 + +1: "constant_fold_maximum_f64" +4: "constant_fold_maximum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f64_nan0" +4: "constant_fold_maximum_f64_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f64_nan1" +4: "constant_fold_maximum_f64_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "constant_fold_maximum_f64_nan_nan" +4: "constant_fold_maximum_f64_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "canonicalize_constant_maximum_f32" +4: "canonicalize_constant_maximum_f32" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_nan_val" +4: "maximum_f32_nan_val" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_val_nan" +4: "maximum_f32_val_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_val_p0" +4: "maximum_f32_1_maximum_val_p0" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_p0_val_fast" +4: "maximum_f32_1_maximum_p0_val_fast" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_p0_val_fmf1" +4: "maximum_f32_1_maximum_p0_val_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_p0_val_fmf2" +4: "maximum_f32_1_maximum_p0_val_fmf2" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_p0_val_fmf3" +4: "maximum_f32_1_maximum_p0_val_fmf3" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_p0_maximum_val_n0" +4: "maximum_f32_p0_maximum_val_n0" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_p0_val" +4: "maximum_f32_1_maximum_p0_val" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum_f32_1_maximum_val_p0_val_v2f32" +4: "maximum_f32_1_maximum_val_p0_val_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "maximum4" +4: "maximum4" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "maximum4" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "maximum4" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "neg_neg" +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg" +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "neg_neg_vec_fmf" +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg_vec_fmf" +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "use" +5: "use" is empty + +1: "neg_neg_extra_use_x" +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x" +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_y" +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_y" +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_x_and_y" +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x_and_y" +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "reduce_precision" +4: "reduce_precision" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "reduce_precision_fmf" +4: "reduce_precision_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "negated_op" +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_fmf_commute_vec" +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_extra_use" +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use" has unsupported operation: llvm.call + +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_extra_use_comm" +4: "negated_op_extra_use_comm" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use_comm" has unsupported operation: llvm.call + +4: "negated_op_extra_use_comm" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/maxnum.txt b/SSA/Projects/InstCombine/tests/logs/maxnum.txt new file mode 100644 index 000000000..14bd52e6a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/maxnum.txt @@ -0,0 +1,206 @@ +1: "constant_fold_maxnum_f32" +4: "constant_fold_maxnum_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_inv" +4: "constant_fold_maxnum_f32_inv" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_nan0" +4: "constant_fold_maxnum_f32_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_nan1" +4: "constant_fold_maxnum_f32_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_nan_nan" +4: "constant_fold_maxnum_f32_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_p0_p0" +4: "constant_fold_maxnum_f32_p0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_p0_n0" +4: "constant_fold_maxnum_f32_p0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_n0_p0" +4: "constant_fold_maxnum_f32_n0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f32_n0_n0" +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 + +1: "constant_fold_maxnum_f64" +4: "constant_fold_maxnum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f64_nan0" +4: "constant_fold_maxnum_f64_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f64_nan1" +4: "constant_fold_maxnum_f64_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "constant_fold_maxnum_f64_nan_nan" +4: "constant_fold_maxnum_f64_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "canonicalize_constant_maxnum_f32" +4: "canonicalize_constant_maxnum_f32" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_nan_val" +4: "maxnum_f32_nan_val" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_val_nan" +4: "maxnum_f32_val_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_1_maxnum_val_p0" +4: "maxnum_f32_1_maxnum_val_p0" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_1_maxnum_p0_val_fast" +4: "maxnum_f32_1_maxnum_p0_val_fast" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "minnum_f32_1_maxnum_p0_val_fmf1" +4: "minnum_f32_1_maxnum_p0_val_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "minnum_f32_1_maxnum_p0_val_fmf2" +4: "minnum_f32_1_maxnum_p0_val_fmf2" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "minnum_f32_1_maxnum_p0_val_fmf3" +4: "minnum_f32_1_maxnum_p0_val_fmf3" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_p0_maxnum_val_n0" +4: "maxnum_f32_p0_maxnum_val_n0" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_1_maxnum_p0_val" +4: "maxnum_f32_1_maxnum_p0_val" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_f32_1_maxnum_val_p0_val_v2f32" +4: "maxnum_f32_1_maxnum_val_p0_val_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum4" +4: "maxnum4" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "maxnum4" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "maxnum4" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "neg_neg" +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "neg_neg_vec_fmf" +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg_vec_fmf" +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "use" +5: "use" is empty + +1: "neg_neg_extra_use_x" +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x" +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_y" +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_y" +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_x_and_y" +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x_and_y" +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "reduce_precision" +4: "reduce_precision" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "reduce_precision_fmf" +4: "reduce_precision_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "reduce_precision_multi_use_0" +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_0" has unsupported operation: llvm.store + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "reduce_precision_multi_use_1" +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_1" has unsupported operation: llvm.store + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "negated_op" +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_fmf_commute_vec" +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_extra_use" +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use" has unsupported operation: llvm.call + +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "negated_op_extra_use_comm" +4: "negated_op_extra_use_comm" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use_comm" has unsupported operation: llvm.call + +4: "negated_op_extra_use_comm" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes-addrspaces.txt b/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes-addrspaces.txt new file mode 100644 index 000000000..00577a6de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes-addrspaces.txt @@ -0,0 +1,9 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "memcmp_const_size_update_deref" +4: "memcmp_const_size_update_deref" has unsupported operation: llvm.call + +1: "memcmp_nonconst_size_nonnnull" +4: "memcmp_nonconst_size_nonnnull" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes.txt b/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes.txt new file mode 100644 index 000000000..7a39ea8b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mem-deref-bytes.txt @@ -0,0 +1,68 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "memcpy" +5: "memcpy" is empty + +1: "memmove" +5: "memmove" is empty + +1: "memset" +5: "memset" is empty + +1: "memchr" +5: "memchr" is empty + +1: "memcmp_const_size_set_deref" +4: "memcmp_const_size_set_deref" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref" +4: "memcmp_const_size_update_deref" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref2" +4: "memcmp_const_size_update_deref2" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref3" +4: "memcmp_const_size_update_deref3" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref4" +4: "memcmp_const_size_update_deref4" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref5" +4: "memcmp_const_size_update_deref5" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref6" +4: "memcmp_const_size_update_deref6" has unsupported operation: llvm.call + +1: "memcmp_const_size_update_deref7" +4: "memcmp_const_size_update_deref7" has unsupported operation: llvm.call + +1: "memcmp_const_size_no_update_deref" +4: "memcmp_const_size_no_update_deref" has unsupported operation: llvm.call + +1: "memcmp_nonconst_size" +4: "memcmp_nonconst_size" has unsupported operation: llvm.call + +1: "memcpy_const_size_set_deref" +4: "memcpy_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memmove_const_size_set_deref" +4: "memmove_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "memset_const_size_set_deref" +4: "memset_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "memset_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "memchr_const_size_set_deref" +4: "memchr_const_size_set_deref" has unsupported operation: llvm.call + +1: "llvm_memcpy_const_size_set_deref" +4: "llvm_memcpy_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "llvm_memmove_const_size_set_deref" +4: "llvm_memmove_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "llvm_memset_const_size_set_deref" +4: "llvm_memset_const_size_set_deref" has unsupported operation: builtin.unregistered: llvm.intr.memset + diff --git a/SSA/Projects/InstCombine/tests/logs/mem-gep-zidx.txt b/SSA/Projects/InstCombine/tests/logs/mem-gep-zidx.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/mem-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/mem-intrinsics.txt new file mode 100644 index 000000000..839187a79 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mem-intrinsics.txt @@ -0,0 +1,54 @@ +1: "memset_null" +4: "memset_null" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memset_null" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "memset_null" has unsupported operation: llvm.return + +1: "memset_null_ub" +4: "memset_null_ub" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "memset_null_ub" has unsupported operation: llvm.mlir.zero + +4: "memset_null_ub" has unsupported operation: llvm.store + +4: "memset_null_ub" has unsupported operation: llvm.return + +1: "memcpy_null_src" +4: "memcpy_null_src" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memcpy_null_src" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "memcpy_null_src" has unsupported operation: llvm.return + +1: "memmove_null_src" +4: "memmove_null_src" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memmove_null_src" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "memmove_null_src" has unsupported operation: llvm.return + +1: "memset_element_atomic" +4: "memset_element_atomic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memset_element_atomic" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "memset_element_atomic" has unsupported operation: llvm.return + +1: "memset_null_volatile" +4: "memset_null_volatile" has unsupported operation: llvm.mlir.zero + +4: "memset_null_volatile" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "memset_null_volatile" has unsupported operation: llvm.return + +1: "memset_null_is_defined" +4: "memset_null_is_defined" has unsupported operation: llvm.mlir.zero + +4: "memset_null_is_defined" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "memset_null_is_defined" has unsupported operation: llvm.return + +1: "llvm.memset.element.unordered.atomic.p0.i64" +5: "llvm.memset.element.unordered.atomic.p0.i64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/mem-par-metadata-memcpy.txt b/SSA/Projects/InstCombine/tests/logs/mem-par-metadata-memcpy.txt new file mode 100644 index 000000000..a3dee47fd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mem-par-metadata-memcpy.txt @@ -0,0 +1,23 @@ +1: "_Z4testPcl" +4: "_Z4testPcl" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z4testPcl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_Z4testPcl" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_Z4testPcl" has unsupported operation: llvm.getelementptr + +4: "_Z4testPcl" has unsupported operation: llvm.getelementptr + +4: "_Z4testPcl" has unsupported operation: llvm.getelementptr + +4: "_Z4testPcl" has unsupported operation: llvm.load + +4: "_Z4testPcl" has unsupported operation: llvm.store + +4: "_Z4testPcl" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z4testPcl" has unsupported operation: builtin.unregistered: llvm.br + +4: "_Z4testPcl" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memccpy.txt b/SSA/Projects/InstCombine/tests/logs/memccpy.txt new file mode 100644 index 000000000..3d422f188 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memccpy.txt @@ -0,0 +1,159 @@ +1: "memccpy" +5: "memccpy" is empty + +1: "memccpy_to_memcpy" +4: "memccpy_to_memcpy" has unsupported operation: llvm.store + +4: "memccpy_to_memcpy" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_memcpy2" +4: "memccpy_to_memcpy2" has unsupported operation: llvm.store + +4: "memccpy_to_memcpy2" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_memcpy3" +4: "memccpy_to_memcpy3" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy3" has unsupported operation: llvm.return + +1: "memccpy_to_memcpy3_tail" +4: "memccpy_to_memcpy3_tail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy3_tail" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy3_tail" has unsupported operation: llvm.return + +1: "memccpy_to_memcpy3_musttail" +4: "memccpy_to_memcpy3_musttail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy3_musttail" has unsupported operation: llvm.call + +1: "memccpy_to_memcpy4" +4: "memccpy_to_memcpy4" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy4" has unsupported operation: llvm.return + +1: "memccpy_to_memcpy5" +4: "memccpy_to_memcpy5" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy5" has unsupported operation: llvm.mlir.zero + +4: "memccpy_to_memcpy5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memccpy_to_memcpy5_tail" +4: "memccpy_to_memcpy5_tail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy5_tail" has unsupported operation: llvm.mlir.zero + +4: "memccpy_to_memcpy5_tail" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memccpy_to_memcpy5_musttail" +4: "memccpy_to_memcpy5_musttail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy5_musttail" has unsupported operation: llvm.call + +1: "memccpy_to_memcpy6" +4: "memccpy_to_memcpy6" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy6" has unsupported operation: llvm.mlir.zero + +4: "memccpy_to_memcpy6" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memccpy_to_memcpy7" +4: "memccpy_to_memcpy7" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy7" has unsupported operation: llvm.mlir.zero + +4: "memccpy_to_memcpy7" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memccpy_to_memcpy8" +4: "memccpy_to_memcpy8" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy8" has unsupported operation: llvm.mlir.zero + +4: "memccpy_to_memcpy8" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "memccpy_to_memcpy9" +4: "memccpy_to_memcpy9" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy9" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy9" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_memcpy10" +4: "memccpy_to_memcpy10" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy10" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy10" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_memcpy11" +4: "memccpy_to_memcpy11" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy11" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy11" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_memcpy12" +4: "memccpy_to_memcpy12" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy12" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memccpy_to_memcpy12" has unsupported operation: llvm.getelementptr + +1: "memccpy_to_null" +4: "memccpy_to_null" has unsupported operation: llvm.mlir.zero + +1: "memccpy_dst_src_same_retval_unused" +4: "memccpy_dst_src_same_retval_unused" has unsupported operation: llvm.return + +1: "unknown_src" +4: "unknown_src" has unsupported operation: llvm.call + +1: "unknown_stop_char" +4: "unknown_stop_char" has unsupported operation: llvm.mlir.addressof + +4: "unknown_stop_char" has unsupported operation: llvm.call + +1: "unknown_size_n" +4: "unknown_size_n" has unsupported operation: llvm.mlir.addressof + +4: "unknown_size_n" has unsupported operation: llvm.call + +1: "no_nul_terminator" +4: "no_nul_terminator" has unsupported operation: llvm.mlir.addressof + +4: "no_nul_terminator" has unsupported operation: llvm.call + +1: "possibly_valid_data_after_array" +4: "possibly_valid_data_after_array" has unsupported operation: llvm.mlir.addressof + +4: "possibly_valid_data_after_array" has unsupported operation: llvm.call + +1: "possibly_valid_data_after_array2" +4: "possibly_valid_data_after_array2" has unsupported operation: llvm.mlir.addressof + +4: "possibly_valid_data_after_array2" has unsupported operation: llvm.call + +1: "possibly_valid_data_after_array3" +4: "possibly_valid_data_after_array3" has unsupported operation: llvm.mlir.addressof + +4: "possibly_valid_data_after_array3" has unsupported operation: llvm.call + +1: "memccpy_dst_src_same_retval_used" +4: "memccpy_dst_src_same_retval_used" has unsupported operation: llvm.call + +1: "memccpy_to_memcpy_musttail" +4: "memccpy_to_memcpy_musttail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy_musttail" has unsupported operation: llvm.call + +1: "memccpy_to_memcpy2_musttail" +4: "memccpy_to_memcpy2_musttail" has unsupported operation: llvm.mlir.addressof + +4: "memccpy_to_memcpy2_musttail" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-10.txt b/SSA/Projects/InstCombine/tests/logs/memchr-10.txt new file mode 100644 index 000000000..0a250951d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-10.txt @@ -0,0 +1,40 @@ +1: "memchr" +5: "memchr" is empty + +1: "call_memchr_ap5_c_1_eq_a" +4: "call_memchr_ap5_c_1_eq_a" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "call_memchr_ap5_c_5_eq_a" +4: "call_memchr_ap5_c_5_eq_a" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "fold_memchr_ap5_c_n_eq_a" +4: "fold_memchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.call + +4: "fold_memchr_ap5_c_n_eq_a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_memchr_ap5_c_n_eqz" +4: "fold_memchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_memchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_memchr_ap5_c_n_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_memchr_a_nul_n_eqz" +4: "fold_memchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_memchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_memchr_a_nul_n_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-11.txt b/SSA/Projects/InstCombine/tests/logs/memchr-11.txt new file mode 100644 index 000000000..5d2dcfdbd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-11.txt @@ -0,0 +1,52 @@ +1: "memchr" +5: "memchr" is empty + +1: "fold_memchr_a_c_5_eq_a" +4: "fold_memchr_a_c_5_eq_a" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_memchr_a_c_5_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_memchr_a_c_n_eq_a" +4: "fold_memchr_a_c_n_eq_a" has unsupported operation: builtin.unregistered: llvm.trunc + +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.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 + +4: "call_memchr_api_c_n_eq_a" has unsupported operation: llvm.getelementptr + +4: "call_memchr_api_c_n_eq_a" has unsupported operation: llvm.call + +4: "call_memchr_api_c_n_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_memchr_s_c_15_eq_s" +4: "fold_memchr_s_c_15_eq_s" has unsupported operation: llvm.load + +4: "fold_memchr_s_c_15_eq_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_memchr_s_c_15_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_memchr_s_c_17_neq_s" +4: "fold_memchr_s_c_17_neq_s" has unsupported operation: llvm.load + +4: "fold_memchr_s_c_17_neq_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_memchr_s_c_17_neq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_memchr_s_c_nz_eq_s" +4: "fold_memchr_s_c_nz_eq_s" has unsupported operation: llvm.load + +4: "fold_memchr_s_c_nz_eq_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_memchr_s_c_nz_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_memchr_s_c_n_eq_s" +4: "call_memchr_s_c_n_eq_s" has unsupported operation: llvm.call + +4: "call_memchr_s_c_n_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-2.txt b/SSA/Projects/InstCombine/tests/logs/memchr-2.txt new file mode 100644 index 000000000..a16ab1e65 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-2.txt @@ -0,0 +1,54 @@ +1: "memchr" +5: "memchr" is empty + +1: "fold_memchr_a12345_6_n" +4: "fold_memchr_a12345_6_n" has unsupported operation: llvm.mlir.zero + +1: "fold_memchr_a12345_4_2" +4: "fold_memchr_a12345_4_2" has unsupported operation: llvm.mlir.zero + +1: "fold_memchr_a12345_4_3" +4: "fold_memchr_a12345_4_3" has unsupported operation: llvm.mlir.zero + +1: "fold_memchr_a12345_3_3" +4: "fold_memchr_a12345_3_3" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a12345_3_3" has unsupported operation: llvm.getelementptr + +1: "fold_memchr_a12345_3_9" +4: "fold_memchr_a12345_3_9" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a12345_3_9" has unsupported operation: llvm.getelementptr + +1: "fold_memchr_a123f45_500_9" +4: "fold_memchr_a123f45_500_9" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a123f45_500_9" has unsupported operation: llvm.getelementptr + +1: "fold_a12345_3_n" +4: "fold_a12345_3_n" has unsupported operation: llvm.mlir.zero + +4: "fold_a12345_3_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_a12345_3_n" has unsupported operation: llvm.getelementptr + +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 + +4: "fold_a12345_259_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_a12345_259_n" has unsupported operation: llvm.getelementptr + +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 + +4: "call_ax_1_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-3.txt b/SSA/Projects/InstCombine/tests/logs/memchr-3.txt new file mode 100644 index 000000000..9cea67b40 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-3.txt @@ -0,0 +1,33 @@ +1: "memchr" +5: "memchr" is empty + +1: "fold_memchr_a12345_1_1" +4: "fold_memchr_a12345_1_1" has unsupported operation: llvm.mlir.addressof + +1: "fold_memchr_a12345_2_1" +4: "fold_memchr_a12345_2_1" has unsupported operation: llvm.mlir.zero + +1: "fold_memchr_ax_257_1" +4: "fold_memchr_ax_257_1" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_ax_257_1" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_ax_257_1" has unsupported operation: llvm.load + +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 + +4: "fold_memchr_ax_c_1" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_ax_c_1" has unsupported operation: llvm.load + +4: "fold_memchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.trunc + +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-4.txt b/SSA/Projects/InstCombine/tests/logs/memchr-4.txt new file mode 100644 index 000000000..b3b52e237 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-4.txt @@ -0,0 +1,23 @@ +1: "memchr" +5: "memchr" is empty + +1: "call_memchr_ax_2_uimax_p1" +4: "call_memchr_ax_2_uimax_p1" has unsupported operation: llvm.mlir.addressof + +4: "call_memchr_ax_2_uimax_p1" has unsupported operation: llvm.call + +1: "call_memchr_ax_2_uimax_p2" +4: "call_memchr_ax_2_uimax_p2" has unsupported operation: llvm.mlir.addressof + +4: "call_memchr_ax_2_uimax_p2" has unsupported operation: llvm.call + +1: "fold_memchr_a12345_3_uimax_p2" +4: "fold_memchr_a12345_3_uimax_p2" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a12345_3_uimax_p2" has unsupported operation: llvm.getelementptr + +1: "fold_memchr_a12345_c_uimax_p2" +4: "fold_memchr_a12345_c_uimax_p2" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a12345_c_uimax_p2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-5.txt b/SSA/Projects/InstCombine/tests/logs/memchr-5.txt new file mode 100644 index 000000000..f1e614910 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-5.txt @@ -0,0 +1,61 @@ +1: "memchr" +5: "memchr" is empty + +1: "fold_memchr_a" +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a" has unsupported operation: llvm.store + +4: "fold_memchr_a" has unsupported operation: llvm.return + +1: "fold_memchr_a_p1" +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a_p1" has unsupported operation: llvm.store + +4: "fold_memchr_a_p1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-6.txt b/SSA/Projects/InstCombine/tests/logs/memchr-6.txt new file mode 100644 index 000000000..0f22d3a29 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-6.txt @@ -0,0 +1,91 @@ +1: "memchr" +5: "memchr" is empty + +1: "fold_memchr_a00000_c_5" +4: "fold_memchr_a00000_c_5" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a00000_c_5" has unsupported operation: llvm.call + +1: "fold_memchr_a11111_c_5" +4: "fold_memchr_a11111_c_5" has unsupported operation: llvm.mlir.addressof + +4: "fold_memchr_a11111_c_5" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_memchr_a11111_c_n" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_a11111_c_n" has unsupported operation: builtin.unregistered: llvm.trunc + +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.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 + +4: "fold_memchr_a111122_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memchr_a111122_c_n" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_a111122_c_n" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +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 + +4: "fold_memchr_a1110111_c_3" has unsupported operation: llvm.mlir.zero + +4: "fold_memchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "call_memchr_a1110111_c_4" has unsupported operation: llvm.getelementptr + +4: "call_memchr_a1110111_c_4" has unsupported operation: llvm.mlir.zero + +4: "call_memchr_a1110111_c_4" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "call_memchr_a1110111_c_7" has unsupported operation: llvm.call + +1: "call_memchr_a1110111_c_n" +4: "call_memchr_a1110111_c_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memchr_a1110111_c_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-7.txt b/SSA/Projects/InstCombine/tests/logs/memchr-7.txt new file mode 100644 index 000000000..eec0a6d3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-7.txt @@ -0,0 +1,93 @@ +1: "strchr" +5: "strchr" is empty + +1: "memchr" +5: "memchr" is empty + +1: "strchr_to_memchr_n_equals_len" +4: "strchr_to_memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "strchr_to_memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strchr_to_memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memchr_n_equals_len" +4: "memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memchr_n_equals_len" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memchr_n_less_than_len" +4: "memchr_n_less_than_len" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "memchr_n_less_than_len" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memchr_n_more_than_len" +4: "memchr_n_more_than_len" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "memchr_n_more_than_len" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memchr_n_more_than_len" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memchr_no_zero_cmp" +4: "memchr_no_zero_cmp" has unsupported operation: llvm.mlir.addressof + +4: "memchr_no_zero_cmp" has unsupported operation: llvm.call + +1: "memchr_no_zero_cmp2" +4: "memchr_no_zero_cmp2" has unsupported operation: llvm.mlir.addressof + +4: "memchr_no_zero_cmp2" has unsupported operation: llvm.getelementptr + +4: "memchr_no_zero_cmp2" has unsupported operation: llvm.mlir.zero + +4: "memchr_no_zero_cmp2" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "memchr_n_equals_len_minsize" has unsupported operation: llvm.mlir.zero + +4: "memchr_n_equals_len_minsize" has unsupported operation: llvm.call + +4: "memchr_n_equals_len_minsize" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memchr_n_equals_len2_minsize" +4: "memchr_n_equals_len2_minsize" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "memchr_n_equals_len2_minsize" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "memchr_n_equals_len2_minsize" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "strchr_to_memchr_2_non_cont_ranges" +4: "strchr_to_memchr_2_non_cont_ranges" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "strchr_to_memchr_2_non_cont_ranges" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strchr_to_memchr_2_non_cont_ranges" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "strchr_to_memchr_2_non_cont_ranges_char_dup" +4: "strchr_to_memchr_2_non_cont_ranges_char_dup" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "strchr_to_memchr_2_non_cont_ranges_char_dup" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strchr_to_memchr_2_non_cont_ranges_char_dup" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "strchr_to_memchr_3_non_cont_ranges" +4: "strchr_to_memchr_3_non_cont_ranges" has unsupported operation: llvm.mlir.addressof + +4: "strchr_to_memchr_3_non_cont_ranges" has unsupported operation: llvm.mlir.zero + +4: "strchr_to_memchr_3_non_cont_ranges" has unsupported operation: llvm.call + +4: "strchr_to_memchr_3_non_cont_ranges" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-8.txt b/SSA/Projects/InstCombine/tests/logs/memchr-8.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/memchr-9.txt b/SSA/Projects/InstCombine/tests/logs/memchr-9.txt new file mode 100644 index 000000000..6f2e70233 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr-9.txt @@ -0,0 +1,2 @@ +3: memchr-9.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/memchr.txt b/SSA/Projects/InstCombine/tests/logs/memchr.txt new file mode 100644 index 000000000..2032b4b32 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memchr.txt @@ -0,0 +1,159 @@ +1: "memchr" +5: "memchr" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.zero + +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: llvm.mlir.addressof + +4: "test4" has unsupported operation: llvm.mlir.addressof + +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: llvm.store + +4: "test4" has unsupported operation: llvm.return + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.addressof + +4: "test5" has unsupported operation: llvm.getelementptr + +4: "test5" has unsupported operation: llvm.mlir.addressof + +4: "test5" has unsupported operation: llvm.store + +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: llvm.mlir.addressof + +4: "test6" has unsupported operation: llvm.getelementptr + +4: "test6" has unsupported operation: llvm.mlir.addressof + +4: "test6" has unsupported operation: llvm.store + +4: "test6" has unsupported operation: llvm.return + +1: "test7" +4: "test7" has unsupported operation: llvm.mlir.zero + +4: "test7" has unsupported operation: llvm.mlir.addressof + +4: "test7" has unsupported operation: llvm.store + +4: "test7" has unsupported operation: llvm.return + +1: "test8" +4: "test8" has unsupported operation: llvm.mlir.addressof + +4: "test8" has unsupported operation: llvm.getelementptr + +4: "test8" has unsupported operation: llvm.mlir.addressof + +4: "test8" has unsupported operation: llvm.store + +4: "test8" has unsupported operation: llvm.return + +1: "test9" +4: "test9" has unsupported operation: llvm.mlir.addressof + +4: "test9" has unsupported operation: llvm.getelementptr + +4: "test9" has unsupported operation: llvm.mlir.addressof + +4: "test9" has unsupported operation: llvm.store + +4: "test9" has unsupported operation: llvm.return + +1: "test10" +4: "test10" has unsupported operation: llvm.mlir.zero + +4: "test10" has unsupported operation: llvm.mlir.addressof + +4: "test10" has unsupported operation: llvm.store + +4: "test10" has unsupported operation: llvm.return + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test12" has unsupported operation: llvm.mlir.zero + +4: "test12" has unsupported operation: llvm.call + +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test13" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test15" +4: "test15" has unsupported operation: llvm.mlir.addressof + +4: "test15" has unsupported operation: llvm.mlir.zero + +4: "test15" has unsupported operation: llvm.call + +4: "test15" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr32124" +4: "pr32124" has unsupported operation: llvm.mlir.addressof + +1: "test16" +4: "test16" has unsupported operation: llvm.call + +1: "test17" +4: "test17" has unsupported operation: llvm.call + +1: "test18" +4: "test18" has unsupported operation: llvm.call + +1: "test19" +4: "test19" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-1.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-1.txt new file mode 100644 index 000000000..19f967c03 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-1.txt @@ -0,0 +1,53 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.load + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_simplify3" has unsupported operation: llvm.load + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation after optimization: llvm.call + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: llvm.call + +4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-2.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-2.txt new file mode 100644 index 000000000..1cef1f31e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-2.txt @@ -0,0 +1,6 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-3.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-3.txt new file mode 100644 index 000000000..55e111ed8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-3.txt @@ -0,0 +1,69 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "fold_memcmp_ia16a_i8a" +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_i8a" has unsupported operation: llvm.return + +1: "fold_memcmp_ia16a_p1_i8a_p1" +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.store + +4: "fold_memcmp_ia16a_p1_i8a_p1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-4.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-4.txt new file mode 100644 index 000000000..830b5516c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-4.txt @@ -0,0 +1,21 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "fold_memcmp_mismatch_too_big" +4: "fold_memcmp_mismatch_too_big" has unsupported operation: llvm.store + +4: "fold_memcmp_mismatch_too_big" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_mismatch_too_big" has unsupported operation: llvm.store + +4: "fold_memcmp_mismatch_too_big" has unsupported operation: llvm.return + +1: "fold_memcmp_match_too_big" +4: "fold_memcmp_match_too_big" has unsupported operation: llvm.store + +4: "fold_memcmp_match_too_big" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_match_too_big" has unsupported operation: llvm.store + +4: "fold_memcmp_match_too_big" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-5.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-5.txt new file mode 100644 index 000000000..f5c8422e9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-5.txt @@ -0,0 +1,134 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "fold_memcmp_a_b_n" +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_b_n" has unsupported operation: llvm.return + +1: "call_memcmp_a_ax_n" +4: "call_memcmp_a_ax_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memcmp_a_ax_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memcmp_a_ax_n" has unsupported operation: llvm.call + +4: "call_memcmp_a_ax_n" has unsupported operation: llvm.store + +4: "call_memcmp_a_ax_n" has unsupported operation: llvm.return + +1: "fold_memcmp_a_c_n" +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_c_n" has unsupported operation: llvm.return + +1: "fold_memcmp_a_d_n" +4: "fold_memcmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_memcmp_a_d_n" has unsupported operation: llvm.return + +1: "fold_memcmp_a_d_nz" +4: "fold_memcmp_a_d_nz" has unsupported operation: llvm.store + +4: "fold_memcmp_a_d_nz" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-6.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-6.txt new file mode 100644 index 000000000..cd70a48e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-6.txt @@ -0,0 +1,53 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "fold_memcmp_cst_cst" +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_cst" has unsupported operation: llvm.return + +1: "fold_memcmp_cst_var" +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_memcmp_cst_var" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.store + +4: "fold_memcmp_cst_var" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-7.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-7.txt new file mode 100644 index 000000000..777adb6b3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-7.txt @@ -0,0 +1,2 @@ +3: memcmp-7.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-8.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-8.txt new file mode 100644 index 000000000..a3728f881 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-8.txt @@ -0,0 +1,30 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "fold_memcmp_a5_a5p5_n" +4: "fold_memcmp_a5_a5p5_n" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memcmp_a5_a5p5_n" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memcmp_a5_a5p5_n" has unsupported operation after optimization: llvm.call + +1: "fold_memcmp_a5p5_a5p5_n" +4: "fold_memcmp_a5p5_a5p5_n" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memcmp_a5p5_a5p5_n" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memcmp_a5p5_a5p5_n" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memcmp_a5p5_a5p5_n" has unsupported operation after optimization: llvm.call + +1: "fold_memcmp_a5pi_a5p5_n" +4: "fold_memcmp_a5pi_a5p5_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_memcmp_a5pi_a5p5_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a5pi_a5p5_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_memcmp_a5pi_a5p5_n" has unsupported operation: llvm.getelementptr + +4: "fold_memcmp_a5pi_a5p5_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memcmp-constant-fold.txt b/SSA/Projects/InstCombine/tests/logs/memcmp-constant-fold.txt new file mode 100644 index 000000000..04391e200 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcmp-constant-fold.txt @@ -0,0 +1,31 @@ +1: "memcmp" +5: "memcmp" is empty + +1: "memcmp_4bytes_unaligned_constant_i8" +4: "memcmp_4bytes_unaligned_constant_i8" has unsupported operation: llvm.mlir.addressof + +4: "memcmp_4bytes_unaligned_constant_i8" has unsupported operation: llvm.call + +4: "memcmp_4bytes_unaligned_constant_i8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memcmp_4bytes_unaligned_constant_i16" +4: "memcmp_4bytes_unaligned_constant_i16" has unsupported operation: llvm.mlir.addressof + +4: "memcmp_4bytes_unaligned_constant_i16" has unsupported operation: llvm.call + +4: "memcmp_4bytes_unaligned_constant_i16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "memcmp_3bytes_aligned_constant_i32" +4: "memcmp_3bytes_aligned_constant_i32" has unsupported operation after optimization: llvm.mlir.addressof + +4: "memcmp_3bytes_aligned_constant_i32" has unsupported operation after optimization: llvm.getelementptr + +4: "memcmp_3bytes_aligned_constant_i32" has unsupported operation after optimization: llvm.call + +4: "memcmp_3bytes_aligned_constant_i32" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "memcmp_4bytes_one_unaligned_i8" +4: "memcmp_4bytes_one_unaligned_i8" has unsupported operation: llvm.call + +4: "memcmp_4bytes_one_unaligned_i8" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy-1.txt b/SSA/Projects/InstCombine/tests/logs/memcpy-1.txt new file mode 100644 index 000000000..c6fa243cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy-1.txt @@ -0,0 +1,23 @@ +1: "memcpy" +5: "memcpy" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "get_dest" +5: "get_dest" is empty + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.call + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy-2.txt b/SSA/Projects/InstCombine/tests/logs/memcpy-2.txt new file mode 100644 index 000000000..f1d62bc2f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy-2.txt @@ -0,0 +1,6 @@ +1: "memcpy" +5: "memcpy" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy-addrspace.txt b/SSA/Projects/InstCombine/tests/logs/memcpy-addrspace.txt new file mode 100644 index 000000000..1c97537c1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy-addrspace.txt @@ -0,0 +1,122 @@ +1: "test_load" +4: "test_load" has unsupported operation: llvm.mlir.addressof + +4: "test_load" has unsupported operation: llvm.getelementptr + +4: "test_load" has unsupported operation: llvm.load + +4: "test_load" has unsupported operation: llvm.getelementptr + +4: "test_load" has unsupported operation: llvm.store + +4: "test_load" has unsupported operation: llvm.return + +1: "test_load_gep_nusw_nuw" +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.mlir.addressof + +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.getelementptr + +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.load + +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.getelementptr + +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.store + +4: "test_load_gep_nusw_nuw" has unsupported operation: llvm.return + +1: "test_load_bitcast_chain" +4: "test_load_bitcast_chain" has unsupported operation: llvm.mlir.addressof + +4: "test_load_bitcast_chain" has unsupported operation: llvm.getelementptr + +4: "test_load_bitcast_chain" has unsupported operation: llvm.load + +4: "test_load_bitcast_chain" has unsupported operation: llvm.getelementptr + +4: "test_load_bitcast_chain" has unsupported operation: llvm.store + +4: "test_load_bitcast_chain" has unsupported operation: llvm.return + +1: "test_call" +4: "test_call" has unsupported operation: llvm.mlir.addressof + +4: "test_call" has unsupported operation: llvm.alloca + +4: "test_call" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_call" has unsupported operation: llvm.getelementptr + +4: "test_call" has unsupported operation: llvm.call + +4: "test_call" has unsupported operation: llvm.getelementptr + +4: "test_call" has unsupported operation: llvm.store + +4: "test_call" has unsupported operation: llvm.return + +1: "test_call_no_null_opt" +4: "test_call_no_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_call_no_null_opt" has unsupported operation: llvm.alloca + +4: "test_call_no_null_opt" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_call_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_call_no_null_opt" has unsupported operation: llvm.call + +4: "test_call_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_call_no_null_opt" has unsupported operation: llvm.store + +4: "test_call_no_null_opt" has unsupported operation: llvm.return + +1: "test_load_and_call" +4: "test_load_and_call" has unsupported operation: llvm.mlir.addressof + +4: "test_load_and_call" has unsupported operation: llvm.alloca + +4: "test_load_and_call" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_load_and_call" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call" has unsupported operation: llvm.load + +4: "test_load_and_call" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call" has unsupported operation: llvm.store + +4: "test_load_and_call" has unsupported operation: llvm.call + +4: "test_load_and_call" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call" has unsupported operation: llvm.store + +4: "test_load_and_call" has unsupported operation: llvm.return + +1: "test_load_and_call_no_null_opt" +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.alloca + +4: "test_load_and_call_no_null_opt" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.load + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.store + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.call + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.store + +4: "test_load_and_call_no_null_opt" has unsupported operation: llvm.return + +1: "foo" +5: "foo" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy-from-global.txt b/SSA/Projects/InstCombine/tests/logs/memcpy-from-global.txt new file mode 100644 index 000000000..36670b9d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy-from-global.txt @@ -0,0 +1,2 @@ +3: memcpy-from-global.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy-to-load.txt b/SSA/Projects/InstCombine/tests/logs/memcpy-to-load.txt new file mode 100644 index 000000000..533b215d0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy-to-load.txt @@ -0,0 +1,50 @@ +1: "copy_1_byte" +4: "copy_1_byte" has unsupported operation: llvm.load + +4: "copy_1_byte" has unsupported operation: llvm.store + +4: "copy_1_byte" has unsupported operation: llvm.return + +1: "copy_2_bytes" +4: "copy_2_bytes" has unsupported operation: llvm.load + +4: "copy_2_bytes" has unsupported operation: llvm.store + +4: "copy_2_bytes" has unsupported operation: llvm.return + +1: "copy_3_bytes" +4: "copy_3_bytes" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "copy_3_bytes" has unsupported operation: llvm.return + +1: "copy_4_bytes" +4: "copy_4_bytes" has unsupported operation: llvm.load + +4: "copy_4_bytes" has unsupported operation: llvm.store + +4: "copy_4_bytes" has unsupported operation: llvm.return + +1: "copy_5_bytes" +4: "copy_5_bytes" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "copy_5_bytes" has unsupported operation: llvm.return + +1: "copy_8_bytes" +4: "copy_8_bytes" has unsupported operation: llvm.load + +4: "copy_8_bytes" has unsupported operation: llvm.store + +4: "copy_8_bytes" has unsupported operation: llvm.return + +1: "copy_16_bytes" +4: "copy_16_bytes" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "copy_16_bytes" has unsupported operation: llvm.return + +1: "copy_8_bytes_noalias" +4: "copy_8_bytes_noalias" has unsupported operation: llvm.load + +4: "copy_8_bytes_noalias" has unsupported operation: llvm.store + +4: "copy_8_bytes_noalias" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy.txt b/SSA/Projects/InstCombine/tests/logs/memcpy.txt new file mode 100644 index 000000000..f311d77f3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy.txt @@ -0,0 +1,16 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test3" has unsupported operation: llvm.return + +1: "memcpy_to_constant" +4: "memcpy_to_constant" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy_alloca.txt b/SSA/Projects/InstCombine/tests/logs/memcpy_alloca.txt new file mode 100644 index 000000000..afb959066 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy_alloca.txt @@ -0,0 +1,36 @@ +1: "test" +4: "test" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.alloca + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.alloca + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: llvm.return + +1: "test5" +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: llvm.alloca + +4: "test6" has unsupported operation: llvm.getelementptr + +4: "test6" has unsupported operation: llvm.store + +4: "test6" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test6" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/memcpy_chk-1.txt new file mode 100644 index 000000000..da746bb9a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy_chk-1.txt @@ -0,0 +1,55 @@ +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_simplify_return_indcall" +4: "test_simplify_return_indcall" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify_return_indcall" has unsupported operation: llvm.call + +4: "test_simplify_return_indcall" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "__memcpy_chk" +5: "__memcpy_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/memcpy_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/memcpy_chk-2.txt new file mode 100644 index 000000000..b9e081a2a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memcpy_chk-2.txt @@ -0,0 +1,12 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__memcpy_chk" +5: "__memcpy_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/memmove-1.txt b/SSA/Projects/InstCombine/tests/logs/memmove-1.txt new file mode 100644 index 000000000..17b37f841 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memmove-1.txt @@ -0,0 +1,15 @@ +1: "memmove" +5: "memmove" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memmove + diff --git a/SSA/Projects/InstCombine/tests/logs/memmove-2.txt b/SSA/Projects/InstCombine/tests/logs/memmove-2.txt new file mode 100644 index 000000000..ece4f0e2e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memmove-2.txt @@ -0,0 +1,6 @@ +1: "memmove" +5: "memmove" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memmove.txt b/SSA/Projects/InstCombine/tests/logs/memmove.txt new file mode 100644 index 000000000..747950e5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memmove.txt @@ -0,0 +1,23 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test2" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.store + +1: "test4" +4: "test4" has unsupported operation: llvm.return + +1: "memmove_to_constant" +4: "memmove_to_constant" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memmove_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/memmove_chk-1.txt new file mode 100644 index 000000000..15e9c5a32 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memmove_chk-1.txt @@ -0,0 +1,48 @@ +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memmove + +1: "__memmove_chk" +5: "__memmove_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/memmove_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/memmove_chk-2.txt new file mode 100644 index 000000000..52b054281 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memmove_chk-2.txt @@ -0,0 +1,12 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__memmove_chk" +5: "__memmove_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/mempcpy.txt b/SSA/Projects/InstCombine/tests/logs/mempcpy.txt new file mode 100644 index 000000000..23b9747dc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mempcpy.txt @@ -0,0 +1,40 @@ +1: "memcpy_nonconst_n" +4: "memcpy_nonconst_n" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memcpy_nonconst_n" has unsupported operation: llvm.getelementptr + +1: "memcpy_nonconst_n_copy_attrs" +4: "memcpy_nonconst_n_copy_attrs" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memcpy_nonconst_n_copy_attrs" has unsupported operation: llvm.getelementptr + +1: "memcpy_nonconst_n_unused_retval" +4: "memcpy_nonconst_n_unused_retval" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memcpy_nonconst_n_unused_retval" has unsupported operation: llvm.return + +1: "memcpy_small_const_n" +4: "memcpy_small_const_n" has unsupported operation: llvm.load + +4: "memcpy_small_const_n" has unsupported operation: llvm.store + +4: "memcpy_small_const_n" has unsupported operation: llvm.getelementptr + +1: "memcpy_big_const_n" +4: "memcpy_big_const_n" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "memcpy_big_const_n" has unsupported operation: llvm.getelementptr + +1: "PR48810" +4: "PR48810" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR48810" has unsupported operation: llvm.mlir.undef + +4: "PR48810" has unsupported operation: llvm.store + +1: "memcpy_no_simplify1" +4: "memcpy_no_simplify1" has unsupported operation: llvm.call + +1: "mempcpy" +5: "mempcpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-2.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-2.txt new file mode 100644 index 000000000..100f2961e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-2.txt @@ -0,0 +1,28 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "call_memrchr_a12345_c_ui32max_p1" +4: "call_memrchr_a12345_c_ui32max_p1" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a12345_c_ui32max_p1" has unsupported operation: llvm.call + +1: "call_memrchr_ax1_c_ui32max_p2" +4: "call_memrchr_ax1_c_ui32max_p2" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_ax1_c_ui32max_p2" has unsupported operation: llvm.call + +1: "call_memrchr_ax_c_ui32max_p2" +4: "call_memrchr_ax_c_ui32max_p2" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_ax_c_ui32max_p2" has unsupported operation: llvm.call + +1: "call_memrchr_a12345_c_6" +4: "call_memrchr_a12345_c_6" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a12345_c_6" has unsupported operation: llvm.call + +1: "call_memrchr_a12345_c_szmax" +4: "call_memrchr_a12345_c_szmax" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a12345_c_szmax" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt new file mode 100644 index 000000000..94f8ff599 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-3.txt @@ -0,0 +1,126 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "fold_memrchr_ax_c_0" +4: "fold_memrchr_ax_c_0" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a12345_3_0" +4: "fold_memrchr_a12345_3_0" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a12345_1_1" +4: "fold_memrchr_a12345_1_1" has unsupported operation: llvm.mlir.addressof + +1: "fold_memrchr_a12345_5_1" +4: "fold_memrchr_a12345_5_1" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a123123_1_1" +4: "fold_memrchr_a123123_1_1" has unsupported operation: llvm.mlir.addressof + +1: "fold_memrchr_a123123_3_1" +4: "fold_memrchr_a123123_3_1" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_ax_c_1" +4: "fold_memrchr_ax_c_1" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_ax_c_1" has unsupported operation: llvm.mlir.zero + +4: "fold_memrchr_ax_c_1" has unsupported operation: llvm.load + +4: "fold_memrchr_ax_c_1" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_memrchr_a12345_5_5" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a12345_5_4" +4: "fold_memrchr_a12345_5_4" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a12345_4_5" +4: "fold_memrchr_a12345_4_5" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a12345_4_5" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a12345p1_1_4" +4: "fold_memrchr_a12345p1_1_4" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a12345p1_2_4" +4: "fold_memrchr_a12345p1_2_4" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a12345p1_2_4" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a12345_2_5" +4: "fold_memrchr_a12345_2_5" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a12345_2_5" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a12345_0_n" +4: "fold_memrchr_a12345_0_n" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a12345_3_n" +4: "fold_memrchr_a12345_3_n" has unsupported operation: llvm.mlir.zero + +4: "fold_memrchr_a12345_3_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a12345_3_n" has unsupported operation: llvm.getelementptr + +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 + +4: "fold_memrchr_a12345_5_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a12345_5_n" has unsupported operation: llvm.getelementptr + +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 + +4: "fold_memrchr_a123123_3_5" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a123123_3_6" +4: "fold_memrchr_a123123_3_6" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a123123_3_6" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a123123_2_6" +4: "fold_memrchr_a123123_2_6" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a123123_2_6" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a123123_1_6" +4: "fold_memrchr_a123123_1_6" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a123123_1_6" has unsupported operation: llvm.getelementptr + +1: "fold_memrchr_a123123_0_6" +4: "fold_memrchr_a123123_0_6" has unsupported operation: llvm.mlir.zero + +1: "fold_memrchr_a123123_0_n" +4: "fold_memrchr_a123123_0_n" has unsupported operation: llvm.mlir.zero + +1: "call_memrchr_a123123_3_n" +4: "call_memrchr_a123123_3_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a123123_3_n" has unsupported operation: llvm.call + +1: "call_memrchr_a123123_2_n" +4: "call_memrchr_a123123_2_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a123123_2_n" has unsupported operation: llvm.call + +1: "call_memrchr_a123123_1_n" +4: "call_memrchr_a123123_1_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a123123_1_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt new file mode 100644 index 000000000..5496c2a5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-4.txt @@ -0,0 +1,63 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "fold_memrchr_a11111_c_5" +4: "fold_memrchr_a11111_c_5" has unsupported operation: llvm.mlir.addressof + +4: "fold_memrchr_a11111_c_5" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a11111_c_5" has unsupported operation: llvm.mlir.zero + +4: "fold_memrchr_a11111_c_5" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_memrchr_a11111_c_n" has unsupported operation: llvm.mlir.zero + +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.trunc + +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 + +4: "fold_memrchr_a1110111_c_3" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a1110111_c_3" has unsupported operation: llvm.mlir.zero + +4: "fold_memrchr_a1110111_c_3" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "call_memrchr_a1110111_c_4" has unsupported operation: llvm.call + +1: "call_memrchr_a1110111_c_7" +4: "call_memrchr_a1110111_c_7" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a1110111_c_7" has unsupported operation: llvm.call + +1: "call_memrchr_a1110111_c_n" +4: "call_memrchr_a1110111_c_n" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a1110111_c_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-5.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-5.txt new file mode 100644 index 000000000..ae4a6e4ca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-5.txt @@ -0,0 +1,82 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "fold_memrchr_a_16" +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_16" has unsupported operation: llvm.return + +1: "fold_memrchr_a_p1_16" +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.store + +4: "fold_memrchr_a_p1_16" has unsupported operation: llvm.return + +1: "fold_memrchr_a_20" +4: "fold_memrchr_a_20" has unsupported operation: llvm.store + +4: "fold_memrchr_a_20" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_20" has unsupported operation: llvm.store + +4: "fold_memrchr_a_20" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_20" has unsupported operation: llvm.store + +4: "fold_memrchr_a_20" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_20" has unsupported operation: llvm.store + +4: "fold_memrchr_a_20" has unsupported operation: llvm.getelementptr + +4: "fold_memrchr_a_20" has unsupported operation: llvm.store + +4: "fold_memrchr_a_20" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-7.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-7.txt new file mode 100644 index 000000000..4fa7de5a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-7.txt @@ -0,0 +1,48 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "call_memrchr_ap5_c_1_eq_a" +4: "call_memrchr_ap5_c_1_eq_a" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "call_memrchr_ap5_c_5_eq_a" +4: "call_memrchr_ap5_c_5_eq_a" has unsupported operation after optimization: llvm.mlir.addressof + +4: "call_memrchr_ap5_c_5_eq_a" has unsupported operation after optimization: llvm.getelementptr + +4: "call_memrchr_ap5_c_5_eq_a" has unsupported operation after optimization: llvm.getelementptr + +4: "call_memrchr_ap5_c_5_eq_a" has unsupported operation after optimization: llvm.call + +4: "call_memrchr_ap5_c_5_eq_a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_memrchr_ap5_c_n_eq_a" +4: "fold_memrchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memrchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memrchr_ap5_c_n_eq_a" has unsupported operation after optimization: llvm.call + +4: "fold_memrchr_ap5_c_n_eq_a" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_memrchr_ap5_c_n_eqz" +4: "fold_memrchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memrchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_memrchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memrchr_ap5_c_n_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_memrchr_ap5_c_n_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_memrchr_a_nul_n_eqz" +4: "fold_memrchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_memrchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_memrchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_memrchr_a_nul_n_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_memrchr_a_nul_n_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr-8.txt b/SSA/Projects/InstCombine/tests/logs/memrchr-8.txt new file mode 100644 index 000000000..983c49c7f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr-8.txt @@ -0,0 +1,32 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "call_memrchr_a_c_9_eq_a" +4: "call_memrchr_a_c_9_eq_a" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a_c_9_eq_a" has unsupported operation: llvm.call + +4: "call_memrchr_a_c_9_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_memrchr_a_c_n_eq_a" +4: "call_memrchr_a_c_n_eq_a" has unsupported operation: llvm.mlir.addressof + +4: "call_memrchr_a_c_n_eq_a" has unsupported operation: llvm.call + +4: "call_memrchr_a_c_n_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_memrchr_s_c_17_eq_s" +4: "call_memrchr_s_c_17_eq_s" has unsupported operation: llvm.call + +4: "call_memrchr_s_c_17_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_memrchr_s_c_9_neq_s" +4: "call_memrchr_s_c_9_neq_s" has unsupported operation: llvm.call + +4: "call_memrchr_s_c_9_neq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_memrchr_s_c_n_eq_s" +4: "fold_memrchr_s_c_n_eq_s" has unsupported operation: llvm.call + +4: "fold_memrchr_s_c_n_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/memrchr.txt b/SSA/Projects/InstCombine/tests/logs/memrchr.txt new file mode 100644 index 000000000..b7a0d7815 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memrchr.txt @@ -0,0 +1,18 @@ +1: "memrchr" +5: "memrchr" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: llvm.call + +1: "test4" +4: "test4" has unsupported operation: llvm.call + +1: "test5" +4: "test5" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memset-1.txt b/SSA/Projects/InstCombine/tests/logs/memset-1.txt new file mode 100644 index 000000000..bde0527e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memset-1.txt @@ -0,0 +1,94 @@ +1: "memset" +5: "memset" is empty + +1: "malloc" +5: "malloc" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "test_simplify1_tail" +4: "test_simplify1_tail" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_simplify1_tail" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "test_simplify1_musttail" +4: "test_simplify1_musttail" has unsupported operation: llvm.call + +1: "pr25892_lite" +4: "pr25892_lite" has unsupported operation: llvm.call + +4: "pr25892_lite" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "malloc_and_memset_intrinsic" +4: "malloc_and_memset_intrinsic" has unsupported operation: llvm.call + +4: "malloc_and_memset_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "notmalloc_memset" +4: "notmalloc_memset" has unsupported operation: llvm.call + +4: "notmalloc_memset" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "pr25892" +4: "pr25892" has unsupported operation: llvm.mlir.zero + +4: "pr25892" has unsupported operation: llvm.call + +4: "pr25892" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr25892" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr25892" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "pr25892" has unsupported operation: builtin.unregistered: llvm.br + +1: "buffer_is_modified_then_memset" +4: "buffer_is_modified_then_memset" has unsupported operation: llvm.call + +4: "buffer_is_modified_then_memset" has unsupported operation: llvm.store + +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" +4: "memset_size_ashr" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "memset_attrs1" +4: "memset_attrs1" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "memset_attrs2" +4: "memset_attrs2" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "memset_attrs3" +4: "memset_attrs3" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "memset_attrs4" +4: "memset_attrs4" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memset + diff --git a/SSA/Projects/InstCombine/tests/logs/memset-2.txt b/SSA/Projects/InstCombine/tests/logs/memset-2.txt new file mode 100644 index 000000000..ae457e040 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memset-2.txt @@ -0,0 +1,6 @@ +1: "memset" +5: "memset" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/memset.txt b/SSA/Projects/InstCombine/tests/logs/memset.txt new file mode 100644 index 000000000..8f0e80095 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memset.txt @@ -0,0 +1,32 @@ +1: "test" +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +1: "memset_to_constant" +4: "memset_to_constant" has unsupported operation: llvm.return + +1: "memset_undef" +4: "memset_undef" has unsupported operation: llvm.return + +1: "memset_undef_volatile" +4: "memset_undef_volatile" has unsupported operation: llvm.mlir.undef + +4: "memset_undef_volatile" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "memset_undef_volatile" has unsupported operation: llvm.return + +1: "memset_poison" +4: "memset_poison" has unsupported operation: llvm.return + +1: "memset_poison_volatile" +4: "memset_poison_volatile" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "memset_poison_volatile" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "memset_poison_volatile" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/memset2.txt b/SSA/Projects/InstCombine/tests/logs/memset2.txt new file mode 100644 index 000000000..4d72faf58 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memset2.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/memset_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/memset_chk-1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/memset_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/memset_chk-2.txt new file mode 100644 index 000000000..a7d42ec23 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/memset_chk-2.txt @@ -0,0 +1,10 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__memset_chk" +5: "__memset_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/merge-icmp.txt b/SSA/Projects/InstCombine/tests/logs/merge-icmp.txt new file mode 100644 index 000000000..f0ee92f90 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/merge-icmp.txt @@ -0,0 +1,126 @@ +1: "use.i1" +5: "use.i1" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "use.i16" +5: "use.i16" is empty + +1: "and_test1" +4: "and_test1" has unsupported operation: llvm.load + +4: "and_test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_test1_logical" +4: "and_test1_logical" has unsupported operation: llvm.load + +4: "and_test1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_test1_vector" +4: "and_test1_vector" has unsupported operation: llvm.load + +4: "and_test1_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_test2" +4: "and_test2" has unsupported operation: llvm.load + +4: "and_test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_test2_logical" +4: "and_test2_logical" has unsupported operation: llvm.load + +4: "and_test2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_test2_vector" +4: "and_test2_vector" has unsupported operation: llvm.load + +4: "and_test2_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_basic" +4: "or_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_basic_commuted" +4: "or_basic_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_vector" +4: "or_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_nontrivial_mask1" +4: "or_nontrivial_mask1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_nontrivial_mask2" +4: "or_nontrivial_mask2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_extra_use1" +4: "or_extra_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_extra_use1" has unsupported operation: llvm.call + +4: "or_extra_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_extra_use2" +4: "or_extra_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_extra_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_extra_use2" has unsupported operation: llvm.call + +1: "or_extra_use3" +4: "or_extra_use3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_extra_use3" has unsupported operation: llvm.call + +4: "or_extra_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_extra_use4" +4: "or_extra_use4" has unsupported operation: llvm.call + +4: "or_extra_use4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_wrong_pred1" +4: "or_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_wrong_pred2" +4: "or_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_wrong_pred3" +4: "or_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_wrong_op" +4: "or_wrong_op" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_wrong_op" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_wrong_op" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_wrong_const1" +4: "or_wrong_const1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "or_wrong_const1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "or_wrong_const1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "or_wrong_const2" +4: "or_wrong_const2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or_wrong_const2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "or_wrong_const2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/merging-multiple-stores-into-successor.txt b/SSA/Projects/InstCombine/tests/logs/merging-multiple-stores-into-successor.txt new file mode 100644 index 000000000..bdb7be383 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/merging-multiple-stores-into-successor.txt @@ -0,0 +1,2 @@ +3: merging-multiple-stores-into-successor.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/min-positive.txt b/SSA/Projects/InstCombine/tests/logs/min-positive.txt new file mode 100644 index 000000000..c1cb0e8a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/min-positive.txt @@ -0,0 +1,40 @@ +1: "smin" +4: "smin" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_int" +4: "smin_int" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_vec" +4: "smin_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_commute" +4: "smin_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_commute_vec" +4: "smin_commute_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_commute_vec_poison_elts" +4: "smin_commute_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smin_commute_vec_poison_elts" has unsupported operation: llvm.mlir.undef + +4: "smin_commute_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "smin_commute_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "smin_commute_vec_poison_elts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "maybe_not_positive" +4: "maybe_not_positive" has unsupported operation: llvm.mlir.addressof + +4: "maybe_not_positive" has unsupported operation: llvm.load + +4: "maybe_not_positive" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "maybe_not_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "maybe_not_positive_vec" +4: "maybe_not_positive_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "maybe_not_positive_vec" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/minimum.txt b/SSA/Projects/InstCombine/tests/logs/minimum.txt new file mode 100644 index 000000000..f7cf53149 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minimum.txt @@ -0,0 +1,215 @@ +1: "constant_fold_minimum_f32" +4: "constant_fold_minimum_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_inv" +4: "constant_fold_minimum_f32_inv" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_nan0" +4: "constant_fold_minimum_f32_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_nan1" +4: "constant_fold_minimum_f32_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_nan_nan" +4: "constant_fold_minimum_f32_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_p0_p0" +4: "constant_fold_minimum_f32_p0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_p0_n0" +4: "constant_fold_minimum_f32_p0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_n0_p0" +4: "constant_fold_minimum_f32_n0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f32_n0_n0" +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 + +1: "constant_fold_minimum_f64" +4: "constant_fold_minimum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f64_nan0" +4: "constant_fold_minimum_f64_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f64_nan1" +4: "constant_fold_minimum_f64_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "constant_fold_minimum_f64_nan_nan" +4: "constant_fold_minimum_f64_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "canonicalize_constant_minimum_f32" +4: "canonicalize_constant_minimum_f32" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_nan_val" +4: "minimum_f32_nan_val" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_val_nan" +4: "minimum_f32_val_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_val_p0" +4: "minimum_f32_1_minimum_val_p0" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_p0_val_fast" +4: "minimum_f32_1_minimum_p0_val_fast" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_p0_val_fmf1" +4: "minimum_f32_1_minimum_p0_val_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_p0_val_fmf2" +4: "minimum_f32_1_minimum_p0_val_fmf2" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_p0_val_fmf3" +4: "minimum_f32_1_minimum_p0_val_fmf3" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_p0_minimum_val_n0" +4: "minimum_f32_p0_minimum_val_n0" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_p0_val" +4: "minimum_f32_1_minimum_p0_val" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_f32_1_minimum_val_p0_val_v2f32" +4: "minimum_f32_1_minimum_val_p0_val_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum4" +4: "minimum4" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "minimum4" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "minimum4" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "minimum_x_maximum_x_y" +4: "minimum_x_maximum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "minimum_x_maximum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "maximum_x_minimum_x_y" +4: "maximum_x_minimum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "maximum_x_minimum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +1: "neg_neg" +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg" +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "neg_neg_vec_fmf" +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg_vec_fmf" +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "use" +5: "use" is empty + +1: "neg_neg_extra_use_x" +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x" +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_y" +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_y" +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.maximum + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_x_and_y" +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x_and_y" +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "reduce_precision" +4: "reduce_precision" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "reduce_precision_fmf" +4: "reduce_precision_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "negated_op" +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negated_op_fmf_commute_vec" +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negated_op_extra_use" +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use" has unsupported operation: llvm.call + +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +1: "pr71548" +4: "pr71548" has unsupported operation: llvm.mlir.zero + +4: "pr71548" has unsupported operation: llvm.load + +4: "pr71548" has unsupported operation: llvm.load + +4: "pr71548" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "pr71548" has unsupported operation: builtin.unregistered: llvm.intr.minimum + +4: "pr71548" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "pr71548" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr71548" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "pr71548" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt b/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt new file mode 100644 index 000000000..65bceefdd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-demandbits.txt @@ -0,0 +1,88 @@ +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 + +1: "f_32_32" +4: "f_32_32" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "f_191_192" +4: "f_191_192" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "f_10_1" +4: "f_10_1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +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 new file mode 100644 index 000000000..72208ef53 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-fold.txt @@ -0,0 +1,550 @@ +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "t3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t4" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5" +4: "t5" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t6" +4: "t6" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t6" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "t7" +4: "t7" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t7" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t10" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "t11" +4: "t11" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "t11" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "bitcasts_fcmp_1" +4: "bitcasts_fcmp_1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasts_fcmp_1" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcasts_fcmp_2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasts_fcmp_2" has unsupported operation: builtin.unregistered: llvm.bitcast + +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" +4: "bitcasts_icmp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasts_icmp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcasts_icmp" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "bitcasts_icmp" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test68" +4: "test68" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test68vec" +4: "test68vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test69" +4: "test69" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test70" +4: "test70" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test71" +4: "test71" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test72" +4: "test72" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test72vec" +4: "test72vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test73" +4: "test73" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test74" +4: "test74" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test75" +4: "test75" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "clamp_signed1" +4: "clamp_signed1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "clamp_signed1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "clamp_signed2" +4: "clamp_signed2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "clamp_signed2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "clamp_signed3" +4: "clamp_signed3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "clamp_signed3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "clamp_signed4" +4: "clamp_signed4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "clamp_signed4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "clamp_unsigned1" +4: "clamp_unsigned1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "clamp_unsigned1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "clamp_unsigned2" +4: "clamp_unsigned2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "clamp_unsigned2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "clamp_unsigned3" +4: "clamp_unsigned3" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "clamp_unsigned3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "clamp_unsigned4" +4: "clamp_unsigned4" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "clamp_unsigned4" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "clamp_check_for_no_infinite_loop1" +4: "clamp_check_for_no_infinite_loop1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "clamp_check_for_no_infinite_loop1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "clamp_check_for_no_infinite_loop2" +4: "clamp_check_for_no_infinite_loop2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "clamp_check_for_no_infinite_loop2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "clamp_check_for_no_infinite_loop3" +4: "clamp_check_for_no_infinite_loop3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "clamp_check_for_no_infinite_loop3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "clamp_check_for_no_infinite_loop3" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "PR31751_umin1" +4: "PR31751_umin1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "PR31751_umin1" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "PR31751_umin2" +4: "PR31751_umin2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "PR31751_umin2" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "PR31751_umin3" +4: "PR31751_umin3" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "PR31751_umin3" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "PR31751_umax1" +4: "PR31751_umax1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "PR31751_umax1" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "PR31751_umax2" +4: "PR31751_umax2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "PR31751_umax2" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "PR31751_umax3" +4: "PR31751_umax3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "PR31751_umax3" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "bitcast_scalar_smax" +4: "bitcast_scalar_smax" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_scalar_smax" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_scalar_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "bitcast_scalar_smax" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_scalar_umax" +4: "bitcast_scalar_umax" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_scalar_umax" has unsupported operation: builtin.unregistered: llvm.bitcast + +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 + +4: "bitcast_vector_smin" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_vector_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "bitcast_vector_smin" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_vector_umin" +4: "bitcast_vector_umin" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_vector_umin" has unsupported operation: builtin.unregistered: llvm.bitcast + +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 + +4: "look_through_cast1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "look_through_cast2" +4: "look_through_cast2" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "min_through_cast_vec1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "min_through_cast_vec2" +4: "min_through_cast_vec2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "min_through_cast_vec2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "common_factor_smin" +4: "common_factor_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "common_factor_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "common_factor_smax" +4: "common_factor_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "common_factor_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "common_factor_umin" +4: "common_factor_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "common_factor_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "common_factor_umax" +4: "common_factor_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "extra_use" +5: "extra_use" is empty + +1: "common_factor_umax_extra_use_lhs" +4: "common_factor_umax_extra_use_lhs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_lhs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_lhs" has unsupported operation: llvm.call + +1: "common_factor_umax_extra_use_rhs" +4: "common_factor_umax_extra_use_rhs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_rhs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_rhs" has unsupported operation: llvm.call + +1: "common_factor_umax_extra_use_both" +4: "common_factor_umax_extra_use_both" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_both" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_both" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "common_factor_umax_extra_use_both" has unsupported operation: llvm.call + +4: "common_factor_umax_extra_use_both" has unsupported operation: llvm.call + +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 + +1: "add_umin_wrong_wrap" +4: "add_umin_wrong_wrap" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "add_umin_extra_use" +4: "add_umin_extra_use" has unsupported operation: llvm.store + +4: "add_umin_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "add_umin_vec" +4: "add_umin_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "add_umax" +4: "add_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "add_umax_constant_limit" +4: "add_umax_constant_limit" has unsupported operation: builtin.unregistered: llvm.intr.umax + +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 + +1: "add_umax_wrong_wrap" +4: "add_umax_wrong_wrap" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "add_umax_extra_use" +4: "add_umax_extra_use" has unsupported operation: llvm.store + +4: "add_umax_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "add_umax_vec" +4: "add_umax_vec" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "PR14613_umin" +4: "PR14613_umin" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "PR14613_umax" +4: "PR14613_umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "add_smin" +4: "add_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "add_smin_constant_limit" +4: "add_smin_constant_limit" has unsupported operation: builtin.unregistered: llvm.intr.smin + +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 + +1: "add_smin_wrong_wrap" +4: "add_smin_wrong_wrap" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "add_smin_extra_use" +4: "add_smin_extra_use" has unsupported operation: llvm.store + +4: "add_smin_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "add_smin_vec" +4: "add_smin_vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "add_smax" +4: "add_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "add_smax_constant_limit" +4: "add_smax_constant_limit" has unsupported operation: builtin.unregistered: llvm.intr.smax + +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 + +1: "add_smax_wrong_wrap" +4: "add_smax_wrong_wrap" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "add_smax_extra_use" +4: "add_smax_extra_use" has unsupported operation: llvm.store + +4: "add_smax_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "add_smax_vec" +4: "add_smax_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "PR14613_smin" +4: "PR14613_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "PR14613_smax" +4: "PR14613_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "PR46271" +4: "PR46271" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR46271" has unsupported operation: llvm.mlir.undef + +4: "PR46271" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR46271" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR46271" has unsupported operation: llvm.mlir.undef + +4: "PR46271" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR46271" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "twoway_clamp_gt" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "twoway_clamp_gt_nonconst" +4: "twoway_clamp_gt_nonconst" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "twoway_clamp_gt_nonconst" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_umax_smax1" +4: "test_umax_smax1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test_umax_smax2" +4: "test_umax_smax2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test_umax_smax_vec" +4: "test_umax_smax_vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test_smin_umin1" +4: "test_smin_umin1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_smin_umin2" +4: "test_smin_umin2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_smin_umin_vec" +4: "test_smin_umin_vec" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_umax_smax3" +4: "test_umax_smax3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "test_umax_smax3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "test_umax_smax4" +4: "test_umax_smax4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test_umax_smax4" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_smin_umin3" +4: "test_smin_umin3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +4: "test_smin_umin3" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "test_smin_umin4" +4: "test_smin_umin4" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "test_smin_umin4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_umax_nonminmax" +4: "test_umax_nonminmax" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "test_umax_nonminmax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_umax_smax_vec_neg" +4: "test_umax_smax_vec_neg" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test_umax_smax_vec_neg" has unsupported operation: builtin.unregistered: llvm.intr.umax + diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt b/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt new file mode 100644 index 000000000..643f42148 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-fp.txt @@ -0,0 +1,212 @@ +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" +4: "t5" has unsupported operation: builtin.unregistered: llvm.fcmp + +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" +4: "t7" has unsupported operation: builtin.unregistered: llvm.fcmp + +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" +4: "t13" has unsupported operation: builtin.unregistered: llvm.fcmp + +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" +4: "t16" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t17" has unsupported operation: builtin.unregistered: llvm.uitofp + +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" +4: "maxnum_ogt_fmf_on_select" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "maxnum_oge_fmf_on_select" +4: "maxnum_oge_fmf_on_select" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +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 + +1: "minnum_ole_fmf_on_select" +4: "minnum_ole_fmf_on_select" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +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 new file mode 100644 index 000000000..c3b5aae55 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-intrinsics.txt @@ -0,0 +1,1072 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "umin_known_bits" +4: "umin_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umax_known_bits" +4: "umax_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "smin_known_bits" +4: "smin_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "smax_known_bits" +4: "smax_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "smax_sext" +4: "smax_sext" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smin_sext" +4: "smin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "smin_sext" has unsupported operation: llvm.call + +4: "smin_sext" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umax_sext" +4: "umax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "umax_sext" has unsupported operation: llvm.call + +4: "umax_sext" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umin_sext" +4: "umin_sext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smax_zext" +4: "smax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smax_zext" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_zext" +4: "smin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smin_zext" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_zext" +4: "umax_zext" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext" +4: "umin_zext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext_types" +4: "umin_zext_types" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_zext_types" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_zext_types" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_ext" +4: "umin_ext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "umin_ext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_ext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_zext_uses" +4: "umin_zext_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_zext_uses" has unsupported operation: llvm.call + +4: "umin_zext_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_zext_uses" has unsupported operation: llvm.call + +4: "umin_zext_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_sext_constant" +4: "smax_sext_constant" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_sext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "smax_sext_constant_big" +4: "smax_sext_constant_big" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "smax_sext_constant_big" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "smax_zext_constant" +4: "smax_zext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smax_zext_constant" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_sext_constant" +4: "smin_sext_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_sext_constant" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smin_zext_constant" +4: "smin_zext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +4: "smin_zext_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_sext_constant" +4: "umax_sext_constant" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sext_constant" has unsupported operation: builtin.unregistered: llvm.sext + +1: "umax_sext_constant_big" +4: "umax_sext_constant_big" has unsupported operation: builtin.unregistered: llvm.sext + +4: "umax_sext_constant_big" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_zext_constant" +4: "umax_zext_constant" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_zext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umax_zext_constant_big" +4: "umax_zext_constant_big" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "umax_zext_constant_big" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "umin_sext_constant" +4: "umin_sext_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_sext_constant_big" +4: "umin_sext_constant_big" has unsupported operation: builtin.unregistered: llvm.sext + +4: "umin_sext_constant_big" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_zext_constant" +4: "umin_zext_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_zext_constant" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext_constant_big" +4: "umin_zext_constant_big" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_zext_constant_uses" +4: "umin_zext_constant_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "umin_zext_constant_uses" has unsupported operation: llvm.call + +4: "umin_zext_constant_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_of_nots" +4: "smax_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_nots" +4: "smin_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "umax_of_nots" +4: "umax_of_nots" has unsupported operation: llvm.call + +4: "umax_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_nots" +4: "umin_of_nots" has unsupported operation: llvm.call + +4: "umin_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_of_nots_uses" +4: "umin_of_nots_uses" has unsupported operation: llvm.call + +4: "umin_of_nots_uses" has unsupported operation: llvm.call + +4: "umin_of_nots_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_of_not_and_const" +4: "smax_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_not_and_const" +4: "smin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smin_of_not_and_const" has unsupported operation: llvm.mlir.undef + +4: "smin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "smin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "smin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "smin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "umax_of_not_and_const" +4: "umax_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_not_and_const" +4: "umin_of_not_and_const" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_of_not_and_smax" +4: "umin_of_not_and_smax" has unsupported operation: llvm.call + +4: "umin_of_not_and_smax" has unsupported operation: llvm.call + +4: "umin_of_not_and_smax" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "umin_of_not_and_smax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smin_of_umax_and_not" +4: "smin_of_umax_and_not" has unsupported operation: llvm.call + +4: "smin_of_umax_and_not" has unsupported operation: llvm.call + +4: "smin_of_umax_and_not" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "smin_of_umax_and_not" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "umin_of_not_and_nontrivial_const" +4: "umin_of_not_and_nontrivial_const" has unsupported operation: llvm.mlir.addressof + +4: "umin_of_not_and_nontrivial_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "umin_of_not_and_nontrivial_const" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_not_and_const_uses" +4: "umin_of_not_and_const_uses" has unsupported operation: llvm.call + +4: "umin_of_not_and_const_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "not_smax_of_nots" +4: "not_smax_of_nots" has unsupported operation: llvm.call + +4: "not_smax_of_nots" has unsupported operation: llvm.call + +4: "not_smax_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "not_smin_of_nots" +4: "not_smin_of_nots" has unsupported operation: llvm.call + +4: "not_smin_of_nots" has unsupported operation: llvm.call + +4: "not_smin_of_nots" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "not_smin_of_nots" has unsupported operation: llvm.call + +1: "not_umax_of_not" +4: "not_umax_of_not" has unsupported operation: llvm.call + +4: "not_umax_of_not" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "not_umin_of_not" +4: "not_umin_of_not" has unsupported operation: llvm.call + +4: "not_umin_of_not" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "not_umin_of_not" has unsupported operation: llvm.call + +1: "not_umin_of_not_constant_op" +4: "not_umin_of_not_constant_op" has unsupported operation: llvm.call + +4: "not_umin_of_not_constant_op" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smax_negation" +4: "smax_negation" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "smax_negation_nsw" +4: "smax_negation_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "smax_negation_not_nsw" +4: "smax_negation_not_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "smax_negation_vec" +4: "smax_negation_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "smin_negation" +4: "smin_negation" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "umax_negation" +4: "umax_negation" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "umin_negation" +4: "umin_negation" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "smax_negation_uses" +4: "smax_negation_uses" has unsupported operation: llvm.call + +4: "smax_negation_uses" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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 + +4: "clamp_two_vals_smax_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "clamp_three_vals_smax_smin" +4: "clamp_three_vals_smax_smin" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "clamp_three_vals_smax_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "clamp_two_vals_umax_umin_edge" +4: "clamp_two_vals_umax_umin_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "clamp_two_vals_umax_umin_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "clamp_two_vals_umin_umax_edge" +4: "clamp_two_vals_umin_umax_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +4: "clamp_two_vals_umin_umax_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "clamp_two_vals_smax_smin_edge" +4: "clamp_two_vals_smax_smin_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "clamp_two_vals_smax_smin_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "clamp_two_vals_smin_smax_edge" +4: "clamp_two_vals_smin_smax_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +4: "clamp_two_vals_smin_smax_edge" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "umin_non_zero_idiom1" +4: "umin_non_zero_idiom1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "umin_non_zero_idiom1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_non_zero_idiom2" +4: "umin_non_zero_idiom2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "umin_non_zero_idiom2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_non_zero_idiom3" +4: "umin_non_zero_idiom3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "umin_non_zero_idiom3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_non_zero_idiom4" +4: "umin_non_zero_idiom4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "umin_non_zero_idiom4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "umin_eq_zero" +4: "umin_eq_zero" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umin_eq_zero2" +4: "umin_eq_zero2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_eq_zero2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umin_ne_zero" +4: "umin_ne_zero" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umin_ne_zero2" +4: "umin_ne_zero2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_ne_zero2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smax" +4: "smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin" +4: "smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax" +4: "umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax" has unsupported operation: llvm.call + +4: "umax" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin" +4: "umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin" has unsupported operation: llvm.call + +4: "umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_uses" +4: "smax_uses" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_uses" has unsupported operation: llvm.call + +4: "smax_uses" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_uses" has unsupported operation: llvm.call + +4: "smax_uses" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_no_common_op" +4: "smax_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "umax_demand_lshr" +4: "umax_demand_lshr" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "umax_demand_and" +4: "umax_demand_and" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "umin_demand_or_31_30" +4: "umin_demand_or_31_30" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_demand_and_7_8" +4: "umin_demand_and_7_8" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "neg_neg_nsw_smax" +4: "neg_neg_nsw_smax" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "neg_neg_nsw_smin" +4: "neg_neg_nsw_smin" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "neg_neg_nsw_smax_use0" +4: "neg_neg_nsw_smax_use0" has unsupported operation: llvm.call + +4: "neg_neg_nsw_smax_use0" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "neg_neg_nsw_smin_use1" +4: "neg_neg_nsw_smin_use1" has unsupported operation: llvm.call + +4: "neg_neg_nsw_smin_use1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "neg_neg_nsw_smin_use2" +4: "neg_neg_nsw_smin_use2" has unsupported operation: llvm.call + +4: "neg_neg_nsw_smin_use2" has unsupported operation: llvm.call + +4: "neg_neg_nsw_smin_use2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "neg_neg_smax" +4: "neg_neg_smax" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "neg_neg_smin" +4: "neg_neg_smin" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "neg_neg_nsw_umin" +4: "neg_neg_nsw_umin" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "freeToInvertSub" +4: "freeToInvertSub" has unsupported operation: llvm.call + +4: "freeToInvertSub" has unsupported operation: llvm.call + +4: "freeToInvertSub" has unsupported operation: llvm.call + +4: "freeToInvertSub" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "freeToInvertSub_uses" +4: "freeToInvertSub_uses" has unsupported operation: llvm.call + +4: "freeToInvertSub_uses" has unsupported operation: llvm.call + +4: "freeToInvertSub_uses" has unsupported operation: llvm.call + +4: "freeToInvertSub_uses" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvertSub_uses" has unsupported operation: llvm.call + +1: "freeToInvert" +4: "freeToInvert" has unsupported operation: llvm.call + +4: "freeToInvert" has unsupported operation: llvm.call + +4: "freeToInvert" has unsupported operation: llvm.call + +4: "freeToInvert" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "freeToInvert" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "freeToInvert_use1" +4: "freeToInvert_use1" has unsupported operation: llvm.call + +4: "freeToInvert_use1" has unsupported operation: llvm.call + +4: "freeToInvert_use1" has unsupported operation: llvm.call + +4: "freeToInvert_use1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_use1" has unsupported operation: llvm.call + +4: "freeToInvert_use1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "freeToInvert_use2" +4: "freeToInvert_use2" has unsupported operation: llvm.call + +4: "freeToInvert_use2" has unsupported operation: llvm.call + +4: "freeToInvert_use2" has unsupported operation: llvm.call + +4: "freeToInvert_use2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_use2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "freeToInvert_use2" has unsupported operation: llvm.call + +1: "freeToInvert_use3" +4: "freeToInvert_use3" has unsupported operation: llvm.call + +4: "freeToInvert_use3" has unsupported operation: llvm.call + +4: "freeToInvert_use3" has unsupported operation: llvm.call + +4: "freeToInvert_use3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_use3" has unsupported operation: llvm.call + +4: "freeToInvert_use3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "freeToInvert_use3" has unsupported operation: llvm.call + +1: "freeToInvert_two_minmax_ops" +4: "freeToInvert_two_minmax_ops" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "freeToInvert_two_minmax_ops" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "freeToInvert_two_minmax_ops" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "freeToInvert_two_minmax_ops_use1" +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "freeToInvert_two_minmax_ops_use1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "freeToInvert_two_minmax_ops_use2" +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "freeToInvert_two_minmax_ops_use3" +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: llvm.call + +4: "freeToInvert_two_minmax_ops_use3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "sub_not_min_max" +4: "sub_not_min_max" has unsupported operation: llvm.call + +4: "sub_not_min_max" has unsupported operation: llvm.call + +4: "sub_not_min_max" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sub_not_min_max" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_not_min_max_uses1" +4: "sub_not_min_max_uses1" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses1" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses1" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sub_not_min_max_uses1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_not_min_max_uses2" +4: "sub_not_min_max_uses2" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses2" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses2" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sub_not_min_max_uses2" has unsupported operation: llvm.call + +4: "sub_not_min_max_uses2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "use4" +5: "use4" is empty + +1: "cmyk" +4: "cmyk" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk" has unsupported operation: llvm.call + +4: "cmyk" has unsupported operation: llvm.return + +1: "cmyk_commute1" +4: "cmyk_commute1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute1" has unsupported operation: llvm.call + +4: "cmyk_commute1" has unsupported operation: llvm.return + +1: "cmyk_commute2" +4: "cmyk_commute2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute2" has unsupported operation: llvm.call + +4: "cmyk_commute2" has unsupported operation: llvm.return + +1: "cmyk_commute3" +4: "cmyk_commute3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute3" has unsupported operation: llvm.call + +4: "cmyk_commute3" has unsupported operation: llvm.return + +1: "cmyk_commute4" +4: "cmyk_commute4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute4" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "cmyk_commute4" has unsupported operation: llvm.call + +4: "cmyk_commute4" has unsupported operation: llvm.return + +1: "cmyk_commute5" +4: "cmyk_commute5" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "cmyk_commute5" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute5" has unsupported operation: llvm.call + +4: "cmyk_commute5" has unsupported operation: llvm.return + +1: "cmyk_commute6" +4: "cmyk_commute6" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute6" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute6" has unsupported operation: llvm.call + +4: "cmyk_commute6" has unsupported operation: llvm.return + +1: "cmyk_commute7" +4: "cmyk_commute7" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute7" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute7" has unsupported operation: llvm.call + +4: "cmyk_commute7" has unsupported operation: llvm.return + +1: "cmyk_commute8" +4: "cmyk_commute8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute8" has unsupported operation: llvm.call + +4: "cmyk_commute8" has unsupported operation: llvm.return + +1: "cmyk_commute9" +4: "cmyk_commute9" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute9" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute9" has unsupported operation: llvm.call + +4: "cmyk_commute9" has unsupported operation: llvm.return + +1: "cmyk_commute10" +4: "cmyk_commute10" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute10" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "cmyk_commute10" has unsupported operation: llvm.call + +4: "cmyk_commute10" has unsupported operation: llvm.return + +1: "cmyk_commute11" +4: "cmyk_commute11" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "cmyk_commute11" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "cmyk_commute11" has unsupported operation: llvm.call + +4: "cmyk_commute11" has unsupported operation: llvm.return + +1: "smax_offset" +4: "smax_offset" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_offset_limit" +4: "smax_offset_limit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "smax_offset_overflow" +4: "smax_offset_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "smax_offset_may_wrap" +4: "smax_offset_may_wrap" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_offset_uses" +4: "smax_offset_uses" has unsupported operation: llvm.call + +4: "smax_offset_uses" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_offset" +4: "smin_offset" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_offset_limit" +4: "smin_offset_limit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "smin_offset_overflow" +4: "smin_offset_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "smin_offset_may_wrap" +4: "smin_offset_may_wrap" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_offset_uses" +4: "smin_offset_uses" has unsupported operation: llvm.call + +4: "smin_offset_uses" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_offset" +4: "umax_offset" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_offset_limit" +4: "umax_offset_limit" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "umax_offset_overflow" +4: "umax_offset_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +1: "umax_offset_may_wrap" +4: "umax_offset_may_wrap" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_offset_uses" +4: "umax_offset_uses" has unsupported operation: llvm.call + +4: "umax_offset_uses" has unsupported operation: builtin.unregistered: llvm.intr.umax + +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 + +1: "umin_offset_overflow" +4: "umin_offset_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_offset_may_wrap" +4: "umin_offset_may_wrap" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_offset_uses" +4: "umin_offset_uses" has unsupported operation: llvm.call + +4: "umin_offset_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umax_vector_splat_poison" +4: "umax_vector_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umax_vector_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "umax_vector_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_vector_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_vector_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_vector_splat_poison" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smax_offset_simplify" +4: "smax_offset_simplify" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +1: "smax_smax_reassoc_constants" +4: "smax_smax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_smin_reassoc_constants" +4: "smin_smin_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_umax_reassoc_constants" +4: "umax_umax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umax_umax_reassoc_constants" has unsupported operation: llvm.mlir.undef + +4: "umax_umax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_umax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_umax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umax_umax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_umin_reassoc_constants" +4: "umin_umin_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_umin_reassoc_constants" has unsupported operation: llvm.call + +4: "umin_umin_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smin_smax_reassoc_constants" +4: "smin_smax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_smax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_smax_reassoc_constant" +4: "smax_smax_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_smax_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_smin_reassoc_constant" +4: "smin_smin_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_smin_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_umax_reassoc_constant" +4: "umax_umax_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_umax_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_umin_reassoc_constant" +4: "umin_umin_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_umin_reassoc_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_umin_reassoc_constant_use" +4: "umin_umin_reassoc_constant_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_umin_reassoc_constant_use" has unsupported operation: llvm.call + +4: "umin_umin_reassoc_constant_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_smax_reassoc_constant_sink" +4: "smax_smax_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_smax_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_smin_reassoc_constant_sink" +4: "smin_smin_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_smin_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_umax_reassoc_constant_sink" +4: "umax_umax_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_umax_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_umin_reassoc_constant_sink" +4: "umin_umin_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_umin_reassoc_constant_sink" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_umin_reassoc_constant_sink_use" +4: "umin_umin_reassoc_constant_sink_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_umin_reassoc_constant_sink_use" has unsupported operation: llvm.call + +4: "umin_umin_reassoc_constant_sink_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "smax_smax_smax_reassoc_constants" +4: "smax_smax_smax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_smax_smax_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_smax_smax_reassoc_constants_swap" +4: "smax_smax_smax_reassoc_constants_swap" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_smax_smax_reassoc_constants_swap" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_smin_smin_reassoc_constants" +4: "smin_smin_smin_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_smin_smin_reassoc_constants" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_umax_reassoc_constantexpr_sink" +4: "umax_umax_reassoc_constantexpr_sink" has unsupported operation: llvm.mlir.addressof + +4: "umax_umax_reassoc_constantexpr_sink" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "umax_umax_reassoc_constantexpr_sink" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_umax_reassoc_constantexpr_sink" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "smax_unary_shuffle_ops" +4: "smax_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smax_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smax_unary_shuffle_ops" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "smin_unary_shuffle_ops_use_poison_mask_elt" +4: "smin_unary_shuffle_ops_use_poison_mask_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smin_unary_shuffle_ops_use_poison_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smin_unary_shuffle_ops_use_poison_mask_elt" has unsupported operation: llvm.call + +4: "smin_unary_shuffle_ops_use_poison_mask_elt" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_unary_shuffle_ops_use_poison_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "umax_unary_shuffle_ops_use_widening" +4: "umax_unary_shuffle_ops_use_widening" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umax_unary_shuffle_ops_use_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "umax_unary_shuffle_ops_use_widening" has unsupported operation: llvm.call + +4: "umax_unary_shuffle_ops_use_widening" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_unary_shuffle_ops_use_widening" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "umin_unary_shuffle_ops_narrowing" +4: "umin_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umin_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_unary_shuffle_ops_narrowing" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "smax_unary_shuffle_ops_unshuffled_op" +4: "smax_unary_shuffle_ops_unshuffled_op" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smax_unary_shuffle_ops_unshuffled_op" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smax_unary_shuffle_ops_unshuffled_op" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_unary_shuffle_ops_wrong_mask" +4: "smax_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smax_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smax_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smax_unary_shuffle_ops_wrong_mask" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_unary_shuffle_ops_wrong_shuf" +4: "smax_unary_shuffle_ops_wrong_shuf" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smax_unary_shuffle_ops_wrong_shuf" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smax_unary_shuffle_ops_wrong_shuf" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_unary_shuffle_ops_uses" +4: "smin_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "smin_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smin_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "smin_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "smin_unary_shuffle_ops_uses" has unsupported operation: llvm.call + +4: "smin_unary_shuffle_ops_uses" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "PR57986" +4: "PR57986" has unsupported operation: llvm.mlir.addressof + +4: "PR57986" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "fold_umax_with_knownbits_info" +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 + +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 + +1: "fold_umax_with_knownbits_info_fail" +4: "fold_umax_with_knownbits_info_fail" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "fold_umin_with_knownbits_info_fail" +4: "fold_umin_with_knownbits_info_fail" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_umax_and" +4: "test_umax_and" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_umin_and" +4: "test_umin_and" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_smax_and" +4: "test_smax_and" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test_smin_and" +4: "test_smin_and" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_smin_and_mismatch" +4: "test_smin_and_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_smin_and_non_negated_pow2" +4: "test_smin_and_non_negated_pow2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_smin_and_multiuse" +4: "test_smin_and_multiuse" has unsupported operation: llvm.call + +4: "test_smin_and_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.smin + diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-of-minmax.txt b/SSA/Projects/InstCombine/tests/logs/minmax-of-minmax.txt new file mode 100644 index 000000000..0673e53f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-of-minmax.txt @@ -0,0 +1,60 @@ +1: "smax_of_smax_smin_commute0" +4: "smax_of_smax_smin_commute0" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_of_smax_smin_commute1" +4: "smax_of_smax_smin_commute1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_of_smax_smin_commute2" +4: "smax_of_smax_smin_commute2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax_of_smax_smin_commute3" +4: "smax_of_smax_smin_commute3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_of_smin_smax_commute0" +4: "smin_of_smin_smax_commute0" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_smin_smax_commute1" +4: "smin_of_smin_smax_commute1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_smin_smax_commute2" +4: "smin_of_smin_smax_commute2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_smin_smax_commute3" +4: "smin_of_smin_smax_commute3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umax_of_umax_umin_commute0" +4: "umax_of_umax_umin_commute0" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_of_umax_umin_commute1" +4: "umax_of_umax_umin_commute1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_of_umax_umin_commute2" +4: "umax_of_umax_umin_commute2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax_of_umax_umin_commute3" +4: "umax_of_umax_umin_commute3" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umin_of_umin_umax_commute0" +4: "umin_of_umin_umax_commute0" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_umin_umax_commute1" +4: "umin_of_umin_umax_commute1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_umin_umax_commute2" +4: "umin_of_umin_umax_commute2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_umin_umax_commute3" +4: "umin_of_umin_umax_commute3" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_smin_umax_wrong_pattern" +4: "umin_of_smin_umax_wrong_pattern" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smin_of_umin_umax_wrong_pattern2" +4: "smin_of_umin_umax_wrong_pattern2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umin_of_umin_umax_wrong_operand" +4: "umin_of_umin_umax_wrong_operand" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_of_umin_umax_wrong_operand2" +4: "umin_of_umin_umax_wrong_operand2" has unsupported operation: builtin.unregistered: llvm.intr.umin + diff --git a/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt b/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt new file mode 100644 index 000000000..5d4dd0613 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minmax-of-xor-x.txt @@ -0,0 +1,47 @@ +1: "barrier" +5: "barrier" is empty + +1: "umax_xor_Cpow2" +"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 + +1: "smax_xor_Cpow2_pos" +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 + +1: "smax_xor_Cpow2_neg" +"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 + +1: "umax_xor_pow2" +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 + +1: "smax_xor_pow2_unk" +4: "smax_xor_pow2_unk" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin_xor_pow2_unk" +4: "smin_xor_pow2_unk" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smax_xor_pow2_neg" +4: "smax_xor_pow2_neg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "smax_xor_pow2_neg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "smax_xor_pow2_neg" has unsupported operation: llvm.call + +1: "smin_xor_pow2_pos" +4: "smin_xor_pow2_pos" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "smin_xor_pow2_pos" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "smin_xor_pow2_pos" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/minnum.txt b/SSA/Projects/InstCombine/tests/logs/minnum.txt new file mode 100644 index 000000000..99a584cea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/minnum.txt @@ -0,0 +1,218 @@ +1: "constant_fold_minnum_f32" +4: "constant_fold_minnum_f32" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_inv" +4: "constant_fold_minnum_f32_inv" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_nan0" +4: "constant_fold_minnum_f32_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_nan1" +4: "constant_fold_minnum_f32_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_nan_nan" +4: "constant_fold_minnum_f32_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_p0_p0" +4: "constant_fold_minnum_f32_p0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_p0_n0" +4: "constant_fold_minnum_f32_p0_n0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_n0_p0" +4: "constant_fold_minnum_f32_n0_p0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f32_n0_n0" +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 + +1: "constant_fold_minnum_f64" +4: "constant_fold_minnum_f64" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f64_nan0" +4: "constant_fold_minnum_f64_nan0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f64_nan1" +4: "constant_fold_minnum_f64_nan1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "constant_fold_minnum_f64_nan_nan" +4: "constant_fold_minnum_f64_nan_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "canonicalize_constant_minnum_f32" +4: "canonicalize_constant_minnum_f32" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_nan_val" +4: "minnum_f32_nan_val" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_val_nan" +4: "minnum_f32_val_nan" has unsupported operation after optimization: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_val_p0" +4: "minnum_f32_1_minnum_val_p0" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_p0_val_fast" +4: "minnum_f32_1_minnum_p0_val_fast" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_p0_val_fmf1" +4: "minnum_f32_1_minnum_p0_val_fmf1" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_p0_val_fmf2" +4: "minnum_f32_1_minnum_p0_val_fmf2" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_p0_val_fmf3" +4: "minnum_f32_1_minnum_p0_val_fmf3" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_p0_minnum_val_n0" +4: "minnum_f32_p0_minnum_val_n0" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_p0_val" +4: "minnum_f32_1_minnum_p0_val" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_f32_1_minnum_val_p0_val_v2f32" +4: "minnum_f32_1_minnum_val_p0_val_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum4" +4: "minnum4" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "minnum4" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "minnum4" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "minnum_x_maxnum_x_y" +4: "minnum_x_maxnum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "minnum_x_maxnum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "maxnum_x_minnum_x_y" +4: "maxnum_x_minnum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "maxnum_x_minnum_x_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +1: "neg_neg" +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg" +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "unary_neg_neg" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "neg_neg_vec_fmf" +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "unary_neg_neg_vec_fmf" +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "unary_neg_neg_vec_fmf" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "use" +5: "use" is empty + +1: "neg_neg_extra_use_x" +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x" +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "unary_neg_neg_extra_use_x" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_y" +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_y" +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.intr.maxnum + +4: "unary_neg_neg_extra_use_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_y" has unsupported operation: llvm.call + +1: "neg_neg_extra_use_x_and_y" +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "unary_neg_neg_extra_use_x_and_y" +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +4: "unary_neg_neg_extra_use_x_and_y" has unsupported operation: llvm.call + +1: "reduce_precision" +4: "reduce_precision" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "reduce_precision_fmf" +4: "reduce_precision_fmf" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +1: "reduce_precision_multi_use_0" +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_0" has unsupported operation: llvm.store + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "reduce_precision_multi_use_0" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "reduce_precision_multi_use_1" +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "reduce_precision_multi_use_1" has unsupported operation: llvm.store + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.intr.minnum + +4: "reduce_precision_multi_use_1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "negated_op" +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negated_op" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negated_op_fmf_commute_vec" +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "negated_op_fmf_commute_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +1: "negated_op_extra_use" +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "negated_op_extra_use" has unsupported operation: llvm.call + +4: "negated_op_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.minnum + diff --git a/SSA/Projects/InstCombine/tests/logs/misc-2002.txt b/SSA/Projects/InstCombine/tests/logs/misc-2002.txt new file mode 100644 index 000000000..738f770ea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/misc-2002.txt @@ -0,0 +1,22 @@ +1: "hang_2002-03-11" +4: "hang_2002-03-11" has unsupported operation: llvm.return + +1: "sub_failure_2002-05-14" +7: "sub_failure_2002-05-14" is unchanged by InstCombine + +1: "cast_test_2002-08-02" +4: "cast_test_2002-08-02" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "cast_test_2002-08-02" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "missed_const_prop_2002-12-05" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.add +2: llvm.add +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/modulo.txt b/SSA/Projects/InstCombine/tests/logs/modulo.txt new file mode 100644 index 000000000..27ec1656f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/modulo.txt @@ -0,0 +1,49 @@ +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 + +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 + +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 + +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-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/mul-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/mul-masked-bits.txt b/SSA/Projects/InstCombine/tests/logs/mul-masked-bits.txt new file mode 100644 index 000000000..473570c09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul-masked-bits.txt @@ -0,0 +1,2 @@ +3: mul-masked-bits.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/mul-min-max.txt b/SSA/Projects/InstCombine/tests/logs/mul-min-max.txt new file mode 100644 index 000000000..0d4df9188 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul-min-max.txt @@ -0,0 +1,30 @@ +1: "umul_min_max" +4: "umul_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "umul_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umul_min_max_comm" +4: "umul_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "umul_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umul_min_max_nuw_nsw" +4: "umul_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umax + +4: "umul_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "smul_min_max" +4: "smul_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "smul_min_max" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "smul_min_max_comm" +4: "smul_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "smul_min_max_comm" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + +1: "smul_min_max_nuw_nsw" +4: "smul_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "smul_min_max_nuw_nsw" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smin + diff --git a/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt b/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt new file mode 100644 index 000000000..47ba843a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul-pow2.txt @@ -0,0 +1,50 @@ +1: "use_i8" +5: "use_i8" is empty + +1: "mul_selectp2_x" +4: "mul_selectp2_x" has unsupported operation: builtin.unregistered: llvm.select + +1: "mul_selectp2_x_propegate_nuw" +4: "mul_selectp2_x_propegate_nuw" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "mul_select_nonp2_x_fail" +4: "mul_select_nonp2_x_fail" has unsupported operation: builtin.unregistered: llvm.select + +1: "mul_x_selectp2_vec" +4: "mul_x_selectp2_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "shl_add_log_may_cause_poison_pr62175_fail" +7: "shl_add_log_may_cause_poison_pr62175_fail" is unchanged by InstCombine + +1: "shl_add_log_may_cause_poison_pr62175_with_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.mul +2: llvm.return + +1: "shl_add_log_may_cause_poison_pr62175_with_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.mul +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/mul.txt b/SSA/Projects/InstCombine/tests/logs/mul.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/mul_fold.txt b/SSA/Projects/InstCombine/tests/logs/mul_fold.txt new file mode 100644 index 000000000..46f9126c1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul_fold.txt @@ -0,0 +1,294 @@ +1: "use8" +5: "use8" is empty + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "use128" +5: "use128" is empty + +1: "use130" +5: "use130" is empty + +1: "use_v2i8" +5: "use_v2i8" is empty + +1: "mul8_low_A0_B0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul8_low_A0_B1" +4: "mul8_low_A0_B1" has unsupported operation: llvm.call + +1: "mul8_low_A0_B2" +4: "mul8_low_A0_B2" has unsupported operation: llvm.call + +1: "mul8_low_A0_B3" +4: "mul8_low_A0_B3" has unsupported operation: llvm.call + +4: "mul8_low_A0_B3" has unsupported operation: llvm.call + +1: "mul16_low_A1_B0" +4: "mul16_low_A1_B0" has unsupported operation: llvm.mlir.addressof + +4: "mul16_low_A1_B0" has unsupported operation: llvm.call + +4: "mul16_low_A1_B0" has unsupported operation: llvm.call + +1: "mul16_low_A1_B1" +4: "mul16_low_A1_B1" has unsupported operation: llvm.mlir.addressof + +4: "mul16_low_A1_B1" has unsupported operation: llvm.call + +4: "mul16_low_A1_B1" has unsupported operation: llvm.call + +1: "mul16_low_A1_B2" +4: "mul16_low_A1_B2" has unsupported operation: llvm.mlir.addressof + +4: "mul16_low_A1_B2" has unsupported operation: llvm.call + +4: "mul16_low_A1_B2" has unsupported operation: llvm.call + +1: "mul16_low_A1_B3" +4: "mul16_low_A1_B3" has unsupported operation: llvm.mlir.addressof + +4: "mul16_low_A1_B3" has unsupported operation: llvm.call + +4: "mul16_low_A1_B3" has unsupported operation: llvm.call + +1: "mul32_low_A2_B0" +4: "mul32_low_A2_B0" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_A2_B0" has unsupported operation: llvm.call + +1: "mul32_low_A2_B1" +4: "mul32_low_A2_B1" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_A2_B1" has unsupported operation: llvm.call + +1: "mul32_low_A2_B2" +4: "mul32_low_A2_B2" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_A2_B2" has unsupported operation: llvm.call + +4: "mul32_low_A2_B2" has unsupported operation: llvm.call + +1: "mul32_low_A2_B3" +4: "mul32_low_A2_B3" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_A2_B3" has unsupported operation: llvm.call + +4: "mul32_low_A2_B3" has unsupported operation: llvm.call + +1: "mul64_low_A3_B0" +4: "mul64_low_A3_B0" has unsupported operation: llvm.mlir.addressof + +4: "mul64_low_A3_B0" has unsupported operation: llvm.call + +1: "mul64_low_A3_B1" +4: "mul64_low_A3_B1" has unsupported operation: llvm.mlir.addressof + +4: "mul64_low_A3_B1" has unsupported operation: llvm.call + +1: "mul64_low_A3_B2" +4: "mul64_low_A3_B2" has unsupported operation: llvm.mlir.addressof + +4: "mul64_low_A3_B2" has unsupported operation: llvm.call + +4: "mul64_low_A3_B2" has unsupported operation: llvm.call + +1: "mul64_low_A3_B3" +4: "mul64_low_A3_B3" has unsupported operation: llvm.mlir.addressof + +4: "mul64_low_A3_B3" has unsupported operation: llvm.call + +4: "mul64_low_A3_B3" has unsupported operation: llvm.call + +1: "mul32_low_one_extra_user" +4: "mul32_low_one_extra_user" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_one_extra_user" has unsupported operation: llvm.call + +1: "mul8_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul16_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul32_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul64_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul128_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul_v2i8_low" +"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 + +4: "mul_v2i8_low_one_extra_user" has unsupported operation: llvm.call + +1: "mul130_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul130_low_one_extra_user" +4: "mul130_low_one_extra_user" has unsupported operation: llvm.mlir.addressof + +4: "mul130_low_one_extra_user" has unsupported operation: llvm.call + +1: "mul9_low" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul64_low_no_and" +7: "mul64_low_no_and" is unchanged by InstCombine + +1: "mul16_low_miss_shift_amount" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul8_low_miss_half_width" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "mul32_low_extra_shl_use" +4: "mul32_low_extra_shl_use" has unsupported operation: llvm.mlir.addressof + +4: "mul32_low_extra_shl_use" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/mul_full_32.txt b/SSA/Projects/InstCombine/tests/logs/mul_full_32.txt new file mode 100644 index 000000000..936e547f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul_full_32.txt @@ -0,0 +1,2 @@ +3: mul_full_32.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/mul_full_64.txt b/SSA/Projects/InstCombine/tests/logs/mul_full_64.txt new file mode 100644 index 000000000..4262b14d0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/mul_full_64.txt @@ -0,0 +1,2 @@ +3: mul_full_64.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/multi-size-address-space-pointer.txt b/SSA/Projects/InstCombine/tests/logs/multi-size-address-space-pointer.txt new file mode 100644 index 000000000..9e5bf9709 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/multi-size-address-space-pointer.txt @@ -0,0 +1,2 @@ +3: multi-size-address-space-pointer.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/multi-use-load-casts.txt b/SSA/Projects/InstCombine/tests/logs/multi-use-load-casts.txt new file mode 100644 index 000000000..98856c7ba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/multi-use-load-casts.txt @@ -0,0 +1,88 @@ +1: "t0" +4: "t0" has unsupported operation: llvm.load + +4: "t0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "t0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "t0" has unsupported operation: llvm.inttoptr + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.br + +4: "t0" has unsupported operation: llvm.inttoptr + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.br + +4: "t0" has unsupported operation: llvm.return + +1: "n1" +4: "n1" has unsupported operation: llvm.load + +4: "n1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "n1" has unsupported operation: llvm.inttoptr + +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.br + +4: "n1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "n1" has unsupported operation: llvm.call + +4: "n1" has unsupported operation: builtin.unregistered: llvm.br + +4: "n1" has unsupported operation: llvm.return + +1: "n2" +4: "n2" has unsupported operation: llvm.load + +4: "n2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "n2" has unsupported operation: llvm.inttoptr + +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.br + +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.br + +4: "n2" has unsupported operation: llvm.return + +1: "abort" +5: "abort" is empty + +1: "sink0" +5: "sink0" is empty + +1: "sink1" +5: "sink1" is empty + +1: "sink2" +5: "sink2" is empty + +1: "sink3" +5: "sink3" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/multi-use-or.txt b/SSA/Projects/InstCombine/tests/logs/multi-use-or.txt new file mode 100644 index 000000000..32c6ef597 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/multi-use-or.txt @@ -0,0 +1,3 @@ +1: "ScaleObjectAdd" +4: "ScaleObjectAdd" has unsupported operation: builtin.unregistered: llvm.fadd + 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 new file mode 100644 index 000000000..0240e176e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/multiple-uses-load-bitcast-select.txt @@ -0,0 +1,38 @@ +1: "PR35618" +4: "PR35618" has unsupported operation: llvm.alloca + +4: "PR35618" has unsupported operation: llvm.alloca + +4: "PR35618" has unsupported operation: llvm.load + +4: "PR35618" has unsupported operation: llvm.load + +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 + +4: "PR35618" has unsupported operation: llvm.return + +1: "PR35618_asan" +4: "PR35618_asan" has unsupported operation: llvm.alloca + +4: "PR35618_asan" has unsupported operation: llvm.alloca + +4: "PR35618_asan" has unsupported operation: llvm.load + +4: "PR35618_asan" has unsupported operation: llvm.load + +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 + +4: "PR35618_asan" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/musttail-thunk.txt b/SSA/Projects/InstCombine/tests/logs/musttail-thunk.txt new file mode 100644 index 000000000..9d3c927cd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/musttail-thunk.txt @@ -0,0 +1,15 @@ +1: "call_thunk" +4: "call_thunk" has unsupported operation: llvm.mlir.addressof + +4: "call_thunk" has unsupported operation: llvm.call + +1: "inc_first_arg_thunk" +4: "inc_first_arg_thunk" has unsupported operation: llvm.mlir.addressof + +4: "inc_first_arg_thunk" has unsupported operation: llvm.call + +4: "inc_first_arg_thunk" has unsupported operation: llvm.return + +1: "plus" +7: "plus" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/nan.txt b/SSA/Projects/InstCombine/tests/logs/nan.txt new file mode 100644 index 000000000..137c9450a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nan.txt @@ -0,0 +1,44 @@ +1: "nan_empty" +4: "nan_empty" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nan_empty" has unsupported operation after optimization: llvm.call + +1: "nan_dec" +4: "nan_dec" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nan_dec" has unsupported operation after optimization: llvm.call + +1: "nan_hex" +4: "nan_hex" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nan_hex" has unsupported operation after optimization: llvm.call + +1: "nanf_empty" +4: "nanf_empty" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanf_empty" has unsupported operation after optimization: llvm.call + +1: "nan_poison" +4: "nan_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nan_poison" has unsupported operation: llvm.call + +1: "nan_undef" +4: "nan_undef" has unsupported operation: llvm.mlir.undef + +4: "nan_undef" has unsupported operation: llvm.call + +1: "nan_null" +4: "nan_null" has unsupported operation: llvm.mlir.zero + +4: "nan_null" has unsupported operation: llvm.call + +1: "nan_non_constant" +4: "nan_non_constant" has unsupported operation: llvm.call + +1: "nanf" +5: "nanf" is empty + +1: "nan" +5: "nan" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/nanl-fp128.txt b/SSA/Projects/InstCombine/tests/logs/nanl-fp128.txt new file mode 100644 index 000000000..77dad38c9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nanl-fp128.txt @@ -0,0 +1,18 @@ +1: "nanl_empty" +4: "nanl_empty" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_empty" has unsupported operation after optimization: llvm.call + +1: "nanl_dec" +4: "nanl_dec" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_dec" has unsupported operation after optimization: llvm.call + +1: "nanl_hex" +4: "nanl_hex" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_hex" has unsupported operation after optimization: llvm.call + +1: "nanl" +5: "nanl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/nanl-fp80.txt b/SSA/Projects/InstCombine/tests/logs/nanl-fp80.txt new file mode 100644 index 000000000..77dad38c9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nanl-fp80.txt @@ -0,0 +1,18 @@ +1: "nanl_empty" +4: "nanl_empty" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_empty" has unsupported operation after optimization: llvm.call + +1: "nanl_dec" +4: "nanl_dec" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_dec" has unsupported operation after optimization: llvm.call + +1: "nanl_hex" +4: "nanl_hex" has unsupported operation after optimization: llvm.mlir.addressof + +4: "nanl_hex" has unsupported operation after optimization: llvm.call + +1: "nanl" +5: "nanl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/nanl-ppc-fp128.txt b/SSA/Projects/InstCombine/tests/logs/nanl-ppc-fp128.txt new file mode 100644 index 000000000..cc0fa144e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nanl-ppc-fp128.txt @@ -0,0 +1,2 @@ +3: nanl-ppc-fp128.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/narrow-math.txt b/SSA/Projects/InstCombine/tests/logs/narrow-math.txt new file mode 100644 index 000000000..25f85d5bf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/narrow-math.txt @@ -0,0 +1,194 @@ +1: "callee" +5: "callee" is empty + +1: "use" +5: "use" is empty + +1: "sext_sext_add" +4: "sext_sext_add" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_zext_add_mismatched_exts" +4: "sext_zext_add_mismatched_exts" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_zext_add_mismatched_exts" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_sext_add_mismatched_types" +4: "sext_sext_add_mismatched_types" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_add_mismatched_types" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_sext_add_extra_use1" +4: "sext_sext_add_extra_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_add_extra_use1" has unsupported operation: llvm.call + +4: "sext_sext_add_extra_use1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_sext_add_extra_use2" +4: "sext_sext_add_extra_use2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_add_extra_use2" has unsupported operation: llvm.call + +4: "sext_sext_add_extra_use2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_sext_add_extra_use3" +4: "sext_sext_add_extra_use3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_add_extra_use3" has unsupported operation: llvm.call + +4: "sext_sext_add_extra_use3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_sext_add_extra_use3" has unsupported operation: llvm.call + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test4" +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_add_constant_extra_use" +4: "sext_add_constant_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_add_constant_extra_use" has unsupported operation: llvm.call + +1: "test5_splat" +4: "test5_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test5_vec" +4: "test5_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test6_splat" +4: "test6_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test6_vec" +4: "test6_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test6_vec2" +4: "test6_vec2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test7_splat" +4: "test7_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test7_vec" +4: "test7_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test8_splat" +4: "test8_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test8_vec" +4: "test8_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test8_vec2" +4: "test8_vec2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test9_splat" +4: "test9_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test9_vec" +4: "test9_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test10_splat" +4: "test10_splat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test10_vec" +4: "test10_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11" +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test12" +4: "test12" has unsupported operation: llvm.call + +4: "test12" has unsupported operation: llvm.call + +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13" +4: "test13" has unsupported operation: llvm.call + +4: "test13" has unsupported operation: llvm.call + +4: "test13" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test14" +4: "test14" has unsupported operation: llvm.call + +4: "test14" has unsupported operation: llvm.call + +4: "test14" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test15vec" +4: "test15vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test16vec" +4: "test16vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test17" +4: "test17" has unsupported operation: llvm.call + +4: "test17" has unsupported operation: llvm.call + +4: "test17" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test17" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test18" +4: "test18" has unsupported operation: llvm.call + +4: "test18" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test19" +4: "test19" has unsupported operation: llvm.call + +4: "test19" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/narrow-switch.txt b/SSA/Projects/InstCombine/tests/logs/narrow-switch.txt new file mode 100644 index 000000000..d8a3afbbc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/narrow-switch.txt @@ -0,0 +1,2 @@ +3: narrow-switch.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/narrow.txt b/SSA/Projects/InstCombine/tests/logs/narrow.txt new file mode 100644 index 000000000..a9b80fd57 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/narrow.txt @@ -0,0 +1,79 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "shrink_xor" +4: "shrink_xor" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shrink_xor_vec" +4: "shrink_xor_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shrink_or" +4: "shrink_or" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shrink_or_vec" +4: "shrink_or_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shrink_and" +4: "shrink_and" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shrink_and_vec" +4: "shrink_and_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "searchArray1" +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.br + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "searchArray1" has unsupported operation: llvm.getelementptr + +4: "searchArray1" has unsupported operation: llvm.load + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "searchArray1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "searchArray2" +4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.br + +4: "searchArray2" has unsupported operation: llvm.getelementptr + +4: "searchArray2" has unsupported operation: llvm.load + +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 + +4: "searchArray2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "shrinkLogicAndPhi1" +4: "shrinkLogicAndPhi1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "shrinkLogicAndPhi1" has unsupported operation: builtin.unregistered: llvm.br + +4: "shrinkLogicAndPhi1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "shrinkLogicAndPhi2" +4: "shrinkLogicAndPhi2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "shrinkLogicAndPhi2" has unsupported operation: builtin.unregistered: llvm.br + +4: "shrinkLogicAndPhi2" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/neg-alloca.txt b/SSA/Projects/InstCombine/tests/logs/neg-alloca.txt new file mode 100644 index 000000000..a9fa27bbc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/neg-alloca.txt @@ -0,0 +1,10 @@ +1: "use" +5: "use" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt b/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt new file mode 100644 index 000000000..d93416376 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/negated-bitmask.txt @@ -0,0 +1,113 @@ +1: "neg_mask1_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_mask1_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "neg_mask1_lshr_vector_uniform" +"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 + +1: "sub_mask1_lshr_vector_nonuniform" +"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 + +1: "sub_sext_mask1_trunc_lshr" +4: "sub_sext_mask1_trunc_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sub_sext_mask1_trunc_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sub_zext_trunc_lshr" +4: "sub_zext_trunc_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "neg_mask2_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "neg_mask2_lshr_outofbounds" +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 + +1: "neg_mask1_lshr_extrause_mask" +4: "neg_mask1_lshr_extrause_mask" has unsupported operation: llvm.call + +1: "neg_mask1_lshr_extrause_lshr" +4: "neg_mask1_lshr_extrause_lshr" has unsupported operation: llvm.call + +1: "neg_signbit" +4: "neg_signbit" has unsupported operation: builtin.unregistered: llvm.sext + +1: "neg_signbit_use1" +4: "neg_signbit_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "neg_signbit_use1" has unsupported operation: llvm.mlir.undef + +4: "neg_signbit_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "neg_signbit_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "neg_signbit_use1" has unsupported operation: llvm.call + +4: "neg_signbit_use1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "neg_signbit_use2" +4: "neg_signbit_use2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "neg_signbit_use2" has unsupported operation: llvm.call + +1: "neg_not_signbit1" +4: "neg_not_signbit1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_not_signbit1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_not_signbit2" +4: "neg_not_signbit2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_not_signbit3" +4: "neg_not_signbit3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_mask" +4: "neg_mask" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +1: "usev2i32" +5: "usev2i32" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/nested-select.txt b/SSA/Projects/InstCombine/tests/logs/nested-select.txt new file mode 100644 index 000000000..5c227164a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nested-select.txt @@ -0,0 +1,278 @@ +1: "use.i1" +5: "use.i1" is empty + +1: "use.i8" +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 + +1: "orcond" +4: "orcond" has unsupported operation: builtin.unregistered: llvm.select + +4: "orcond" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +1: "D139275_c4001580" +4: "D139275_c4001580" has unsupported operation: builtin.unregistered: llvm.select + +4: "D139275_c4001580" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/new-delete-itanium-32.txt b/SSA/Projects/InstCombine/tests/logs/new-delete-itanium-32.txt new file mode 100644 index 000000000..c031ee5ef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/new-delete-itanium-32.txt @@ -0,0 +1,45 @@ +1: "_Znwj" +5: "_Znwj" is empty + +1: "_Znaj" +5: "_Znaj" is empty + +1: "_ZnwjSt11align_val_t" +5: "_ZnwjSt11align_val_t" is empty + +1: "_ZnajSt11align_val_t" +5: "_ZnajSt11align_val_t" is empty + +1: "_ZnwjSt11align_val_tRKSt9nothrow_t" +5: "_ZnwjSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZnajSt11align_val_tRKSt9nothrow_t" +5: "_ZnajSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZdlPvj" +5: "_ZdlPvj" is empty + +1: "_ZdaPvj" +5: "_ZdaPvj" is empty + +1: "_ZdlPvSt11align_val_t" +5: "_ZdlPvSt11align_val_t" is empty + +1: "_ZdaPvSt11align_val_t" +5: "_ZdaPvSt11align_val_t" is empty + +1: "_ZdlPvjSt11align_val_t" +5: "_ZdlPvjSt11align_val_t" is empty + +1: "_ZdaPvjSt11align_val_t" +5: "_ZdaPvjSt11align_val_t" is empty + +1: "_ZdlPvSt11align_val_tRKSt9nothrow_t" +5: "_ZdlPvSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZdaPvSt11align_val_tRKSt9nothrow_t" +5: "_ZdaPvSt11align_val_tRKSt9nothrow_t" is empty + +1: "elim_new_delete_pairs" +4: "elim_new_delete_pairs" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/new-delete-itanium.txt b/SSA/Projects/InstCombine/tests/logs/new-delete-itanium.txt new file mode 100644 index 000000000..15e5038e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/new-delete-itanium.txt @@ -0,0 +1,132 @@ +1: "test6a" +4: "test6a" has unsupported operation: llvm.mlir.zero + +4: "test6a" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6a" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6a" has unsupported operation: llvm.call + +4: "test6a" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6a" has unsupported operation: llvm.return + +1: "_ZnwmRKSt9nothrow_t" +5: "_ZnwmRKSt9nothrow_t" is empty + +1: "_ZdlPvRKSt9nothrow_t" +5: "_ZdlPvRKSt9nothrow_t" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "_ZN1AC2Ev" +5: "_ZN1AC2Ev" is empty + +1: "test7" +4: "test7" has unsupported operation: llvm.mlir.undef + +4: "test7" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test7" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test7" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "test7" has unsupported operation: builtin.unregistered: llvm.resume + +1: "_Znwm" +5: "_Znwm" is empty + +1: "_Znwj" +4: "_Znwj" has unsupported operation: builtin.unregistered: llvm.zext + +4: "_Znwj" has unsupported operation: llvm.call + +1: "_Znam" +5: "_Znam" is empty + +1: "_Znaj" +5: "_Znaj" is empty + +1: "_ZdlPv" +5: "_ZdlPv" is empty + +1: "_ZdaPv" +5: "_ZdaPv" is empty + +1: "_ZdlPvm" +4: "_ZdlPvm" has unsupported operation: llvm.call + +4: "_ZdlPvm" has unsupported operation: llvm.return + +1: "_ZdlPvj" +4: "_ZdlPvj" has unsupported operation: llvm.call + +4: "_ZdlPvj" has unsupported operation: llvm.return + +1: "_ZdaPvm" +4: "_ZdaPvm" has unsupported operation: llvm.call + +4: "_ZdaPvm" has unsupported operation: llvm.return + +1: "_ZdaPvj" +4: "_ZdaPvj" has unsupported operation: llvm.call + +4: "_ZdaPvj" has unsupported operation: llvm.return + +1: "_ZnwmSt11align_val_t" +5: "_ZnwmSt11align_val_t" is empty + +1: "_ZnamSt11align_val_t" +5: "_ZnamSt11align_val_t" is empty + +1: "_ZnwmSt11align_val_tRKSt9nothrow_t" +5: "_ZnwmSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZnamSt11align_val_tRKSt9nothrow_t" +5: "_ZnamSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZdlPvSt11align_val_t" +5: "_ZdlPvSt11align_val_t" is empty + +1: "_ZdaPvSt11align_val_t" +5: "_ZdaPvSt11align_val_t" is empty + +1: "_ZdlPvSt11align_val_tRKSt9nothrow_t" +5: "_ZdlPvSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZdaPvSt11align_val_tRKSt9nothrow_t" +5: "_ZdaPvSt11align_val_tRKSt9nothrow_t" is empty + +1: "_ZdlPvmSt11align_val_t" +5: "_ZdlPvmSt11align_val_t" is empty + +1: "_ZdaPvmSt11align_val_t" +5: "_ZdaPvmSt11align_val_t" is empty + +1: "test8" +4: "test8" has unsupported operation: llvm.return + +1: "test10" +4: "test10" has unsupported operation: llvm.mlir.zero + +4: "test10" has unsupported operation: llvm.call + +4: "test10" has unsupported operation: llvm.return + +1: "test11" +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: llvm.return + +1: "test17" +4: "test17" has unsupported operation: llvm.return + +1: "llvm.launder.invariant.group.p0" +5: "llvm.launder.invariant.group.p0" is empty + +1: "llvm.strip.invariant.group.p0" +5: "llvm.strip.invariant.group.p0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/new-delete-msvc.txt b/SSA/Projects/InstCombine/tests/logs/new-delete-msvc.txt new file mode 100644 index 000000000..48c3d872c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/new-delete-msvc.txt @@ -0,0 +1,13 @@ +1: "\01??2@YAPEAX_K@Z" +5: "\01??2@YAPEAX_K@Z" is empty + +1: "\01??3@YAXPEAX@Z" +5: "\01??3@YAXPEAX@Z" is empty + +1: "test9" +4: "test9" has unsupported operation: llvm.call + +4: "test9" has unsupported operation: llvm.call + +4: "test9" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/new-inst-dbgloc-overwrite.txt b/SSA/Projects/InstCombine/tests/logs/new-inst-dbgloc-overwrite.txt new file mode 100644 index 000000000..3c11d42a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/new-inst-dbgloc-overwrite.txt @@ -0,0 +1,19 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.getelementptr + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/no-negzero.txt b/SSA/Projects/InstCombine/tests/logs/no-negzero.txt new file mode 100644 index 000000000..a7ba341a0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/no-negzero.txt @@ -0,0 +1,21 @@ +1: "mysqrt" +4: "mysqrt" has unsupported operation: llvm.alloca + +4: "mysqrt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "mysqrt" has unsupported operation: llvm.call + +4: "mysqrt" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "mysqrt" has unsupported operation: llvm.store + +4: "mysqrt" has unsupported operation: builtin.unregistered: llvm.br + +4: "mysqrt" has unsupported operation: llvm.load + +1: "fabs" +5: "fabs" is empty + +1: "sqrt" +5: "sqrt" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/no-unwind-inline-asm.txt b/SSA/Projects/InstCombine/tests/logs/no-unwind-inline-asm.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/no_cgscc_assert.txt b/SSA/Projects/InstCombine/tests/logs/no_cgscc_assert.txt new file mode 100644 index 000000000..4910dd500 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/no_cgscc_assert.txt @@ -0,0 +1,6 @@ +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/no_sink_instruction.txt b/SSA/Projects/InstCombine/tests/logs/no_sink_instruction.txt new file mode 100644 index 000000000..9fa58b179 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/no_sink_instruction.txt @@ -0,0 +1,3 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/noalias-scope-decl.txt b/SSA/Projects/InstCombine/tests/logs/noalias-scope-decl.txt new file mode 100644 index 000000000..3e442b3e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/noalias-scope-decl.txt @@ -0,0 +1,92 @@ +1: "test01" +4: "test01" has unsupported operation: llvm.store + +4: "test01" has unsupported operation: llvm.store + +4: "test01" has unsupported operation: llvm.return + +1: "test02_keep" +4: "test02_keep" has unsupported operation: builtin.unregistered: llvm.intr.experimental.noalias.scope.decl + +4: "test02_keep" has unsupported operation: llvm.store + +4: "test02_keep" has unsupported operation: llvm.store + +4: "test02_keep" has unsupported operation: llvm.return + +1: "test03" +4: "test03" has unsupported operation: llvm.store + +4: "test03" has unsupported operation: llvm.store + +4: "test03" has unsupported operation: llvm.return + +1: "test04_keep" +4: "test04_keep" has unsupported operation: builtin.unregistered: llvm.intr.experimental.noalias.scope.decl + +4: "test04_keep" has unsupported operation: llvm.store + +4: "test04_keep" has unsupported operation: llvm.store + +4: "test04_keep" has unsupported operation: llvm.return + +1: "test05_keep" +4: "test05_keep" has unsupported operation: builtin.unregistered: llvm.intr.experimental.noalias.scope.decl + +4: "test05_keep" has unsupported operation: llvm.store + +4: "test05_keep" has unsupported operation: llvm.store + +4: "test05_keep" has unsupported operation: llvm.return + +1: "test06" +4: "test06" has unsupported operation: llvm.store + +4: "test06" has unsupported operation: llvm.store + +4: "test06" has unsupported operation: llvm.return + +1: "test07" +4: "test07" has unsupported operation: llvm.store + +4: "test07" has unsupported operation: llvm.store + +4: "test07" has unsupported operation: llvm.return + +1: "test08" +4: "test08" has unsupported operation: llvm.store + +4: "test08" has unsupported operation: llvm.store + +4: "test08" has unsupported operation: llvm.return + +1: "test11" +4: "test11" has unsupported operation: llvm.store + +4: "test11" has unsupported operation: llvm.return + +1: "test12" +4: "test12" has unsupported operation: llvm.store + +4: "test12" has unsupported operation: llvm.return + +1: "test13" +4: "test13" has unsupported operation: llvm.store + +4: "test13" has unsupported operation: llvm.return + +1: "test14" +4: "test14" has unsupported operation: llvm.store + +4: "test14" has unsupported operation: llvm.return + +1: "test15" +4: "test15" has unsupported operation: llvm.store + +4: "test15" has unsupported operation: llvm.return + +1: "test16" +4: "test16" has unsupported operation: llvm.store + +4: "test16" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/non-integral-pointers.txt b/SSA/Projects/InstCombine/tests/logs/non-integral-pointers.txt new file mode 100644 index 000000000..a2d60c762 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/non-integral-pointers.txt @@ -0,0 +1,57 @@ +1: "f_0" +4: "f_0" has unsupported operation: llvm.mlir.zero + +4: "f_0" has unsupported operation: llvm.getelementptr + +1: "f_1" +4: "f_1" has unsupported operation: llvm.inttoptr + +1: "f_2" +4: "f_2" has unsupported operation: llvm.load + +4: "f_2" has unsupported operation: llvm.store + +4: "f_2" has unsupported operation: llvm.return + +1: "f_3" +4: "f_3" has unsupported operation: llvm.load + +4: "f_3" has unsupported operation: llvm.store + +4: "f_3" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: llvm.load + +4: "g" has unsupported operation: llvm.call + +4: "g" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "g" has unsupported operation: llvm.getelementptr + +4: "g" has unsupported operation: llvm.store + +4: "g" has unsupported operation: llvm.load + +1: "g2" +4: "g2" has unsupported operation: llvm.load + +4: "g2" has unsupported operation: llvm.call + +4: "g2" has unsupported operation: llvm.getelementptr + +4: "g2" has unsupported operation: llvm.store + +4: "g2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "alloc" +5: "alloc" is empty + +1: "f_4" +4: "f_4" has unsupported operation: llvm.mlir.addressof + +4: "f_4" has unsupported operation: llvm.call + +1: "f_5" +5: "f_5" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/nonnull-attribute.txt b/SSA/Projects/InstCombine/tests/logs/nonnull-attribute.txt new file mode 100644 index 000000000..3e7cd946a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nonnull-attribute.txt @@ -0,0 +1,17 @@ +1: "addrspace0" +5: "addrspace0" is empty + +1: "addrspace1" +5: "addrspace1" is empty + +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt b/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt new file mode 100644 index 000000000..f519d5c4c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nonnull-select.txt @@ -0,0 +1,68 @@ +1: "pr48975" +4: "pr48975" has unsupported operation: llvm.mlir.zero + +4: "pr48975" has unsupported operation: llvm.load + +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 + +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 + +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 + +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 + +1: "f" +5: "f" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/not-add.txt b/SSA/Projects/InstCombine/tests/logs/not-add.txt new file mode 100644 index 000000000..12ca8e08f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/not-add.txt @@ -0,0 +1,77 @@ +1: "use" +5: "use" is empty + +1: "basic" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "basic_com_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "basic_use_xor" +4: "basic_use_xor" has unsupported operation: llvm.call + +1: "basic_use_add" +4: "basic_use_add" has unsupported operation: llvm.call + +1: "basic_use_both" +4: "basic_use_both" has unsupported operation: llvm.call + +4: "basic_use_both" has unsupported operation: llvm.call + +1: "basic_preserve_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "basic_preserve_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "basic_preserve_nuw_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "vector_test" +"vector_test" contains vectors which are unsupported + +1: "vector_test_poison" +"vector_test_poison" contains vectors which are unsupported + +1: "vector_test_poison_nsw_nuw" +"vector_test_poison_nsw_nuw" contains vectors which are unsupported + +1: "pr50308" +4: "pr50308" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr50308" has unsupported operation: builtin.unregistered: llvm.br + +1: "pr50370" +4: "pr50370" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr50370" has unsupported operation: llvm.mlir.undef + +4: "pr50370" has unsupported operation: llvm.store + +4: "pr50370" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/not.txt b/SSA/Projects/InstCombine/tests/logs/not.txt new file mode 100644 index 000000000..0b64ef7c3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/not.txt @@ -0,0 +1,410 @@ +1: "use1" +5: "use1" is empty + +1: "use8" +5: "use8" is empty + +1: "f1" +5: "f1" is empty + +1: "f2" +5: "f2" is empty + +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "invert_icmp" +4: "invert_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "invert_fcmp" +4: "invert_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "not_not_cmp" +4: "not_not_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_not_cmp_vector" +4: "not_not_cmp_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_cmp_constant" +4: "not_cmp_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_cmp_constant_vector" +4: "not_cmp_constant_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_ashr_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.xor +2: llvm.return + +1: "not_ashr_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.xor +2: llvm.return + +1: "not_ashr_const_splat" +"not_ashr_const_splat" contains vectors which are unsupported + +1: "not_lshr_const_negative" +7: "not_lshr_const_negative" is unchanged by InstCombine + +1: "not_lshr_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "not_lshr_const_splat" +"not_lshr_const_splat" contains vectors which are unsupported + +1: "not_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.return + +1: "not_sub_extra_use" +4: "not_sub_extra_use" has unsupported operation: llvm.store + +1: "not_sub_splat" +"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 + +1: "not_sub_extra_use_vec" +4: "not_sub_extra_use_vec" has unsupported operation: llvm.store + +1: "not_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "not_add_splat" +"not_add_splat" contains vectors which are unsupported + +1: "not_add_vec" +"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 + +4: "not_select_cmp_cmp_extra_use1" has unsupported operation: llvm.call + +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 + +4: "not_select_cmp_cmp_extra_use2" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +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.fcmp + +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 +2: llvm.mlir.constant +2: llvm.sub +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "not_or_neg_commute_vec" +"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 + +1: "not_or_neg_use2" +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 + +1: "not_select_bool_const1" +4: "not_select_bool_const1" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_select_bool_const2" +4: "not_select_bool_const2" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_select_bool_const3" +4: "not_select_bool_const3" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_select_bool_const4" +4: "not_select_bool_const4" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_logicalAnd_not_op0" +4: "not_logicalAnd_not_op0" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_logicalAnd_not_op1" +4: "not_logicalAnd_not_op1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "not_logicalOr_not_op1" +4: "not_logicalOr_not_op1" has unsupported operation: builtin.unregistered: llvm.select + +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" +4: "bitcast_to_wide_elts_sext_bool" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_wide_elts_sext_bool" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_to_narrow_elts_sext_bool" +4: "bitcast_to_narrow_elts_sext_bool" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_narrow_elts_sext_bool" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_to_vec_sext_bool" +4: "bitcast_to_vec_sext_bool" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_vec_sext_bool" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_to_scalar_sext_bool" +4: "bitcast_to_scalar_sext_bool" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_scalar_sext_bool" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_to_vec_sext_bool_use1" +4: "bitcast_to_vec_sext_bool_use1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_vec_sext_bool_use1" has unsupported operation: llvm.call + +4: "bitcast_to_vec_sext_bool_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bitcast_to_scalar_sext_bool_use2" +4: "bitcast_to_scalar_sext_bool_use2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "bitcast_to_scalar_sext_bool_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast_to_scalar_sext_bool_use2" has unsupported operation: llvm.call + +1: "invert_both_cmp_operands_add" +4: "invert_both_cmp_operands_add" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "invert_both_cmp_operands_sub" +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" +4: "test_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_sext_vec" +4: "test_sext_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_sext_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_zext_nneg" +4: "test_zext_nneg" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_trunc" +4: "test_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_trunc_vec" +4: "test_trunc_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_trunc_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_zext" +4: "test_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_invert_demorgan_or" +4: "test_invert_demorgan_or" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_invert_demorgan_or" has unsupported operation: llvm.call + +4: "test_invert_demorgan_or" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_invert_demorgan_or" has unsupported operation: llvm.call + +4: "test_invert_demorgan_or" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "test_invert_demorgan_or2" +4: "test_invert_demorgan_or2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_invert_demorgan_or3" +4: "test_invert_demorgan_or3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_or3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_invert_demorgan_logical_or" +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.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" +4: "test_invert_demorgan_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_and" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_invert_demorgan_and" has unsupported operation: llvm.call + +4: "test_invert_demorgan_and" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_invert_demorgan_and" has unsupported operation: llvm.call + +4: "test_invert_demorgan_and" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "test_invert_demorgan_and2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test_invert_demorgan_and3" +4: "test_invert_demorgan_and3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_invert_demorgan_logical_and" +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.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" +4: "test_invert_demorgan_and_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: llvm.call + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: llvm.call + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: llvm.call + +4: "test_invert_demorgan_and_multiuse" has unsupported operation: builtin.unregistered: llvm.unreachable + diff --git a/SSA/Projects/InstCombine/tests/logs/nothrow.txt b/SSA/Projects/InstCombine/tests/logs/nothrow.txt new file mode 100644 index 000000000..e99f0b9f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/nothrow.txt @@ -0,0 +1,6 @@ +1: "t1" +5: "t1" is empty + +1: "t2" +4: "t2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/nsw-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/nsw-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/nsw.txt b/SSA/Projects/InstCombine/tests/logs/nsw.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/obfuscated_splat.txt b/SSA/Projects/InstCombine/tests/logs/obfuscated_splat.txt new file mode 100644 index 000000000..833432e67 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/obfuscated_splat.txt @@ -0,0 +1,22 @@ +1: "test_undef" +4: "test_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_undef" has unsupported operation: llvm.load + +4: "test_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_undef" has unsupported operation: llvm.store + +4: "test_undef" has unsupported operation: llvm.return + +1: "test_poison" +4: "test_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_poison" has unsupported operation: llvm.load + +4: "test_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "test_poison" has unsupported operation: llvm.store + +4: "test_poison" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/object-size-opaque.txt b/SSA/Projects/InstCombine/tests/logs/object-size-opaque.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/objsize-64.txt b/SSA/Projects/InstCombine/tests/logs/objsize-64.txt new file mode 100644 index 000000000..eaf870ff4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/objsize-64.txt @@ -0,0 +1,35 @@ +1: "malloc" +5: "malloc" is empty + +1: "_Znwm" +5: "_Znwm" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "__cxa_call_unexpected" +5: "__cxa_call_unexpected" is empty + +1: "f1" +4: "f1" has unsupported operation: llvm.call + +4: "f1" has unsupported operation: llvm.store + +1: "f2" +4: "f2" has unsupported operation: llvm.mlir.undef + +4: "f2" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "f2" has unsupported operation: llvm.store + +4: "f2" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "f2" has unsupported operation: llvm.extractvalue + +4: "f2" has unsupported operation: llvm.call + +4: "f2" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "llvm.objectsize.i64.p0" +5: "llvm.objectsize.i64.p0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/objsize-address-space.txt b/SSA/Projects/InstCombine/tests/logs/objsize-address-space.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/objsize.txt b/SSA/Projects/InstCombine/tests/logs/objsize.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/odr-linkage.txt b/SSA/Projects/InstCombine/tests/logs/odr-linkage.txt new file mode 100644 index 000000000..0cff2f236 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/odr-linkage.txt @@ -0,0 +1,17 @@ +1: "test" +4: "test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test" has unsupported operation after optimization: llvm.load + +4: "test" has unsupported operation after optimization: llvm.load + +4: "test" has unsupported operation after optimization: llvm.load + +4: "test" has unsupported operation after optimization: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.txt b/SSA/Projects/InstCombine/tests/logs/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.txt new file mode 100644 index 000000000..0f8b6ee26 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.txt @@ -0,0 +1,79 @@ +1: "p0_scalar_urem_by_const" +4: "p0_scalar_urem_by_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p1_scalar_urem_by_nonconst" +4: "p1_scalar_urem_by_nonconst" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p2_scalar_shifted_urem_by_const" +4: "p2_scalar_shifted_urem_by_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p3_scalar_shifted2_urem_by_const" +4: "p3_scalar_shifted2_urem_by_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p4_vector_urem_by_const__splat" +4: "p4_vector_urem_by_const__splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p5_vector_urem_by_const__nonsplat" +4: "p5_vector_urem_by_const__nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p6_vector_urem_by_const__nonsplat_poison0" +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p6_vector_urem_by_const__nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p7_vector_urem_by_const__nonsplat_poison2" +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: llvm.mlir.undef + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p7_vector_urem_by_const__nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "p8_vector_urem_by_const__nonsplat_poison3" +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: llvm.mlir.undef + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: llvm.mlir.undef + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p8_vector_urem_by_const__nonsplat_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n0_urem_of_maybe_not_power_of_two" +4: "n0_urem_of_maybe_not_power_of_two" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1_urem_by_maybe_power_of_two" +4: "n1_urem_by_maybe_power_of_two" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt b/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt new file mode 100644 index 000000000..93fdcdb09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/onehot_merge.txt @@ -0,0 +1,303 @@ +1: "and_consts" +4: "and_consts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_consts_logical" +4: "and_consts_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "and_consts_vector" +4: "and_consts_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and" +4: "foo1_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_logical" +4: "foo1_and_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_vector" +4: "foo1_and_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_commuted" +4: "foo1_and_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_commuted_logical" +4: "foo1_and_commuted_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_commuted_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_commuted_vector" +4: "foo1_and_commuted_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_consts" +4: "or_consts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_consts_logical" +4: "or_consts_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "or_consts_vector" +4: "or_consts_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or" +4: "foo1_or" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_logical" +4: "foo1_or_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_or_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_vector" +4: "foo1_or_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_commuted" +4: "foo1_or_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_commuted_logical" +4: "foo1_or_commuted_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_or_commuted_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_commuted_vector" +4: "foo1_or_commuted_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr" +4: "foo1_and_signbit_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_logical" +4: "foo1_and_signbit_lshr_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_signbit_lshr_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_vector" +4: "foo1_and_signbit_lshr_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_signbit_lshr" +4: "foo1_or_signbit_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_signbit_lshr_logical" +4: "foo1_or_signbit_lshr_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_or_signbit_lshr_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_signbit_lshr_vector" +4: "foo1_or_signbit_lshr_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit" +4: "foo1_and_signbit_lshr_without_shifting_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_signbit_lshr_without_shifting_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_logical" +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.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 + +4: "foo1_or_signbit_lshr_without_shifting_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_signbit_lshr_without_shifting_signbit_logical" +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.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 + +1: "foo1_and_signbit_lshr_without_shifting_signbit_both_sides_logical" +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.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 + +1: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides_splat" +4: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_or_signbit_lshr_without_shifting_signbit_both_sides_logical" +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.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 + +4: "foo1_and_extra_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_shl_logical" +4: "foo1_and_extra_use_shl_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_shl_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_shl_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_and" +4: "foo1_and_extra_use_and" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_and_logical" +4: "foo1_and_extra_use_and_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_and_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_and_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_cmp" +4: "foo1_and_extra_use_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_extra_use_cmp" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_cmp_logical" +4: "foo1_and_extra_use_cmp_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_extra_use_cmp_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_cmp_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_cmp_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_shl2" +4: "foo1_and_extra_use_shl2" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_shl2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_shl2_logical" +4: "foo1_and_extra_use_shl2_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_shl2_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_shl2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_and2" +4: "foo1_and_extra_use_and2" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_and2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_and2_logical" +4: "foo1_and_extra_use_and2_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_and2_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_and2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_cmp2" +4: "foo1_and_extra_use_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_extra_use_cmp2" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_extra_use_cmp2_logical" +4: "foo1_and_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "foo1_and_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_extra_use_cmp2_logical" has unsupported operation: llvm.store + +4: "foo1_and_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1" +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1" has unsupported operation: llvm.store + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1_logical" +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl1_logical" has unsupported operation: llvm.store + +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.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 + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and_logical" +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_and_logical" has unsupported operation: llvm.store + +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.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 + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1" has unsupported operation: llvm.store + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp1_logical" +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: llvm.store + +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 + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2" has unsupported operation: llvm.store + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_shl2_logical" +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: llvm.store + +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 + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2" has unsupported operation: llvm.store + +1: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2_logical" +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo1_and_signbit_lshr_without_shifting_signbit_extra_use_cmp2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "foo1_and_signbit_lshr_without_shifting_signbit_not_pwr2_logical" +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.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/opaque-ptr.txt b/SSA/Projects/InstCombine/tests/logs/opaque-ptr.txt new file mode 100644 index 000000000..f12bc1fd9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/opaque-ptr.txt @@ -0,0 +1,2 @@ +3: opaque-ptr.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/opaque.txt b/SSA/Projects/InstCombine/tests/logs/opaque.txt new file mode 100644 index 000000000..c170770e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/opaque.txt @@ -0,0 +1,10 @@ +1: "rt_swift_slowAlloc" +5: "rt_swift_slowAlloc" is empty + +1: "_TwTkV" +4: "_TwTkV" has unsupported operation: llvm.call + +4: "_TwTkV" has unsupported operation: llvm.store + +4: "_TwTkV" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + diff --git a/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt b/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt new file mode 100644 index 000000000..eba420fe7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/operand-complexity.txt @@ -0,0 +1,85 @@ +1: "neg" +4: "neg" has unsupported operation: llvm.udiv + +1: "neg_vec" +4: "neg_vec" has unsupported operation: llvm.udiv + +1: "neg_vec_poison" +4: "neg_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "neg_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "neg_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "not_vec" +4: "not_vec" has unsupported operation: llvm.udiv + +1: "not_vec_poison" +4: "not_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "not_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "not_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "use_vec" +5: "use_vec" is empty + +1: "fneg" +4: "fneg" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fneg" has unsupported operation: llvm.call + +1: "unary_fneg" +4: "unary_fneg" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "unary_fneg" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_fneg" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "unary_fneg" has unsupported operation: llvm.call + +1: "fneg_vec" +4: "fneg_vec" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fneg_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fneg_vec" has unsupported operation: llvm.call + +1: "fneg_vec_poison" +4: "fneg_vec_poison" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fneg_vec_poison" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fneg_vec_poison" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fneg_vec_poison" has unsupported operation: llvm.call + +1: "unary_fneg_vec" +4: "unary_fneg_vec" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "unary_fneg_vec" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "unary_fneg_vec" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "unary_fneg_vec" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/opts-tuples-extract-intrinsic.txt b/SSA/Projects/InstCombine/tests/logs/opts-tuples-extract-intrinsic.txt new file mode 100644 index 000000000..7590ffcdf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/opts-tuples-extract-intrinsic.txt @@ -0,0 +1,2 @@ +3: opts-tuples-extract-intrinsic.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/or-concat.txt b/SSA/Projects/InstCombine/tests/logs/or-concat.txt new file mode 100644 index 000000000..706d3752e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or-concat.txt @@ -0,0 +1,60 @@ +1: "concat_bswap32_unary_split" +4: "concat_bswap32_unary_split" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bswap32_unary_split_vector" +4: "concat_bswap32_unary_split_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bswap32_unary_flip" +4: "concat_bswap32_unary_flip" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "concat_bswap32_unary_flip" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bswap32_unary_flip_vector" +4: "concat_bswap32_unary_flip_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "concat_bswap32_unary_flip_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bswap32_binary" +4: "concat_bswap32_binary" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bswap32_binary" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bswap32_binary" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bswap32_binary_vector" +4: "concat_bswap32_binary_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bswap32_binary_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bswap32_binary_vector" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "concat_bitreverse32_unary_split" +4: "concat_bitreverse32_unary_split" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "concat_bitreverse32_unary_split_vector" +4: "concat_bitreverse32_unary_split_vector" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "concat_bitreverse32_unary_flip" +4: "concat_bitreverse32_unary_flip" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "concat_bitreverse32_unary_flip" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "concat_bitreverse32_unary_flip_vector" +4: "concat_bitreverse32_unary_flip_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +4: "concat_bitreverse32_unary_flip_vector" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "concat_bitreverse32_binary" +4: "concat_bitreverse32_binary" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bitreverse32_binary" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bitreverse32_binary" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + +1: "concat_bitreverse32_binary_vector" +4: "concat_bitreverse32_binary_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bitreverse32_binary_vector" has unsupported operation: builtin.unregistered: llvm.zext + +4: "concat_bitreverse32_binary_vector" has unsupported operation: builtin.unregistered: llvm.intr.bitreverse + diff --git a/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt b/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt new file mode 100644 index 000000000..c6efc7d07 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or-fcmp.txt @@ -0,0 +1,1797 @@ +1: "PR1738" +4: "PR1738" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR1738_logical" +4: "PR1738_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR1738_vec_undef" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR1738_vec_poison" +4: "PR1738_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069" +4: "PR41069" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_logical" +4: "PR41069_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "PR41069_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_commute_logical" +4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_commute_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "PR41069_vec" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_vec_poison" +4: "PR41069_vec_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_vec_commute" +4: "PR41069_vec_commute" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec_commute" has unsupported operation: llvm.mlir.undef + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "PR41069_vec_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "PR41069_vec_commute_poison" +4: "PR41069_vec_commute_poison" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_uno_nonzero" +4: "fcmp_uno_nonzero" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_uno_nonzero_logical" +4: "fcmp_uno_nonzero_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "auto_gen_0" +4: "auto_gen_0" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_0" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_0_logical" +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.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 + +1: "auto_gen_1_logical" +4: "auto_gen_1_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_1_logical_fmf" +4: "auto_gen_1_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_2" +4: "auto_gen_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_2_logical" +4: "auto_gen_2_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_2_logical_fmf" +4: "auto_gen_2_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_3" +4: "auto_gen_3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_3_logical" +4: "auto_gen_3_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_3_logical_fmf" +4: "auto_gen_3_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_4" +4: "auto_gen_4" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_4_logical" +4: "auto_gen_4_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_4_logical_fmf" +4: "auto_gen_4_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_5" +4: "auto_gen_5" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_5_logical" +4: "auto_gen_5_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_5_logical_fmf" +4: "auto_gen_5_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_6" +4: "auto_gen_6" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_6_logical" +4: "auto_gen_6_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_6_logical_fmf" +4: "auto_gen_6_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_7" +4: "auto_gen_7" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_7_logical" +4: "auto_gen_7_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_7_logical_fmf" +4: "auto_gen_7_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8" +4: "auto_gen_8" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8_logical" +4: "auto_gen_8_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_8_logical_fmf" +4: "auto_gen_8_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9" +4: "auto_gen_9" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9_logical" +4: "auto_gen_9_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_9_logical_fmf" +4: "auto_gen_9_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_10" +4: "auto_gen_10" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_10_logical" +4: "auto_gen_10_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_10_logical_fmf" +4: "auto_gen_10_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_11" +4: "auto_gen_11" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_11_logical" +4: "auto_gen_11_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_11_logical_fmf" +4: "auto_gen_11_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_12" +4: "auto_gen_12" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_12_logical" +4: "auto_gen_12_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_12_logical_fmf" +4: "auto_gen_12_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_13" +4: "auto_gen_13" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_13_logical" +4: "auto_gen_13_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "auto_gen_14_logical" +4: "auto_gen_14_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_14_logical_fmf" +4: "auto_gen_14_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_15" +4: "auto_gen_15" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_15_logical" +4: "auto_gen_15_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_15_logical_fmf" +4: "auto_gen_15_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_16" +4: "auto_gen_16" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_16_logical" +4: "auto_gen_16_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_16_logical_fmf" +4: "auto_gen_16_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_17" +4: "auto_gen_17" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_17_logical" +4: "auto_gen_17_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +1: "auto_gen_18_logical" +4: "auto_gen_18_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_18_logical_fmf" +4: "auto_gen_18_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19" +4: "auto_gen_19" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19_logical" +4: "auto_gen_19_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_19_logical_fmf" +4: "auto_gen_19_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20" +4: "auto_gen_20" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20_logical" +4: "auto_gen_20_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_20_logical_fmf" +4: "auto_gen_20_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_21" +4: "auto_gen_21" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_21_logical" +4: "auto_gen_21_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_21_logical_fmf" +4: "auto_gen_21_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_22" +4: "auto_gen_22" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_22_logical" +4: "auto_gen_22_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_22_logical_fmf" +4: "auto_gen_22_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_23" +4: "auto_gen_23" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_23_logical" +4: "auto_gen_23_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_23_logical_fmf" +4: "auto_gen_23_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24" +4: "auto_gen_24" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24_logical" +4: "auto_gen_24_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_24_logical_fmf" +4: "auto_gen_24_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25" +4: "auto_gen_25" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25_logical" +4: "auto_gen_25_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_25_logical_fmf" +4: "auto_gen_25_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26" +4: "auto_gen_26" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26_logical" +4: "auto_gen_26_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_26_logical_fmf" +4: "auto_gen_26_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27" +4: "auto_gen_27" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27_logical" +4: "auto_gen_27_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_27_logical_fmf" +4: "auto_gen_27_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_28" +4: "auto_gen_28" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_28_logical" +4: "auto_gen_28_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_28_logical_fmf" +4: "auto_gen_28_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_29" +4: "auto_gen_29" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_29_logical" +4: "auto_gen_29_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_29_logical_fmf" +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.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 + +1: "auto_gen_30_logical" +4: "auto_gen_30_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_30_logical_fmf" +4: "auto_gen_30_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31" +4: "auto_gen_31" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31_logical" +4: "auto_gen_31_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_31_logical_fmf" +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.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 + +1: "auto_gen_32_logical" +4: "auto_gen_32_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_32_logical_fmf" +4: "auto_gen_32_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33" +4: "auto_gen_33" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33_logical" +4: "auto_gen_33_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_33_logical_fmf" +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.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 + +1: "auto_gen_34_logical" +4: "auto_gen_34_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_34_logical_fmf" +4: "auto_gen_34_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35" +4: "auto_gen_35" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35_logical" +4: "auto_gen_35_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_35_logical_fmf" +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.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 + +1: "auto_gen_36_logical" +4: "auto_gen_36_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_36_logical_fmf" +4: "auto_gen_36_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_37" +4: "auto_gen_37" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_37_logical" +4: "auto_gen_37_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_37_logical_fmf" +4: "auto_gen_37_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_38" +4: "auto_gen_38" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_38_logical" +4: "auto_gen_38_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_38_logical_fmf" +4: "auto_gen_38_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_39" +4: "auto_gen_39" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_39_logical" +4: "auto_gen_39_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_39_logical_fmf" +4: "auto_gen_39_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_40" +4: "auto_gen_40" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_40_logical" +4: "auto_gen_40_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_40_logical_fmf" +4: "auto_gen_40_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_41" +4: "auto_gen_41" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_41_logical" +4: "auto_gen_41_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_41_logical_fmf" +4: "auto_gen_41_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_42" +4: "auto_gen_42" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_42" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_42_logical" +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.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 + +4: "auto_gen_43" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_43_logical" +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.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 + +1: "auto_gen_44_logical" +4: "auto_gen_44_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_44_logical_fmf" +4: "auto_gen_44_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_45" +4: "auto_gen_45" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_45_logical" +4: "auto_gen_45_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_45_logical_fmf" +4: "auto_gen_45_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_46" +4: "auto_gen_46" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_46_logical" +4: "auto_gen_46_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_46_logical_fmf" +4: "auto_gen_46_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_47" +4: "auto_gen_47" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_47_logical" +4: "auto_gen_47_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_47_logical_fmf" +4: "auto_gen_47_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48" +4: "auto_gen_48" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48_logical" +4: "auto_gen_48_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_48_logical_fmf" +4: "auto_gen_48_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_49" +4: "auto_gen_49" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_49_logical" +4: "auto_gen_49_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_49_logical_fmf" +4: "auto_gen_49_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_50" +4: "auto_gen_50" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_50" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_50_logical" +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.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 + +1: "auto_gen_51_logical" +4: "auto_gen_51_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_51_logical_fmf" +4: "auto_gen_51_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_52" +4: "auto_gen_52" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_52" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_52_logical" +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.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 + +1: "auto_gen_53_logical" +4: "auto_gen_53_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_53_logical_fmf" +4: "auto_gen_53_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_54" +4: "auto_gen_54" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_54_logical" +4: "auto_gen_54_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_54_logical_fmf" +4: "auto_gen_54_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_55" +4: "auto_gen_55" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_55_logical" +4: "auto_gen_55_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_55_logical_fmf" +4: "auto_gen_55_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_56" +4: "auto_gen_56" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_56_logical" +4: "auto_gen_56_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_56_logical_fmf" +4: "auto_gen_56_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57" +4: "auto_gen_57" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57_logical" +4: "auto_gen_57_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_57_logical_fmf" +4: "auto_gen_57_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58" +4: "auto_gen_58" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58_logical" +4: "auto_gen_58_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_58_logical_fmf" +4: "auto_gen_58_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_59" +4: "auto_gen_59" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_59" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_59_logical" +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.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 + +4: "auto_gen_60" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_60_logical" +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.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 + +4: "auto_gen_61" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_61_logical" +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.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 + +4: "auto_gen_62" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_62_logical" +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.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 + +1: "auto_gen_63_logical" +4: "auto_gen_63_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_63_logical_fmf" +4: "auto_gen_63_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64" +4: "auto_gen_64" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64_logical" +4: "auto_gen_64_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_64_logical_fmf" +4: "auto_gen_64_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65" +4: "auto_gen_65" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65_logical" +4: "auto_gen_65_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_65_logical_fmf" +4: "auto_gen_65_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_66" +4: "auto_gen_66" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_66_logical" +4: "auto_gen_66_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_66_logical_fmf" +4: "auto_gen_66_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_67" +4: "auto_gen_67" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_67_logical" +4: "auto_gen_67_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_67_logical_fmf" +4: "auto_gen_67_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_68" +4: "auto_gen_68" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_68_logical" +4: "auto_gen_68_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_68_logical_fmf" +4: "auto_gen_68_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_69" +4: "auto_gen_69" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_69" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_69_logical" +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.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 + +1: "auto_gen_70_logical" +4: "auto_gen_70_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_70_logical_fmf" +4: "auto_gen_70_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71" +4: "auto_gen_71" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71_logical" +4: "auto_gen_71_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_71_logical_fmf" +4: "auto_gen_71_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72" +4: "auto_gen_72" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72_logical" +4: "auto_gen_72_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_72_logical_fmf" +4: "auto_gen_72_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_73" +4: "auto_gen_73" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_73" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_73_logical" +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.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 + +1: "auto_gen_74_logical" +4: "auto_gen_74_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_74_logical_fmf" +4: "auto_gen_74_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75" +4: "auto_gen_75" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75_logical" +4: "auto_gen_75_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_75_logical_fmf" +4: "auto_gen_75_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_76" +4: "auto_gen_76" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_76" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_76_logical" +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.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 + +1: "auto_gen_77_logical" +4: "auto_gen_77_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_77_logical_fmf" +4: "auto_gen_77_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_78" +4: "auto_gen_78" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_78_logical" +4: "auto_gen_78_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_78_logical_fmf" +4: "auto_gen_78_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_79" +4: "auto_gen_79" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_79_logical" +4: "auto_gen_79_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_79_logical_fmf" +4: "auto_gen_79_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_80" +4: "auto_gen_80" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_80" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_80_logical" +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.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 + +4: "auto_gen_81" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_81_logical" +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.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 + +1: "auto_gen_82_logical" +4: "auto_gen_82_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_82_logical_fmf" +4: "auto_gen_82_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83" +4: "auto_gen_83" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83_logical" +4: "auto_gen_83_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_83_logical_fmf" +4: "auto_gen_83_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_84" +4: "auto_gen_84" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_84" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_84_logical" +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.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 + +4: "auto_gen_85" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_85_logical" +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.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 + +1: "auto_gen_86_logical" +4: "auto_gen_86_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_86_logical_fmf" +4: "auto_gen_86_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_87" +4: "auto_gen_87" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_87" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_87_logical" +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.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 + +4: "auto_gen_88" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_88_logical" +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.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 + +1: "auto_gen_89_logical" +4: "auto_gen_89_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_89_logical_fmf" +4: "auto_gen_89_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90" +4: "auto_gen_90" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90_logical" +4: "auto_gen_90_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_90_logical_fmf" +4: "auto_gen_90_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_91" +4: "auto_gen_91" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_91_logical" +4: "auto_gen_91_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_91_logical_fmf" +4: "auto_gen_91_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_92" +4: "auto_gen_92" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_92" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_92_logical" +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.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 + +1: "auto_gen_93_logical" +4: "auto_gen_93_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_93_logical_fmf" +4: "auto_gen_93_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_94" +4: "auto_gen_94" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_94" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_94_logical" +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.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 + +1: "auto_gen_95_logical" +4: "auto_gen_95_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_95_logical_fmf" +4: "auto_gen_95_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_96" +4: "auto_gen_96" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_96" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_96_logical" +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.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 + +1: "auto_gen_97_logical" +4: "auto_gen_97_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_97_logical_fmf" +4: "auto_gen_97_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_98" +4: "auto_gen_98" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_98" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_98_logical" +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.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 + +4: "auto_gen_99" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_99_logical" +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.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 + +1: "auto_gen_100_logical" +4: "auto_gen_100_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_100_logical_fmf" +4: "auto_gen_100_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_101" +4: "auto_gen_101" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_101" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_101_logical" +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.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 + +1: "auto_gen_102_logical" +4: "auto_gen_102_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_102_logical_fmf" +4: "auto_gen_102_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_103" +4: "auto_gen_103" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_103" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_103_logical" +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.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 + +1: "auto_gen_104_logical" +4: "auto_gen_104_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_104_logical_fmf" +4: "auto_gen_104_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_105" +4: "auto_gen_105" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_105_logical" +4: "auto_gen_105_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +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: builtin.unregistered: llvm.fcmp + +1: "auto_gen_106_logical" +4: "auto_gen_106_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_106_logical_fmf" +4: "auto_gen_106_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_107" +4: "auto_gen_107" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_107_logical" +4: "auto_gen_107_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_107_logical_fmf" +4: "auto_gen_107_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_108" +4: "auto_gen_108" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_108_logical" +4: "auto_gen_108_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_108_logical_fmf" +4: "auto_gen_108_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_109" +4: "auto_gen_109" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_109_logical" +4: "auto_gen_109_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_109_logical_fmf" +4: "auto_gen_109_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_110" +4: "auto_gen_110" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_110_logical" +4: "auto_gen_110_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_110_logical_fmf" +4: "auto_gen_110_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_111" +4: "auto_gen_111" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_111_logical" +4: "auto_gen_111_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_111_logical_fmf" +4: "auto_gen_111_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_112" +4: "auto_gen_112" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +4: "auto_gen_112" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_112_logical" +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.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 + +1: "auto_gen_113_logical" +4: "auto_gen_113_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_113_logical_fmf" +4: "auto_gen_113_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_114" +4: "auto_gen_114" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_114_logical" +4: "auto_gen_114_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_114_logical_fmf" +4: "auto_gen_114_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115" +4: "auto_gen_115" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115_logical" +4: "auto_gen_115_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_115_logical_fmf" +4: "auto_gen_115_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_116" +4: "auto_gen_116" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_116_logical" +4: "auto_gen_116_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_116_logical_fmf" +4: "auto_gen_116_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117" +4: "auto_gen_117" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117_logical" +4: "auto_gen_117_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_117_logical_fmf" +4: "auto_gen_117_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_118" +4: "auto_gen_118" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_118_logical" +4: "auto_gen_118_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_118_logical_fmf" +4: "auto_gen_118_logical_fmf" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119" +4: "auto_gen_119" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119_logical" +4: "auto_gen_119_logical" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "auto_gen_119_logical_fmf" +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.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 + +4: "auto_gen_120" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_120_logical" +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.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 + +4: "auto_gen_121" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_121_logical" +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.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 + +4: "auto_gen_122" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_122_logical" +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.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 + +4: "auto_gen_123" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_123_logical" +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.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 + +4: "auto_gen_124" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_124_logical" +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.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 + +4: "auto_gen_125" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_125_logical" +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.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 + +4: "auto_gen_126" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_126_logical" +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.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 + +4: "auto_gen_127" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_127_logical" +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.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 + +4: "auto_gen_128" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_128_logical" +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.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 + +4: "auto_gen_129" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_129_logical" +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.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 + +4: "auto_gen_130" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_130_logical" +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.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 + +4: "auto_gen_131" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_131_logical" +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.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 + +4: "auto_gen_132" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_132_logical" +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.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 + +4: "auto_gen_133" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_133_logical" +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.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 + +4: "auto_gen_134" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_134_logical" +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.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 + +4: "auto_gen_135" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "auto_gen_135_logical" +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.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 + +1: "intersect_fmf_2" +4: "intersect_fmf_2" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "intersect_fmf_3" +4: "intersect_fmf_3" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "intersect_fmf_4" +4: "intersect_fmf_4" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/or-shifted-masks.txt b/SSA/Projects/InstCombine/tests/logs/or-shifted-masks.txt new file mode 100644 index 000000000..cee6e050e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or-shifted-masks.txt @@ -0,0 +1,158 @@ +1: "or_and_shifts1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.shl +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_shifts2" +7: "or_and_shifts2" is unchanged by InstCombine + +1: "or_and_shift_shift_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.or +2: llvm.return + +1: "multiuse1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.shl +2: llvm.lshr +2: llvm.shl +2: llvm.lshr +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.return + +1: "multiuse2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.shl +2: llvm.shl +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.or +2: llvm.return + +1: "multiuse3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.lshr +2: llvm.shl +2: llvm.and +2: llvm.or +2: llvm.lshr +2: llvm.and +2: llvm.or +2: llvm.or +2: llvm.return + +1: "multiuse4" +4: "multiuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "multiuse4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "multiuse4" has unsupported operation: builtin.unregistered: llvm.br + +4: "multiuse4" has unsupported operation: builtin.unregistered: llvm.br + +1: "multiuse5" +4: "multiuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "multiuse5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "multiuse5" has unsupported operation: builtin.unregistered: llvm.br + +4: "multiuse5" has unsupported operation: builtin.unregistered: llvm.br + +1: "shl_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_mask_wrong_shl_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_mask_weird_type" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_mask_extra_use" +4: "shl_mask_extra_use" has unsupported operation: llvm.store + +1: "shl_mul_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.mul +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "shl_mul_mask_wrong_mul_const" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.mul +2: llvm.shl +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt b/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt new file mode 100644 index 000000000..f8ec51df2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or-xor-xor.txt @@ -0,0 +1,67 @@ +1: "use.i3" +5: "use.i3" is empty + +1: "use.i5" +5: "use.i5" is empty + +1: "use.i32" +5: "use.i32" is empty + +1: "or_xor_xor_normal_variant1" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_xor_normal_variant2" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_xor_normal_variant3" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_xor_normal_variant4" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_xor_normal_binops" +2: llvm.func +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_xor_normal_vector" +"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 + +4: "or_xor_xor_normal_multiple_uses_and" has unsupported operation: llvm.call + +1: "or_xor_xor_negative_multiple_uses_xor1" +4: "or_xor_xor_negative_multiple_uses_xor1" has unsupported operation: llvm.mlir.addressof + +4: "or_xor_xor_negative_multiple_uses_xor1" has unsupported operation: llvm.call + +1: "or_xor_xor_negative_multiple_uses_xor2" +4: "or_xor_xor_negative_multiple_uses_xor2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/or-xor.txt b/SSA/Projects/InstCombine/tests/logs/or-xor.txt new file mode 100644 index 000000000..a7b88b260 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or-xor.txt @@ -0,0 +1,766 @@ +1: "use" +5: "use" is empty + +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test5_commuted" +"test5_commuted" contains vectors which are unsupported + +1: "test5_commuted_x_y" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test5_extra_use_not" +4: "test5_extra_use_not" has unsupported operation: llvm.store + +1: "test5_extra_use_xor" +4: "test5_extra_use_xor" has unsupported operation: llvm.store + +1: "test5_extra_use_not_xor" +4: "test5_extra_use_not_xor" has unsupported operation: llvm.store + +4: "test5_extra_use_not_xor" has unsupported operation: llvm.store + +1: "xor_common_op_commute0" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "xor_common_op_commute1" +4: "xor_common_op_commute1" has unsupported operation: llvm.call + +1: "xor_common_op_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "xor_common_op_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.mul +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test10_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test10_extrause" +4: "test10_extrause" has unsupported operation: llvm.store + +1: "test10_commuted_extrause" +4: "test10_commuted_extrause" has unsupported operation: llvm.store + +1: "test10_canonical" +7: "test10_canonical" is unchanged by InstCombine + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test12_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.and +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test14" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test14_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test15" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test15_commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "or_and_xor_not_constant_commute0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_xor_not_constant_commute1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.and +2: llvm.or +2: llvm.return + +1: "or_and_xor_not_constant_commute2_splat" +"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 + +1: "not_or" +7: "not_or" is unchanged by InstCombine + +1: "not_or_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "xor_or2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "xor_or_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_xor_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "test17" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.mul +2: llvm.return + +1: "test18" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.mul +2: llvm.return + +1: "test19" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test20" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test21" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test22" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test23" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test23v" +"test23v" contains vectors which are unsupported + +1: "PR45977_f1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "PR45977_f2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_xor_common_op_commute0" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_common_op_commute1" +4: "or_xor_common_op_commute1" has unsupported operation: llvm.call + +1: "or_xor_common_op_commute2" +4: "or_xor_common_op_commute2" has unsupported operation: llvm.call + +1: "or_xor_common_op_commute3" +4: "or_xor_common_op_commute3" has unsupported operation: llvm.call + +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 + +1: "or_xor_common_op_commute5" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_common_op_commute6" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_common_op_commute7" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_notcommon_op" +7: "or_xor_notcommon_op" is unchanged by InstCombine + +1: "or_not_xor_common_op_commute0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_commute1" +4: "or_not_xor_common_op_commute1" has unsupported operation: llvm.call + +1: "or_not_xor_common_op_commute2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_commute3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_commute4" +"or_not_xor_common_op_commute4" contains vectors which are unsupported + +1: "or_not_xor_common_op_commute5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_commute6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_commute7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.or +2: llvm.return + +1: "or_not_xor_common_op_use1" +4: "or_not_xor_common_op_use1" has unsupported operation: llvm.call + +1: "or_not_xor_common_op_use2" +4: "or_not_xor_common_op_use2" has unsupported operation: llvm.call + +1: "or_nand_xor_common_op_commute0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_nand_xor_common_op_commute1" +"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 + +1: "or_nand_xor_common_op_commute3" +4: "or_nand_xor_common_op_commute3" has unsupported operation: llvm.call + +1: "or_nand_xor_common_op_commute3_use2" +4: "or_nand_xor_common_op_commute3_use2" has unsupported operation: llvm.call + +1: "or_nand_xor_common_op_commute3_use3" +4: "or_nand_xor_common_op_commute3_use3" has unsupported operation: llvm.call + +4: "or_nand_xor_common_op_commute3_use3" has unsupported operation: llvm.call + +1: "PR75692_1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "PR75692_2" +7: "PR75692_2" is unchanged by InstCombine + +1: "PR75692_3" +7: "PR75692_3" is unchanged by InstCombine + +1: "or_xor_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_not_uses1" +4: "or_xor_not_uses1" has unsupported operation: llvm.mlir.addressof + +4: "or_xor_not_uses1" has unsupported operation: llvm.call + +1: "or_xor_not_uses2" +4: "or_xor_not_uses2" has unsupported operation: llvm.mlir.addressof + +4: "or_xor_not_uses2" has unsupported operation: llvm.call + +1: "or_xor_and_commuted1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_and_commuted2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0000" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0001" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0010" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0011" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0100" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0101" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0110" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_0111" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1000" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1001" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1010" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1011" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1100" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1101" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1110" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + +1: "or_xor_tree_1111" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.or +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/or.txt b/SSA/Projects/InstCombine/tests/logs/or.txt new file mode 100644 index 000000000..a52eb07d7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/or.txt @@ -0,0 +1,2 @@ +3: or.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/oss_fuzz_32759.txt b/SSA/Projects/InstCombine/tests/logs/oss_fuzz_32759.txt new file mode 100644 index 000000000..2c2361314 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/oss_fuzz_32759.txt @@ -0,0 +1,5 @@ +1: "oss_fuzz_32759" +4: "oss_fuzz_32759" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "oss_fuzz_32759" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/osx-names.txt b/SSA/Projects/InstCombine/tests/logs/osx-names.txt new file mode 100644 index 000000000..641aaf34e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/osx-names.txt @@ -0,0 +1,21 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.return + +1: "fprintf" +5: "fprintf" is empty + +1: "fwrite$UNIX2003" +5: "fwrite$UNIX2003" is empty + +1: "fputs$UNIX2003" +5: "fputs$UNIX2003" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/out-of-bounds-indexes.txt b/SSA/Projects/InstCombine/tests/logs/out-of-bounds-indexes.txt new file mode 100644 index 000000000..1f7449d2d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/out-of-bounds-indexes.txt @@ -0,0 +1,17 @@ +1: "test_out_of_bounds" +4: "test_out_of_bounds" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_out_of_bounds" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_out_of_bounds" has unsupported operation: llvm.store + +1: "test_non64bit" +4: "test_non64bit" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_non64bit" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_non64bit" has unsupported operation: llvm.store + +1: "inselt_bad_index" +4: "inselt_bad_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + diff --git a/SSA/Projects/InstCombine/tests/logs/out-of-tree-allocator-optimizes-away.txt b/SSA/Projects/InstCombine/tests/logs/out-of-tree-allocator-optimizes-away.txt new file mode 100644 index 000000000..6b61e9c73 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/out-of-tree-allocator-optimizes-away.txt @@ -0,0 +1,15 @@ +1: "alloc_elides_test" +4: "alloc_elides_test" has unsupported operation: llvm.return + +1: "alloc_elides_test_virtual" +4: "alloc_elides_test_virtual" has unsupported operation: llvm.return + +1: "__rust_alloc" +5: "__rust_alloc" is empty + +1: "__rust_realloc" +5: "__rust_realloc" is empty + +1: "__rust_dealloc" +5: "__rust_dealloc" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt b/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt new file mode 100644 index 000000000..ddf9435c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/overflow-mul.txt @@ -0,0 +1,152 @@ +1: "use.i64" +5: "use.i64" is empty + +1: "pr4917_1" +4: "pr4917_1" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4917_1" has unsupported operation: llvm.extractvalue + +4: "pr4917_1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4917_1a" +4: "pr4917_1a" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4917_1a" has unsupported operation: llvm.extractvalue + +4: "pr4917_1a" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4917_2" +4: "pr4917_2" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4917_2" has unsupported operation: llvm.extractvalue + +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 + +4: "pr4917_3" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "pr4917_4" has unsupported operation: llvm.extractvalue + +4: "pr4917_4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4917_4a" +4: "pr4917_4a" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4917_4a" has unsupported operation: llvm.extractvalue + +4: "pr4917_4a" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4917_5" +4: "pr4917_5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr4917_5" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4917_5" has unsupported operation: llvm.extractvalue + +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 + +4: "pr4918_1" has unsupported operation: llvm.extractvalue + +4: "pr4918_1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4918_2" +4: "pr4918_2" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4918_2" has unsupported operation: llvm.extractvalue + +4: "pr4918_2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr4918_3" +4: "pr4918_3" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr4918_3" has unsupported operation: llvm.extractvalue + +4: "pr4918_3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr20113" +4: "pr20113" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr20113" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr20113" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr20113" has unsupported operation: builtin.unregistered: llvm.sext + +1: "pr21445" +4: "pr21445" has unsupported operation: llvm.mlir.addressof + +4: "pr21445" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "pr21445" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "pr21445" has unsupported operation: llvm.extractvalue + +1: "mul_may_overflow" +4: "mul_may_overflow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "mul_may_overflow" has unsupported operation: builtin.unregistered: llvm.zext + +4: "mul_may_overflow" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "mul_may_overflow" has unsupported operation: builtin.unregistered: llvm.zext + +1: "mul_known_nuw" +4: "mul_known_nuw" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "mul_known_nuw" has unsupported operation: llvm.extractvalue + +4: "mul_known_nuw" has unsupported operation: builtin.unregistered: llvm.zext + +1: "extra_and_use" +4: "extra_and_use" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "extra_and_use" has unsupported operation: llvm.extractvalue + +4: "extra_and_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "extra_and_use" has unsupported operation: llvm.extractvalue + +4: "extra_and_use" has unsupported operation: llvm.call + +4: "extra_and_use" has unsupported operation: builtin.unregistered: llvm.zext + +1: "extra_and_use_small_mask" +4: "extra_and_use_small_mask" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "extra_and_use_small_mask" has unsupported operation: llvm.extractvalue + +4: "extra_and_use_small_mask" has unsupported operation: builtin.unregistered: llvm.zext + +4: "extra_and_use_small_mask" has unsupported operation: llvm.extractvalue + +4: "extra_and_use_small_mask" has unsupported operation: llvm.call + +4: "extra_and_use_small_mask" has unsupported operation: builtin.unregistered: llvm.zext + +1: "extra_and_use_mask_too_large" +4: "extra_and_use_mask_too_large" has unsupported operation: builtin.unregistered: llvm.zext + +4: "extra_and_use_mask_too_large" has unsupported operation: builtin.unregistered: llvm.zext + +4: "extra_and_use_mask_too_large" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "extra_and_use_mask_too_large" has unsupported operation: llvm.call + +4: "extra_and_use_mask_too_large" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/overflow.txt b/SSA/Projects/InstCombine/tests/logs/overflow.txt new file mode 100644 index 000000000..5de1efa51 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/overflow.txt @@ -0,0 +1,70 @@ +1: "throwAnExceptionOrWhatever" +5: "throwAnExceptionOrWhatever" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "test1" has unsupported operation: llvm.extractvalue + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.extractvalue + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test2" has unsupported operation: llvm.store + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "test4" has unsupported operation: llvm.extractvalue + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: llvm.call + +4: "test4" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test4" has unsupported operation: llvm.extractvalue + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: llvm.call + +4: "test8" has unsupported operation: builtin.unregistered: llvm.br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt b/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt new file mode 100644 index 000000000..6f460a39e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/overflow_to_sat.txt @@ -0,0 +1,346 @@ +1: "uadd" +4: "uadd" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "usub" +4: "usub" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sadd_x_lt_min" +4: "sadd_x_lt_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_x_lt_min" has unsupported operation: llvm.extractvalue + +4: "sadd_x_lt_min" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_x_le_min" +4: "sadd_x_le_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_x_le_min" has unsupported operation: llvm.extractvalue + +4: "sadd_x_le_min" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_x_gt_min" +4: "sadd_x_gt_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_x_gt_max" +4: "sadd_x_gt_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_x_gt_max" has unsupported operation: llvm.extractvalue + +4: "sadd_x_gt_max" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_x_ge_max" +4: "sadd_x_ge_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_x_ge_max" has unsupported operation: llvm.extractvalue + +4: "sadd_x_ge_max" has unsupported operation: llvm.extractvalue + +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 + +4: "sadd_y_lt_min" has unsupported operation: llvm.extractvalue + +4: "sadd_y_lt_min" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_y_le_min" +4: "sadd_y_le_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_y_le_min" has unsupported operation: llvm.extractvalue + +4: "sadd_y_le_min" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_y_gt_min" +4: "sadd_y_gt_min" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_y_gt_max" +4: "sadd_y_gt_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_y_gt_max" has unsupported operation: llvm.extractvalue + +4: "sadd_y_gt_max" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_y_ge_max" +4: "sadd_y_ge_max" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_y_ge_max" has unsupported operation: llvm.extractvalue + +4: "sadd_y_ge_max" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_x_lt_min" has unsupported operation: llvm.extractvalue + +4: "ssub_x_lt_min" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_x_le_min" +4: "ssub_x_le_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_x_le_min" has unsupported operation: llvm.extractvalue + +4: "ssub_x_le_min" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_x_le_max" has unsupported operation: llvm.extractvalue + +4: "ssub_x_le_max" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_x_lt2_min" has unsupported operation: llvm.extractvalue + +4: "ssub_x_lt2_min" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_x_gt_min" +4: "ssub_x_gt_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_x_gt_min" has unsupported operation: llvm.extractvalue + +4: "ssub_x_gt_min" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_x_gt_max" has unsupported operation: llvm.extractvalue + +4: "ssub_x_gt_max" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_x_ge_max" +4: "ssub_x_ge_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_x_ge_max" has unsupported operation: llvm.extractvalue + +4: "ssub_x_ge_max" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_x_gt2_max" +4: "ssub_x_gt2_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_x_gt2_max" has unsupported operation: llvm.extractvalue + +4: "ssub_x_gt2_max" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_y_lt_max" +4: "ssub_y_lt_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_y_lt_max" has unsupported operation: llvm.extractvalue + +4: "ssub_y_lt_max" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_y_le_max" +4: "ssub_y_le_max" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_y_le_max" has unsupported operation: llvm.extractvalue + +4: "ssub_y_le_max" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_y_gt_min" has unsupported operation: llvm.extractvalue + +4: "ssub_y_gt_min" has unsupported operation: llvm.extractvalue + +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 + +1: "ssub_y_ge_min" +4: "ssub_y_ge_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "ssub_y_ge_min" has unsupported operation: llvm.extractvalue + +4: "ssub_y_ge_min" has unsupported operation: llvm.extractvalue + +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 + +1: "sadd_i32" +4: "sadd_i32" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_i32" +4: "ssub_i32" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "sadd_bounds" +4: "sadd_bounds" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "sadd_bounds" has unsupported operation: llvm.extractvalue + +4: "sadd_bounds" has unsupported operation: llvm.extractvalue + +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 + +4: "ssub_bounds" has unsupported operation: llvm.extractvalue + +4: "ssub_bounds" has unsupported operation: llvm.extractvalue + +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/partally-redundant-left-shift-input-masking-after-truncation-variant-a.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-a.txt new file mode 100644 index 000000000..2a38474a4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-a.txt @@ -0,0 +1,239 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause0" +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause1" +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n5_extrause1" has unsupported operation: llvm.call + +1: "n6_extrause2" +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_extrause2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-b.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-b.txt new file mode 100644 index 000000000..93f6023a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-b.txt @@ -0,0 +1,236 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4_allones_trunc" +4: "t4_allones_trunc" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause0" +4: "n5_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: llvm.call + +4: "n5_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n6_extrause1" +4: "n6_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_extrause1" has unsupported operation: llvm.call + +4: "n6_extrause1" has unsupported operation: llvm.call + +4: "n6_extrause1" has unsupported operation: llvm.call + +4: "n6_extrause1" has unsupported operation: llvm.call + +4: "n6_extrause1" has unsupported operation: llvm.call + +4: "n6_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_extrause1" has unsupported operation: llvm.call + +1: "n7_extrause2" +4: "n7_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: llvm.call + +4: "n7_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n7_extrause2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-c.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-c.txt new file mode 100644 index 000000000..c888e77a4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-c.txt @@ -0,0 +1,213 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause0" +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause1" +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n5_extrause1" has unsupported operation: llvm.call + +1: "n6_extrause2" +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_extrause2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-d.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-d.txt new file mode 100644 index 000000000..1220d907e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-d.txt @@ -0,0 +1,230 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause0" +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause1" +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n5_extrause1" has unsupported operation: llvm.call + +1: "n6_extrause2" +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_extrause2" has unsupported operation: llvm.call + +1: "PR51351" +4: "PR51351" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-e.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-e.txt new file mode 100644 index 000000000..dec9ff73b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-after-truncation-variant-e.txt @@ -0,0 +1,177 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_undef" +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause0" +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: llvm.call + +4: "n4_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause1" +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: llvm.call + +4: "n5_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n5_extrause1" has unsupported operation: llvm.call + +1: "n6_extrause2" +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: llvm.call + +4: "n6_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_extrause2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-a.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-a.txt new file mode 100644 index 000000000..5cf7d116b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-a.txt @@ -0,0 +1,147 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "use8xi32" +5: "use8xi32" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +1: "t1_vec_splat_poison" +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +1: "t2_vec_nonsplat" +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +1: "n3_extrause" +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-b.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-b.txt new file mode 100644 index 000000000..03c16f729 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-b.txt @@ -0,0 +1,129 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "use8xi32" +5: "use8xi32" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +1: "t1_vec_splat_poison" +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +1: "t2_vec_nonsplat" +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +1: "n3_extrause" +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-c.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-c.txt new file mode 100644 index 000000000..3e136e6f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-c.txt @@ -0,0 +1,91 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "use8xi32" +5: "use8xi32" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +1: "t1_vec_splat_poison" +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +4: "t1_vec_splat_poison" has unsupported operation: llvm.call + +1: "t1_vec_nonsplat" +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: llvm.call + +4: "t1_vec_nonsplat" has unsupported operation: llvm.call + +1: "n3_extrause" +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-d.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-d.txt new file mode 100644 index 000000000..503276f20 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-d.txt @@ -0,0 +1,101 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "use8xi32" +5: "use8xi32" is empty + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +1: "t2_vec_nonsplat" +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +4: "t2_vec_nonsplat" has unsupported operation: llvm.call + +1: "n3_extrause" +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-e.txt b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-e.txt new file mode 100644 index 000000000..c6ce44428 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/partally-redundant-left-shift-input-masking-variant-e.txt @@ -0,0 +1,93 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "use8xi32" +5: "use8xi32" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +1: "t1_vec_splat_undef" +4: "t1_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_splat_undef" has unsupported operation: llvm.call + +4: "t1_vec_splat_undef" has unsupported operation: llvm.call + +1: "t1_vec_nonsplat" +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t1_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t1_vec_nonsplat" has unsupported operation: llvm.call + +4: "t1_vec_nonsplat" has unsupported operation: llvm.call + +1: "n3_extrause" +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + +4: "n3_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-aware-aggregate-reconstruction.txt b/SSA/Projects/InstCombine/tests/logs/phi-aware-aggregate-reconstruction.txt new file mode 100644 index 000000000..f96c9d2ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-aware-aggregate-reconstruction.txt @@ -0,0 +1,2 @@ +3: phi-aware-aggregate-reconstruction.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-cse.txt b/SSA/Projects/InstCombine/tests/logs/phi-cse.txt new file mode 100644 index 000000000..9d40c2682 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-cse.txt @@ -0,0 +1,132 @@ +1: "test0" +4: "test0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test0" has unsupported operation: builtin.unregistered: llvm.br + +4: "test0" has unsupported operation: builtin.unregistered: llvm.br + +4: "test0" has unsupported operation: llvm.store + +4: "test0" has unsupported operation: llvm.store + +4: "test0" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.return + +1: "negative_test2" +4: "negative_test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negative_test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test2" has unsupported operation: llvm.store + +4: "negative_test2" has unsupported operation: llvm.store + +4: "negative_test2" has unsupported operation: llvm.return + +1: "negative_test3" +4: "negative_test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negative_test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test3" has unsupported operation: llvm.store + +4: "negative_test3" has unsupported operation: llvm.store + +4: "negative_test3" has unsupported operation: llvm.return + +1: "negative_test4" +4: "negative_test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negative_test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "negative_test4" has unsupported operation: llvm.store + +4: "negative_test4" has unsupported operation: llvm.store + +4: "negative_test4" has unsupported operation: llvm.return + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: llvm.store + +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: llvm.store + +4: "test6" has unsupported operation: llvm.return + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7" has unsupported operation: builtin.unregistered: llvm.br + +4: "test7" has unsupported operation: builtin.unregistered: llvm.br + +4: "test7" has unsupported operation: llvm.store + +4: "test7" has unsupported operation: llvm.store + +4: "test7" has unsupported operation: llvm.store + +4: "test7" has unsupported operation: llvm.return + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.br + +4: "test8" has unsupported operation: llvm.store + +4: "test8" has unsupported operation: llvm.store + +4: "test8" has unsupported operation: llvm.store + +4: "test8" has unsupported operation: llvm.return + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.br + +4: "test9" has unsupported operation: llvm.store + +4: "test9" has unsupported operation: llvm.store + +4: "test9" has unsupported operation: llvm.store + +4: "test9" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt b/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt new file mode 100644 index 000000000..c7599bfe9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-equal-incoming-pointers.txt @@ -0,0 +1,288 @@ +1: "get_ptr.i8" +5: "get_ptr.i8" is empty + +1: "get_ptr.i32" +5: "get_ptr.i32" is empty + +1: "foo.i8" +5: "foo.i8" is empty + +1: "foo.i32" +5: "foo.i32" is empty + +1: "test_gep_and_bitcast" +4: "test_gep_and_bitcast" has unsupported operation: llvm.call + +4: "test_gep_and_bitcast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast" has unsupported operation: llvm.load + +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 + +4: "test_gep_and_bitcast_arg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_arg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_arg" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_arg" has unsupported operation: llvm.load + +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 + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.call + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.call + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.call + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_phi" has unsupported operation: llvm.load + +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 + +4: "test_gep_i32ptr" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_i32ptr" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_i32ptr" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_i32ptr" has unsupported operation: llvm.getelementptr + +4: "test_gep_i32ptr" has unsupported operation: llvm.load + +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 + +4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_gep_base_ptr" has unsupported operation: llvm.load + +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 + +4: "test_gep_and_bitcast_same_bb" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast_same_bb" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_same_bb" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_same_bb" has unsupported operation: llvm.load + +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 + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.call + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.getelementptr + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_and_bitcast_same_bb_and_extra_use" has unsupported operation: llvm.load + +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 + +4: "test_gep" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep" has unsupported operation: llvm.getelementptr + +4: "test_gep" has unsupported operation: llvm.load + +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 + +4: "test_extra_uses" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_extra_uses" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses" has unsupported operation: llvm.load + +4: "test_extra_uses" has unsupported operation: llvm.call + +4: "test_extra_uses" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_extra_uses" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses" has unsupported operation: llvm.load + +4: "test_extra_uses" has unsupported operation: llvm.call + +4: "test_extra_uses" has unsupported operation: builtin.unregistered: llvm.br + +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 + +4: "test_extra_uses_non_inbounds" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.load + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.call + +4: "test_extra_uses_non_inbounds" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.load + +4: "test_extra_uses_non_inbounds" has unsupported operation: llvm.call + +4: "test_extra_uses_non_inbounds" has unsupported operation: builtin.unregistered: llvm.br + +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 + +4: "test_extra_uses_multiple_geps" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.load + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.call + +4: "test_extra_uses_multiple_geps" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.getelementptr + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.load + +4: "test_extra_uses_multiple_geps" has unsupported operation: llvm.call + +4: "test_extra_uses_multiple_geps" has unsupported operation: builtin.unregistered: llvm.br + +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 + +4: "test_gep_extra_uses" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_extra_uses" has unsupported operation: llvm.getelementptr + +4: "test_gep_extra_uses" has unsupported operation: llvm.load + +4: "test_gep_extra_uses" has unsupported operation: llvm.call + +4: "test_gep_extra_uses" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_extra_uses" has unsupported operation: llvm.getelementptr + +4: "test_gep_extra_uses" has unsupported operation: llvm.load + +4: "test_gep_extra_uses" has unsupported operation: llvm.call + +4: "test_gep_extra_uses" has unsupported operation: builtin.unregistered: llvm.br + +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 + +1: "test_dont_optimize_swifterror" +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.mlir.zero + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.alloca + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.alloca + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.call + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.call + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.store + +4: "test_dont_optimize_swifterror" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.load + +4: "test_dont_optimize_swifterror" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dont_optimize_swifterror" has unsupported operation: llvm.load + +4: "test_dont_optimize_swifterror" has unsupported operation: builtin.unregistered: llvm.br + +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-extractvalue.txt b/SSA/Projects/InstCombine/tests/logs/phi-extractvalue.txt new file mode 100644 index 000000000..a09718406 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-extractvalue.txt @@ -0,0 +1,2 @@ +3: phi-extractvalue.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-int-users.txt b/SSA/Projects/InstCombine/tests/logs/phi-int-users.txt new file mode 100644 index 000000000..48077f3f3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-int-users.txt @@ -0,0 +1,16 @@ +1: "f1" +4: "f1" has unsupported operation: builtin.unregistered: llvm.br + +4: "f1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f1" has unsupported operation: builtin.unregistered: llvm.br + +4: "f1" has unsupported operation: llvm.inttoptr + +4: "f1" has unsupported operation: llvm.store + +4: "f1" has unsupported operation: builtin.unregistered: llvm.br + +1: "f2" +4: "f2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-int2ptr-fold.txt b/SSA/Projects/InstCombine/tests/logs/phi-int2ptr-fold.txt new file mode 100644 index 000000000..29ffdee20 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-int2ptr-fold.txt @@ -0,0 +1,56 @@ +1: "func" +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + +4: "func" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "func_single_operand" +4: "func_single_operand" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_single_operand" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_single_operand" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "func_pointer_different_types" +4: "func_pointer_different_types" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_pointer_different_types" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_pointer_different_types" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "func_integer_type_too_small" +4: "func_integer_type_too_small" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_integer_type_too_small" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "func_integer_type_too_small" has unsupported operation: llvm.inttoptr + +4: "func_integer_type_too_small" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_integer_type_too_small" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "func_phi_not_use_in_ptr2int" +4: "func_phi_not_use_in_ptr2int" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_phi_not_use_in_ptr2int" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "func_phi_not_use_in_ptr2int" has unsupported operation: llvm.inttoptr + +4: "func_phi_not_use_in_ptr2int" has unsupported operation: builtin.unregistered: llvm.br + +1: "func_ptr_different_addrspace" +4: "func_ptr_different_addrspace" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func_ptr_different_addrspace" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "func_ptr_different_addrspace" has unsupported operation: builtin.unregistered: llvm.zext + +4: "func_ptr_different_addrspace" has unsupported operation: llvm.inttoptr + +4: "func_ptr_different_addrspace" has unsupported operation: builtin.unregistered: llvm.br + +4: "func_ptr_different_addrspace" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-known-bits-operand-order.txt b/SSA/Projects/InstCombine/tests/logs/phi-known-bits-operand-order.txt new file mode 100644 index 000000000..caff0f8b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-known-bits-operand-order.txt @@ -0,0 +1,41 @@ +1: "cond" +5: "cond" is empty + +1: "phi_recurrence_start_first" +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_recurrence_start_first" has unsupported operation: llvm.call + +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_start_first" has unsupported operation: llvm.call + +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_start_first" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_recurrence_start_first" has unsupported operation: llvm.return + +1: "phi_recurrence_step_first" +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_recurrence_step_first" has unsupported operation: llvm.call + +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_step_first" has unsupported operation: llvm.call + +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_recurrence_step_first" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_recurrence_step_first" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-2.txt b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-2.txt new file mode 100644 index 000000000..fcc5dca4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-2.txt @@ -0,0 +1,19 @@ +1: "bar" +5: "bar" is empty + +1: "baz" +5: "baz" is empty + +1: "test_phi_combine_load_metadata" +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-3.txt b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-3.txt new file mode 100644 index 000000000..fcc5dca4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-3.txt @@ -0,0 +1,19 @@ +1: "bar" +5: "bar" is empty + +1: "baz" +5: "baz" is empty + +1: "test_phi_combine_load_metadata" +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-4.txt b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-4.txt new file mode 100644 index 000000000..d73db9ce8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-4.txt @@ -0,0 +1,32 @@ +1: "bar" +5: "bar" is empty + +1: "baz" +5: "baz" is empty + +1: "test_phi_combine_load_metadata" +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.load + +1: "test_phi_combine_load_metadata_negative" +4: "test_phi_combine_load_metadata_negative" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_phi_combine_load_metadata_negative" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata_negative" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata_negative" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata_negative" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata_negative" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-dominance.txt b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-dominance.txt new file mode 100644 index 000000000..0ea22408c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata-dominance.txt @@ -0,0 +1,19 @@ +1: "bar" +5: "bar" is empty + +1: "baz" +5: "baz" is empty + +1: "test_combine_metadata_dominance" +4: "test_combine_metadata_dominance" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_combine_metadata_dominance" has unsupported operation: llvm.call + +4: "test_combine_metadata_dominance" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_combine_metadata_dominance" has unsupported operation: llvm.call + +4: "test_combine_metadata_dominance" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_combine_metadata_dominance" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-load-metadata.txt b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata.txt new file mode 100644 index 000000000..fcc5dca4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-load-metadata.txt @@ -0,0 +1,19 @@ +1: "bar" +5: "bar" is empty + +1: "baz" +5: "baz" is empty + +1: "test_phi_combine_load_metadata" +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.call + +4: "test_phi_combine_load_metadata" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_combine_load_metadata" has unsupported operation: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-merge-gep.txt b/SSA/Projects/InstCombine/tests/logs/phi-merge-gep.txt new file mode 100644 index 000000000..4f09ecf21 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-merge-gep.txt @@ -0,0 +1,109 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "foo" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-of-insertvalues.txt b/SSA/Projects/InstCombine/tests/logs/phi-of-insertvalues.txt new file mode 100644 index 000000000..7a36a26c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-of-insertvalues.txt @@ -0,0 +1,2 @@ +3: phi-of-insertvalues.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-pointercasts.txt b/SSA/Projects/InstCombine/tests/logs/phi-pointercasts.txt new file mode 100644 index 000000000..fa6c90148 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-pointercasts.txt @@ -0,0 +1,208 @@ +1: "test_bitcast_1" +4: "test_bitcast_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_1" has unsupported operation: llvm.call + +4: "test_bitcast_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_1" has unsupported operation: llvm.store + +4: "test_bitcast_1" has unsupported operation: llvm.return + +1: "test_bitcast_2" +4: "test_bitcast_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_2" has unsupported operation: llvm.call + +4: "test_bitcast_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_2" has unsupported operation: llvm.store + +4: "test_bitcast_2" has unsupported operation: llvm.return + +1: "test_bitcast_3" +4: "test_bitcast_3" has unsupported operation: llvm.load + +4: "test_bitcast_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_3" has unsupported operation: llvm.call + +4: "test_bitcast_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_3" has unsupported operation: llvm.store + +4: "test_bitcast_3" has unsupported operation: llvm.return + +1: "test_bitcast_loads_in_different_bbs" +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: llvm.load + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: llvm.call + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: llvm.load + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: llvm.store + +4: "test_bitcast_loads_in_different_bbs" has unsupported operation: llvm.return + +1: "test_gep_1" +4: "test_gep_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_gep_1" has unsupported operation: llvm.call + +4: "test_gep_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_gep_1" has unsupported operation: llvm.store + +4: "test_gep_1" has unsupported operation: llvm.return + +1: "test_bitcast_not_foldable" +4: "test_bitcast_not_foldable" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_not_foldable" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_not_foldable" has unsupported operation: llvm.call + +4: "test_bitcast_not_foldable" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_not_foldable" has unsupported operation: llvm.store + +4: "test_bitcast_not_foldable" has unsupported operation: llvm.return + +1: "test_bitcast_with_extra_use" +4: "test_bitcast_with_extra_use" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_with_extra_use" has unsupported operation: llvm.call + +4: "test_bitcast_with_extra_use" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_with_extra_use" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_with_extra_use" has unsupported operation: llvm.store + +4: "test_bitcast_with_extra_use" has unsupported operation: llvm.return + +1: "test_bitcast_different_bases" +4: "test_bitcast_different_bases" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_different_bases" has unsupported operation: llvm.call + +4: "test_bitcast_different_bases" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_different_bases" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_different_bases" has unsupported operation: llvm.store + +4: "test_bitcast_different_bases" has unsupported operation: llvm.return + +1: "test_bitcast_gep_chains" +4: "test_bitcast_gep_chains" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_bitcast_gep_chains" has unsupported operation: llvm.call + +4: "test_bitcast_gep_chains" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_gep_chains" has unsupported operation: llvm.call + +4: "test_bitcast_gep_chains" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_bitcast_gep_chains" has unsupported operation: llvm.store + +4: "test_bitcast_gep_chains" has unsupported operation: llvm.return + +1: "test_4_incoming_values_different_bases_1" +4: "test_4_incoming_values_different_bases_1" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: llvm.call + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: llvm.store + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: llvm.return + +4: "test_4_incoming_values_different_bases_1" has unsupported operation: llvm.return + +1: "test_4_incoming_values_different_bases_2" +4: "test_4_incoming_values_different_bases_2" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: llvm.call + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: llvm.store + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: llvm.return + +4: "test_4_incoming_values_different_bases_2" has unsupported operation: llvm.return + +1: "test_4_incoming_values_different_bases_3" +4: "test_4_incoming_values_different_bases_3" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: llvm.call + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: llvm.store + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: llvm.return + +4: "test_4_incoming_values_different_bases_3" has unsupported operation: llvm.return + +1: "test_addrspacecast_1" +4: "test_addrspacecast_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_addrspacecast_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_addrspacecast_1" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "test_addrspacecast_1" has unsupported operation: llvm.call + +4: "test_addrspacecast_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_addrspacecast_1" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "test_addrspacecast_1" has unsupported operation: llvm.store + +4: "test_addrspacecast_1" has unsupported operation: llvm.return + +1: "use" +5: "use" is empty + +1: "use.i32" +5: "use.i32" is empty + +1: "use.i8.addrspace1" +5: "use.i8.addrspace1" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-preserve-ir-flags.txt b/SSA/Projects/InstCombine/tests/logs/phi-preserve-ir-flags.txt new file mode 100644 index 000000000..0b0f89725 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-preserve-ir-flags.txt @@ -0,0 +1,36 @@ +1: "func1" +4: "func1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func1" has unsupported operation: builtin.unregistered: llvm.br + +4: "func1" has unsupported operation: builtin.unregistered: llvm.br + +4: "func1" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "func2" +4: "func2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func2" has unsupported operation: builtin.unregistered: llvm.br + +4: "func2" has unsupported operation: builtin.unregistered: llvm.br + +4: "func2" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "func3" +4: "func3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func3" has unsupported operation: builtin.unregistered: llvm.br + +4: "func3" has unsupported operation: builtin.unregistered: llvm.br + +4: "func3" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "func4" +4: "func4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func4" has unsupported operation: builtin.unregistered: llvm.br + +4: "func4" has unsupported operation: builtin.unregistered: llvm.br + +4: "func4" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt b/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt new file mode 100644 index 000000000..572f52857 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-select-constant.txt @@ -0,0 +1,94 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +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" +4: "vec1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "vec1" has unsupported operation: builtin.unregistered: llvm.br + +1: "vec2" +4: "vec2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "vec2" has unsupported operation: builtin.unregistered: llvm.br + +1: "vec3" +4: "vec3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "vec3" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +4: "PR48369" has unsupported operation: llvm.return + +1: "sink_to_unreachable_crash" +4: "sink_to_unreachable_crash" has unsupported operation: builtin.unregistered: llvm.br + +4: "sink_to_unreachable_crash" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_trans" +4: "phi_trans" has unsupported operation: builtin.unregistered: llvm.cond_br + +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" +4: "dominating_values_select_same_block" has unsupported operation: llvm.load + +4: "dominating_values_select_same_block" has unsupported operation: builtin.unregistered: llvm.cond_br + +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" +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.cond_br + +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 + +1: "not_dominating_values" +4: "not_dominating_values" has unsupported operation: llvm.load + +4: "not_dominating_values" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "not_dominating_values" has unsupported operation: builtin.unregistered: llvm.br + +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-shifts.txt b/SSA/Projects/InstCombine/tests/logs/phi-shifts.txt new file mode 100644 index 000000000..2d1802cf6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-shifts.txt @@ -0,0 +1,7 @@ +1: "fuzz15217" +4: "fuzz15217" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fuzz15217" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "fuzz15217" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-timeout.txt b/SSA/Projects/InstCombine/tests/logs/phi-timeout.txt new file mode 100644 index 000000000..26dc027de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi-timeout.txt @@ -0,0 +1,23 @@ +1: "timeout" +4: "timeout" has unsupported operation: builtin.unregistered: llvm.br + +4: "timeout" has unsupported operation: llvm.getelementptr + +4: "timeout" has unsupported operation: llvm.load + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "timeout" has unsupported operation: llvm.load + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.br + +4: "timeout" has unsupported operation: llvm.store + +4: "timeout" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/phi-with-multiple-unsimplifiable-values.txt b/SSA/Projects/InstCombine/tests/logs/phi-with-multiple-unsimplifiable-values.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/phi.txt b/SSA/Projects/InstCombine/tests/logs/phi.txt new file mode 100644 index 000000000..7c26ac1d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/phi.txt @@ -0,0 +1,1021 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test4" +7: "test4" is unchanged by InstCombine + +1: "test5_undef" +4: "test5_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5_undef" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test5_poison" +4: "test5_poison" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5_poison" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_dead_cycle" +4: "test_dead_cycle" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_cycle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_dead_UnaryOp_cycle" +4: "test_dead_UnaryOp_cycle" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_UnaryOp_cycle" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_dead_cycle_two_insts" +4: "test_dead_cycle_two_insts" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_cycle_two_insts" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_dead_cycle_intrin" +4: "test_dead_cycle_intrin" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_cycle_intrin" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "test_dead_cycle_intrin" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.br + +4: "test8" has unsupported operation: llvm.getelementptr + +1: "test9" +4: "test9" has unsupported operation: llvm.mlir.zero + +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.br + +4: "test9" has unsupported operation: llvm.load + +1: "test10" +4: "test10" has unsupported operation: llvm.mlir.zero + +4: "test10" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test10" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test10" has unsupported operation: builtin.unregistered: llvm.br + +4: "test10" has unsupported operation: builtin.unregistered: llvm.br + +4: "test10" has unsupported operation: llvm.load + +1: "test11a" +5: "test11a" is empty + +1: "test11" +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11" has unsupported operation: llvm.call + +4: "test11" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11" has unsupported operation: llvm.call + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12" has unsupported operation: builtin.unregistered: llvm.br + +4: "test12" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test13f" +5: "test13f" is empty + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test13" has unsupported operation: builtin.unregistered: llvm.br + +4: "test13" has unsupported operation: llvm.call + +4: "test13" has unsupported operation: llvm.return + +1: "test14a" +4: "test14a" has unsupported operation: builtin.unregistered: llvm.br + +4: "test14a" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test14a" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test14b" +4: "test14b" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test14b" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test14b" has unsupported operation: builtin.unregistered: llvm.br + +4: "test14b" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test15a" +5: "test15a" is empty + +1: "test15b" +4: "test15b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test15b" has unsupported operation: llvm.call + +4: "test15b" has unsupported operation: builtin.unregistered: llvm.br + +4: "test15b" has unsupported operation: llvm.call + +4: "test15b" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test15b" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test16" +4: "test16" has unsupported operation: llvm.alloca + +4: "test16" has unsupported operation: llvm.alloca + +4: "test16" has unsupported operation: llvm.alloca + +4: "test16" has unsupported operation: llvm.store + +4: "test16" has unsupported operation: llvm.store + +4: "test16" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test16" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test16" has unsupported operation: llvm.load + +4: "test16" has unsupported operation: llvm.store + +4: "test16" has unsupported operation: builtin.unregistered: llvm.br + +4: "test16" has unsupported operation: llvm.load + +4: "test16" has unsupported operation: llvm.load + +4: "test16" has unsupported operation: builtin.unregistered: llvm.br + +4: "test16" has unsupported operation: llvm.load + +4: "test16" has unsupported operation: llvm.load + +4: "test16" has unsupported operation: builtin.unregistered: llvm.br + +1: "ext" +5: "ext" is empty + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test17" has unsupported operation: llvm.call + +4: "test17" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR51435" +4: "PR51435" has unsupported operation: llvm.load + +4: "PR51435" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR51435" has unsupported operation: llvm.load + +4: "PR51435" has unsupported operation: builtin.unregistered: llvm.br + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test18" has unsupported operation: builtin.unregistered: llvm.br + +4: "test18" has unsupported operation: builtin.unregistered: llvm.br + +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test19" has unsupported operation: builtin.unregistered: llvm.br + +4: "test19" has unsupported operation: builtin.unregistered: llvm.br + +1: "test20" +4: "test20" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test20" has unsupported operation: builtin.unregistered: llvm.br + +4: "test20" has unsupported operation: builtin.unregistered: llvm.br + +1: "test21" +4: "test21" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test21" has unsupported operation: builtin.unregistered: llvm.br + +4: "test21" has unsupported operation: builtin.unregistered: llvm.br + +4: "test21" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test22" +4: "test22" has unsupported operation: builtin.unregistered: llvm.br + +4: "test22" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test22" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test22" has unsupported operation: llvm.return + +1: "test23" +4: "test23" has unsupported operation: builtin.unregistered: llvm.br + +4: "test23" has unsupported operation: llvm.store + +4: "test23" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test24" +4: "test24" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test24" has unsupported operation: builtin.unregistered: llvm.br + +1: "test25a" +5: "test25a" is empty + +1: "test25" +4: "test25" has unsupported operation: llvm.call + +4: "test25" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25" has unsupported operation: llvm.call + +4: "test25" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25" has unsupported operation: llvm.call + +4: "test25" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25" has unsupported operation: llvm.call + +1: "test25b" +4: "test25b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25b" has unsupported operation: builtin.unregistered: llvm.br + +4: "test25b" has unsupported operation: llvm.call + +4: "test25b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25b" has unsupported operation: llvm.call + +4: "test25b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25b" has unsupported operation: llvm.call + +4: "test25b" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test25b" has unsupported operation: llvm.inttoptr + +4: "test25b" has unsupported operation: llvm.store + +4: "test25b" has unsupported operation: llvm.call + +1: "test26a" +5: "test26a" is empty + +1: "test26" +4: "test26" has unsupported operation: llvm.call + +4: "test26" has unsupported operation: builtin.unregistered: llvm.br + +4: "test26" has unsupported operation: llvm.call + +4: "test26" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test26" has unsupported operation: llvm.call + +4: "test26" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test26" has unsupported operation: llvm.call + +4: "test26" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test26" has unsupported operation: llvm.call + +1: "test27" +4: "test27" has unsupported operation: llvm.mlir.undef + +4: "test27" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR24766" +4: "PR24766" has unsupported operation: builtin.unregistered: llvm.switch + +4: "PR24766" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR24766" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR24766_no_constants" +4: "PR24766_no_constants" has unsupported operation: builtin.unregistered: llvm.switch + +4: "PR24766_no_constants" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766_no_constants" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR24766_no_constants" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766_no_constants" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR24766_two_constants" +4: "PR24766_two_constants" has unsupported operation: builtin.unregistered: llvm.switch + +4: "PR24766_two_constants" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766_two_constants" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR24766_two_constants" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR24766_two_constants_two_var" +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.switch + +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR24766_two_constants_two_var" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_allnonzeroconstant" +4: "phi_allnonzeroconstant" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_allnonzeroconstant" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_allnonzeroconstant" has unsupported operation: llvm.call + +4: "phi_allnonzeroconstant" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_allnonzerononconstant" +4: "phi_allnonzerononconstant" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_allnonzerononconstant" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_allnonzerononconstant" has unsupported operation: llvm.call + +4: "phi_allnonzerononconstant" has unsupported operation: builtin.unregistered: llvm.br + +1: "dummy" +5: "dummy" is empty + +1: "phi_knownnonzero_eq" +4: "phi_knownnonzero_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_ne" +4: "phi_knownnonzero_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_eq_2" +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_ne_2" +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_ne_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_eq_oricmp" +4: "phi_knownnonzero_eq_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_oricmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_oricmp" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_eq_oricmp_commuted" +4: "phi_knownnonzero_eq_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_eq_or_disjoint_icmp" +4: "phi_knownnonzero_eq_or_disjoint_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_or_disjoint_icmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_or_disjoint_icmp" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq_or_disjoint_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_ne_oricmp" +4: "phi_knownnonzero_ne_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_oricmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_oricmp" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_ne_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_ne_oricmp_commuted" +4: "phi_knownnonzero_ne_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_ne_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_knownnonzero_eq_multiuse_oricmp" +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_eq_multiuse_oricmp" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_knownnonzero_ne_multiuse_oricmp_commuted" +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "phi_knownnonzero_ne_multiuse_oricmp_commuted" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_knownnonzero_eq_multiuse_andicmp" +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.cond_br + +4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: llvm.load + +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 + +4: "phi_knownnonzero_eq_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +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.br + +1: "phi_knownnonzero_ne_multiuse_andicmp" +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.cond_br + +4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: llvm.load + +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 + +4: "phi_knownnonzero_ne_multiuse_andicmp" has unsupported operation: builtin.unregistered: llvm.cond_br + +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.br + +1: "main" +4: "main" has unsupported operation: llvm.mlir.undef + +4: "main" has unsupported operation: llvm.mlir.undef + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.return + +1: "pr57488_icmp_of_phi" +4: "pr57488_icmp_of_phi" has unsupported operation: llvm.getelementptr + +4: "pr57488_icmp_of_phi" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr57488_icmp_of_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr57488_icmp_of_phi" has unsupported operation: llvm.getelementptr + +4: "pr57488_icmp_of_phi" has unsupported operation: llvm.load + +4: "pr57488_icmp_of_phi" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr57488_icmp_of_phi" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr57488_icmp_of_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "use" +5: "use" is empty + +1: "get.i1" +5: "get.i1" is empty + +1: "phi_op_self_simplify" +4: "phi_op_self_simplify" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_op_self_simplify" has unsupported operation: llvm.call + +4: "phi_op_self_simplify" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_op_self_simplify_2" +4: "phi_op_self_simplify_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_op_self_simplify_2" has unsupported operation: llvm.call + +4: "phi_op_self_simplify_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_op_self_simplify_2" has unsupported operation: llvm.call + +4: "phi_op_self_simplify_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "inttoptr_of_phi" +4: "inttoptr_of_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "inttoptr_of_phi" has unsupported operation: llvm.load + +4: "inttoptr_of_phi" has unsupported operation: llvm.inttoptr + +4: "inttoptr_of_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "inttoptr_of_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "inttoptr_of_phi" has unsupported operation: llvm.load + +1: "simplify_context_instr" +4: "simplify_context_instr" has unsupported operation: llvm.getelementptr + +4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.br + +4: "simplify_context_instr" has unsupported operation: llvm.load + +4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "simplify_context_instr" has unsupported operation: llvm.getelementptr + +4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "simplify_context_instr" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "simplify_context_instr" has unsupported operation: llvm.return + +1: "add_two_phi_node_can_fold" +4: "add_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "add_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "add_two_phi_node_cannt_fold" +4: "add_two_phi_node_cannt_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "add_two_phi_node_cannt_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "or_two_phi_node_can_fold" +4: "or_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "or_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "and_two_phi_node_can_fold" +4: "and_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "and_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "mul_two_phi_node_can_fold" +4: "mul_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "mul_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "xor_two_phi_node_can_fold" +4: "xor_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "xor_two_phi_node_can_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "sub_two_phi_node_cant_fold" +4: "sub_two_phi_node_cant_fold" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sub_two_phi_node_cant_fold" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_eq_phi_node_can_fold_1" +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_eq_phi_node_can_fold_2" +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_eq_phi_node_can_fold_3" +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_eq_phi_node_can_fold_4" +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: llvm.getelementptr + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_eq_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_ne_phi_node_can_fold_1" +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_ne_phi_node_can_fold_2" +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_ne_phi_node_can_fold_3" +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_3" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_ne_phi_node_can_fold_4" +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: llvm.getelementptr + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: llvm.load + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_ne_phi_node_can_fold_4" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_sgt_phi_node_can_fold_1" +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_sgt_phi_node_can_fold_2" +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_sgt_phi_node_cant_fold_1" +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "cmp_sgt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_sgt_phi_node_cant_fold_2" +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "cmp_sgt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_slt_phi_node_can_fold_1" +4: "cmp_slt_phi_node_can_fold_1" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_can_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_slt_phi_node_can_fold_2" +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_can_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "cmp_slt_phi_node_cant_fold_1" +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: llvm.getelementptr + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "cmp_slt_phi_node_cant_fold_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "cmp_slt_phi_node_cant_fold_2" +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: llvm.getelementptr + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: llvm.load + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "cmp_slt_phi_node_cant_fold_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "phi_op_in_loop" +4: "phi_op_in_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_op_in_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_op_in_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_op_in_loop" has unsupported operation: llvm.call + +4: "phi_op_in_loop" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_dead_phi_web" +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_dead_phi_web" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_dead_phi_web" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-0.txt b/SSA/Projects/InstCombine/tests/logs/pow-0.txt new file mode 100644 index 000000000..d44a2e022 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-0.txt @@ -0,0 +1,24 @@ +1: "zero" +4: "zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "minus_zero" +4: "minus_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "fast_zero" +4: "fast_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "fast_minus_zero" +4: "fast_minus_zero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "vec_zero" +"vec_zero" contains vectors which are unsupported + +1: "vec_minus_zero" +"vec_minus_zero" contains vectors which are unsupported + +1: "vec_fast_zero" +"vec_fast_zero" contains vectors which are unsupported + +1: "vec_fast_minus_zero" +"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 new file mode 100644 index 000000000..d4b483ee8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-1.txt @@ -0,0 +1,277 @@ +1: "powf" +5: "powf" is empty + +1: "pow" +5: "pow" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify1_noerrno" +4: "test_simplify1_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify1v" +"test_simplify1v" contains vectors which are unsupported + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify2_noerrno" +4: "test_simplify2_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify2v" +"test_simplify2v" contains vectors which are unsupported + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.call + +1: "test_simplify3_noerrno" +4: "test_simplify3_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify3n_noerrno" +4: "test_simplify3n_noerrno" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_simplify3n_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify3v" +4: "test_simplify3v" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify3vn" +4: "test_simplify3vn" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_simplify3vn" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.call + +1: "test_simplify4_noerrno" +4: "test_simplify4_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify4n" +4: "test_simplify4n" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_simplify4n" has unsupported operation: llvm.call + +1: "test_simplify4n_noerrno" +4: "test_simplify4n_noerrno" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_simplify4n_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify4v" +4: "test_simplify4v" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify4vn" +4: "test_simplify4vn" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "test_simplify4vn" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +1: "test_simplify5_noerrno" +4: "test_simplify5_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify5v" +"test_simplify5v" contains vectors which are unsupported + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation after optimization: llvm.call + +1: "test_simplify6_noerrno" +4: "test_simplify6_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify6v" +"test_simplify6v" contains vectors which are unsupported + +1: "powf_libcall_half_ninf" +4: "powf_libcall_half_ninf" has unsupported operation: llvm.call + +4: "powf_libcall_half_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "powf_libcall_half_ninf_noerrno" +4: "powf_libcall_half_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "powf_libcall_half_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "powf_libcall_half_assume_ninf_noerrno" +4: "powf_libcall_half_assume_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "powf_libcall_half_assume_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "powf_libcall_half_assume_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "powf_libcall_half_assume_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "powf_libcall_half_assume_ninf_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "powf_libcall_half_ninf_tail" +4: "powf_libcall_half_ninf_tail" has unsupported operation: llvm.call + +4: "powf_libcall_half_ninf_tail" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "powf_libcall_half_ninf_tail_noerrno" +4: "powf_libcall_half_ninf_tail_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "powf_libcall_half_ninf_tail_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "powf_libcall_half_ninf_musttail" +4: "powf_libcall_half_ninf_musttail" has unsupported operation: llvm.call + +1: "powf_libcall_half_ninf_musttail_noerrno" +4: "powf_libcall_half_ninf_musttail_noerrno" has unsupported operation: llvm.call + +1: "pow_libcall_half_no_FMF" +4: "pow_libcall_half_no_FMF" has unsupported operation: llvm.call + +1: "pow_libcall_half_fromdomcondition" +4: "pow_libcall_half_fromdomcondition" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_libcall_half_fromdomcondition" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "pow_libcall_half_fromdomcondition" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pow_libcall_half_fromdomcondition" has unsupported operation: llvm.call + +4: "pow_libcall_half_fromdomcondition" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "pow_libcall_half_no_FMF_noerrno" +4: "pow_libcall_half_no_FMF_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_libcall_half_no_FMF_noerrno" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "test_simplify11" +4: "test_simplify11" has unsupported operation after optimization: llvm.call + +1: "test_simplify11_noerrno" +4: "test_simplify11_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify11v" +"test_simplify11v" contains vectors which are unsupported + +1: "test_simplify12" +4: "test_simplify12" has unsupported operation after optimization: llvm.call + +1: "test_simplify12_noerrno" +4: "test_simplify12_noerrno" has unsupported operation after optimization: llvm.call + +1: "test_simplify12v" +"test_simplify12v" contains vectors which are unsupported + +1: "pow2_strict" +4: "pow2_strict" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_strict_noerrno" +4: "pow2_strict_noerrno" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_strictv" +4: "pow2_strictv" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_double_strict" +4: "pow2_double_strict" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_double_strict_noerrno" +4: "pow2_double_strict_noerrno" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_double_strictv" +4: "pow2_double_strictv" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_fast" +4: "pow2_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow2_fast_noerrno" +4: "pow2_fast_noerrno" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "pow_neg1_strict" +4: "pow_neg1_strict" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_neg1_strict_noerrno" +4: "pow_neg1_strict_noerrno" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_neg1_strictv" +4: "pow_neg1_strictv" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_neg1_double_fast" +4: "pow_neg1_double_fast" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_neg1_double_fast_noerrno" +4: "pow_neg1_double_fast_noerrno" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_neg1_double_fastv" +4: "pow_neg1_double_fastv" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_intrinsic_half_no_FMF" +4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "test_simplify18_noerrno" +4: "test_simplify18_noerrno" has unsupported operation: llvm.call + +1: "test_simplify19" +4: "test_simplify19" has unsupported operation: llvm.call + +1: "test_simplify19_noerrno" +4: "test_simplify19_noerrno" has unsupported operation: llvm.call + +1: "test_libcall_powf_10_f32_noerrno" +4: "test_libcall_powf_10_f32_noerrno" has unsupported operation: llvm.call + +1: "test_libcall_pow_10_f64_noerrno" +4: "test_libcall_pow_10_f64_noerrno" has unsupported operation: llvm.call + +1: "test_pow_10_f16" +4: "test_pow_10_f16" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_f32" +4: "test_pow_10_f32" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_f64" +4: "test_pow_10_f64" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_fp128" +4: "test_pow_10_fp128" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_bf16" +4: "test_pow_10_bf16" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_v2f16" +4: "test_pow_10_v2f16" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_v2f32" +4: "test_pow_10_v2f32" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_v2f64" +4: "test_pow_10_v2f64" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_pow_10_v2bf16" +4: "test_pow_10_v2bf16" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "exp2f" +5: "exp2f" is empty + +1: "exp2" +5: "exp2" is empty + +1: "sqrtf" +5: "sqrtf" is empty + +1: "sqrt" +5: "sqrt" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-2.txt b/SSA/Projects/InstCombine/tests/logs/pow-2.txt new file mode 100644 index 000000000..ccf918a60 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-2.txt @@ -0,0 +1,6 @@ +1: "pow" +5: "pow" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" 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 new file mode 100644 index 000000000..b2ad68783 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-3.txt @@ -0,0 +1,30 @@ +1: "pow" +5: "pow" is empty + +1: "sqrt_libcall" +4: "sqrt_libcall" has unsupported operation: llvm.call + +1: "sqrt_intrinsic" +4: "sqrt_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "sqrt_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "shrink_intrinsic" +4: "shrink_intrinsic" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "shrink_intrinsic" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "shrink_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.pow + +4: "shrink_intrinsic" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "powf" +5: "powf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-4.txt b/SSA/Projects/InstCombine/tests/logs/pow-4.txt new file mode 100644 index 000000000..f16ad3453 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-4.txt @@ -0,0 +1,85 @@ +1: "pow" +5: "pow" is empty + +1: "test_simplify_3" +4: "test_simplify_3" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_4f" +4: "test_simplify_4f" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_4" +4: "test_simplify_4" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_15" +4: "test_simplify_15" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_neg_7" +4: "test_simplify_neg_7" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_neg_19" +4: "test_simplify_neg_19" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_11_23" +4: "test_simplify_11_23" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "test_simplify_32" +4: "test_simplify_32" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_33" +4: "test_simplify_33" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "test_simplify_16_5" +4: "test_simplify_16_5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "test_simplify_16_5" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "test_simplify_16_5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_simplify_neg_16_5" +4: "test_simplify_neg_16_5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "test_simplify_neg_16_5" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "test_simplify_neg_16_5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_simplify_0_5_libcall" +4: "test_simplify_0_5_libcall" has unsupported operation: llvm.call + +1: "test_simplify_neg_0_5_libcall" +4: "test_simplify_neg_0_5_libcall" has unsupported operation: llvm.call + +4: "test_simplify_neg_0_5_libcall" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "test_simplify_neg_8_5" +4: "test_simplify_neg_8_5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "test_simplify_neg_8_5" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "test_simplify_neg_8_5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_simplify_7_5" +4: "test_simplify_7_5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "test_simplify_7_5" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "test_simplify_7_5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "test_simplify_3_5" +4: "test_simplify_3_5" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "test_simplify_3_5" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "test_simplify_3_5" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "shrink_pow_libcall_half" +4: "shrink_pow_libcall_half" has unsupported operation: llvm.call + +1: "PR43233" +4: "PR43233" has unsupported operation after optimization: builtin.unregistered: llvm.intr.pow + +1: "sqrt" +5: "sqrt" is empty + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-cbrt.txt b/SSA/Projects/InstCombine/tests/logs/pow-cbrt.txt new file mode 100644 index 000000000..b0197ca18 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-cbrt.txt @@ -0,0 +1,42 @@ +1: "pow_intrinsic_third_fast" +4: "pow_intrinsic_third_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_intrinsic_third_fast" +4: "powf_intrinsic_third_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_intrinsic_third_approx" +4: "pow_intrinsic_third_approx" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_intrinsic_third_approx" +4: "powf_intrinsic_third_approx" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_libcall_third_fast" +4: "pow_libcall_third_fast" has unsupported operation: llvm.call + +1: "powf_libcall_third_fast" +4: "powf_libcall_third_fast" has unsupported operation: llvm.call + +1: "pow_intrinsic_negthird_fast" +4: "pow_intrinsic_negthird_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_intrinsic_negthird_fast" +4: "powf_intrinsic_negthird_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_intrinsic_negthird_approx" +4: "pow_intrinsic_negthird_approx" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_intrinsic_negthird_approx" +4: "powf_intrinsic_negthird_approx" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_libcall_negthird_fast" +4: "pow_libcall_negthird_fast" has unsupported operation: llvm.call + +1: "powf_libcall_negthird_fast" +4: "powf_libcall_negthird_fast" has unsupported operation: llvm.call + +1: "pow" +5: "pow" is empty + +1: "powf" +5: "powf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-exp-nofastmath.txt b/SSA/Projects/InstCombine/tests/logs/pow-exp-nofastmath.txt new file mode 100644 index 000000000..e8d0b6825 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-exp-nofastmath.txt @@ -0,0 +1,8 @@ +1: "mypow" +4: "mypow" has unsupported operation: llvm.call + +4: "mypow" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "exp" +5: "exp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-exp.txt b/SSA/Projects/InstCombine/tests/logs/pow-exp.txt new file mode 100644 index 000000000..5231de0ab --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-exp.txt @@ -0,0 +1,252 @@ +1: "powf_expf" +4: "powf_expf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_expf" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "powf_expf_libcall" +4: "powf_expf_libcall" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_expf_libcall" has unsupported operation: llvm.call + +1: "pow_exp" +4: "pow_exp" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_exp" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "pow_exp_not_intrinsic" +4: "pow_exp_not_intrinsic" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_exp_not_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "powl_expl" +4: "powl_expl" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powl_expl" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "powl_expl_not_fast" +4: "powl_expl_not_fast" has unsupported operation: llvm.call + +4: "powl_expl_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_exp2f" +4: "powf_exp2f" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_exp2f" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "powf_exp2f_not_intrinsic" +4: "powf_exp2f_not_intrinsic" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_exp2f_not_intrinsic" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "pow_exp2" +4: "pow_exp2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_exp2" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "pow_exp2_libcall" +4: "pow_exp2_libcall" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_exp2_libcall" has unsupported operation: llvm.call + +1: "powl_exp2l" +4: "powl_exp2l" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powl_exp2l" has unsupported operation: builtin.unregistered: llvm.intr.exp2 + +1: "powl_exp2l_not_fast" +4: "powl_exp2l_not_fast" has unsupported operation: llvm.call + +4: "powl_exp2l_not_fast" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "powf_exp10f" +4: "powf_exp10f" has unsupported operation: llvm.call + +4: "powf_exp10f" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_exp10" +4: "pow_exp10" has unsupported operation: llvm.call + +4: "pow_exp10" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_exp10l" +4: "pow_exp10l" has unsupported operation: llvm.call + +4: "pow_exp10l" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "reuse_fast" +4: "reuse_fast" has unsupported operation: llvm.call + +4: "reuse_fast" has unsupported operation: llvm.call + +4: "reuse_fast" has unsupported operation: llvm.store + +1: "reuse_libcall" +4: "reuse_libcall" has unsupported operation: llvm.call + +4: "reuse_libcall" has unsupported operation: llvm.call + +4: "reuse_libcall" has unsupported operation: llvm.store + +1: "function_pointer" +4: "function_pointer" has unsupported operation: llvm.call + +4: "function_pointer" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "use_d" +5: "use_d" is empty + +1: "use_f" +5: "use_f" is empty + +1: "pow_ok_base" +4: "pow_ok_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_base" has unsupported operation: llvm.call + +1: "pow_ok_base_fast" +4: "pow_ok_base_fast" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_base_fast" has unsupported operation: llvm.call + +1: "pow_ok_base2" +4: "pow_ok_base2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_base2" has unsupported operation: llvm.call + +1: "pow_ok_base3" +4: "pow_ok_base3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_base3" has unsupported operation: llvm.call + +1: "pow_ok_ten_base" +4: "pow_ok_ten_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_ten_base" has unsupported operation: llvm.call + +1: "pow_ok_denorm_base" +4: "pow_ok_denorm_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_denorm_base" has unsupported operation: llvm.call + +1: "powf_ok_base" +4: "powf_ok_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_ok_base" has unsupported operation: llvm.call + +1: "powf_ok_base2" +4: "powf_ok_base2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_ok_base2" has unsupported operation: llvm.call + +1: "powf_ok_base3" +4: "powf_ok_base3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_ok_base3" has unsupported operation: llvm.call + +1: "powf_ok_ten_base" +4: "powf_ok_ten_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_ok_ten_base" has unsupported operation: llvm.call + +1: "powf_ok_denorm_base" +4: "powf_ok_denorm_base" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_ok_denorm_base" has unsupported operation: llvm.call + +1: "pow_zero_base" +4: "pow_zero_base" has unsupported operation: llvm.call + +1: "pow_zero_base2" +4: "pow_zero_base2" has unsupported operation: llvm.call + +1: "pow_inf_base" +4: "pow_inf_base" has unsupported operation: llvm.call + +1: "pow_nan_base" +4: "pow_nan_base" has unsupported operation: llvm.call + +1: "pow_negative_base" +4: "pow_negative_base" has unsupported operation: llvm.call + +1: "pow_multiuse" +4: "pow_multiuse" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_multiuse" has unsupported operation: llvm.call + +4: "pow_multiuse" has unsupported operation: llvm.call + +1: "pow_ok_base_no_afn" +4: "pow_ok_base_no_afn" has unsupported operation: llvm.call + +1: "pow_ok_base_no_nnan" +4: "pow_ok_base_no_nnan" has unsupported operation: llvm.call + +1: "pow_ok_base_no_ninf" +4: "pow_ok_base_no_ninf" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_ok_base_no_ninf" has unsupported operation: llvm.call + +1: "powf_zero_base" +4: "powf_zero_base" has unsupported operation: llvm.call + +1: "powf_zero_base2" +4: "powf_zero_base2" has unsupported operation: llvm.call + +1: "powf_inf_base" +4: "powf_inf_base" has unsupported operation: llvm.call + +1: "powf_nan_base" +4: "powf_nan_base" has unsupported operation: llvm.call + +1: "powf_negative_base" +4: "powf_negative_base" has unsupported operation: llvm.call + +1: "powf_multiuse" +4: "powf_multiuse" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "powf_multiuse" has unsupported operation: llvm.call + +4: "powf_multiuse" has unsupported operation: llvm.call + +1: "powf_ok_base_no_afn" +4: "powf_ok_base_no_afn" has unsupported operation: llvm.call + +1: "powl_long_dbl_no_fold" +4: "powl_long_dbl_no_fold" has unsupported operation: llvm.call + +1: "expf" +5: "expf" is empty + +1: "exp" +5: "exp" is empty + +1: "expl" +5: "expl" is empty + +1: "exp2f" +5: "exp2f" is empty + +1: "exp2" +5: "exp2" is empty + +1: "exp2l" +5: "exp2l" is empty + +1: "exp10f" +5: "exp10f" is empty + +1: "exp10" +5: "exp10" is empty + +1: "exp10l" +5: "exp10l" is empty + +1: "powf" +5: "powf" is empty + +1: "pow" +5: "pow" is empty + +1: "powl" +5: "powl" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt b/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt new file mode 100644 index 000000000..3f8758b39 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-sqrt.txt @@ -0,0 +1,162 @@ +1: "pow_libcall_half_no_FMF" +4: "pow_libcall_half_no_FMF" has unsupported operation: llvm.call + +1: "pow_intrinsic_half_no_FMF" +4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_half_no_FMF" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "pow_intrinsic_half_approx" +4: "pow_intrinsic_half_approx" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_half_approx" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +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 + +1: "pow_libcall_half_no_FMF_base_ninf" +4: "pow_libcall_half_no_FMF_base_ninf" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "pow_libcall_half_no_FMF_base_ninf" has unsupported operation: llvm.call + +4: "pow_libcall_half_no_FMF_base_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "pow_libcall_half_ninf" +4: "pow_libcall_half_ninf" has unsupported operation: llvm.call + +4: "pow_libcall_half_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "pow_intrinsic_half_ninf" +4: "pow_intrinsic_half_ninf" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_half_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "pow_libcall_half_nsz" +4: "pow_libcall_half_nsz" has unsupported operation: llvm.call + +1: "pow_intrinsic_half_nsz" +4: "pow_intrinsic_half_nsz" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +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 + +1: "pow_intrinsic_half_ninf_nsz" +4: "pow_intrinsic_half_ninf_nsz" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "pow_libcall_half_fast" +4: "pow_libcall_half_fast" has unsupported operation: llvm.call + +1: "pow_intrinsic_half_fast" +4: "pow_intrinsic_half_fast" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "pow_libcall_neghalf_no_FMF" +4: "pow_libcall_neghalf_no_FMF" has unsupported operation: llvm.call + +1: "pow_libcall_neghalf_reassoc_ninf" +4: "pow_libcall_neghalf_reassoc_ninf" has unsupported operation: llvm.call + +4: "pow_libcall_neghalf_reassoc_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_libcall_neghalf_reassoc_ninf" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_libcall_neghalf_afn" +4: "pow_libcall_neghalf_afn" has unsupported operation: llvm.call + +1: "pow_intrinsic_neghalf_no_FMF" +4: "pow_intrinsic_neghalf_no_FMF" has unsupported operation: builtin.unregistered: llvm.intr.pow + +1: "pow_intrinsic_neghalf_reassoc" +4: "pow_intrinsic_neghalf_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_neghalf_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_intrinsic_neghalf_reassoc" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "pow_intrinsic_neghalf_afn" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_intrinsic_neghalf_afn" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "pow_libcall_neghalf_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_libcall_neghalf_ninf" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_intrinsic_neghalf_ninf" +4: "pow_intrinsic_neghalf_ninf" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_neghalf_ninf" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "pow_intrinsic_neghalf_ninf" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_libcall_neghalf_nsz" +4: "pow_libcall_neghalf_nsz" has unsupported operation: llvm.call + +1: "pow_intrinsic_neghalf_nsz" +4: "pow_intrinsic_neghalf_nsz" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_neghalf_nsz" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "pow_intrinsic_neghalf_ninf_nsz" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_libcall_neghalf_ninf_nsz" +4: "pow_libcall_neghalf_ninf_nsz" has unsupported operation: llvm.call + +4: "pow_libcall_neghalf_ninf_nsz" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_libcall_neghalf_fast" +4: "pow_libcall_neghalf_fast" has unsupported operation: llvm.call + +4: "pow_libcall_neghalf_fast" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow_intrinsic_neghalf_fast" +4: "pow_intrinsic_neghalf_fast" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +4: "pow_intrinsic_neghalf_fast" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "pow" +5: "pow" is empty + +1: "powf" +5: "powf" is empty + +1: "sqrt" +5: "sqrt" is empty + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow-to-ldexp.txt b/SSA/Projects/InstCombine/tests/logs/pow-to-ldexp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pow-to-sqrt.txt b/SSA/Projects/InstCombine/tests/logs/pow-to-sqrt.txt new file mode 100644 index 000000000..c7a44313e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pow-to-sqrt.txt @@ -0,0 +1,11 @@ +1: "pow_to_sqrt" +4: "pow_to_sqrt" has unsupported operation: llvm.call + +4: "pow_to_sqrt" has unsupported operation: llvm.return + +1: "pow" +5: "pow" is empty + +1: "sqrt" +5: "sqrt" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pow_fp_int.txt b/SSA/Projects/InstCombine/tests/logs/pow_fp_int.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pow_fp_int16.txt b/SSA/Projects/InstCombine/tests/logs/pow_fp_int16.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/powi.txt b/SSA/Projects/InstCombine/tests/logs/powi.txt new file mode 100644 index 000000000..4c350ccdd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/powi.txt @@ -0,0 +1,227 @@ +1: "use" +5: "use" is empty + +1: "powi_fneg_even_int" +4: "powi_fneg_even_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fabs_even_int" +4: "powi_fabs_even_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_copysign_even_int" +4: "powi_copysign_even_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fneg_odd_int" +4: "powi_fneg_odd_int" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "powi_fneg_odd_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fabs_odd_int" +4: "powi_fabs_odd_int" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "powi_fabs_odd_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_copysign_odd_int" +4: "powi_copysign_odd_int" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "powi_copysign_odd_int" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_arg0_no_reassoc" +4: "powi_fmul_arg0_no_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_arg0_no_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_arg0" +4: "powi_fmul_arg0" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_arg0" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_arg0_use" +4: "powi_fmul_arg0_use" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_arg0_use" has unsupported operation: llvm.call + +4: "powi_fmul_arg0_use" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_no_reassoc1" +4: "powi_fmul_powi_no_reassoc1" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc1" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc1" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_no_reassoc2" +4: "powi_fmul_powi_no_reassoc2" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc2" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc2" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_no_reassoc3" +4: "powi_fmul_powi_no_reassoc3" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc3" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_no_reassoc3" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi" +4: "powi_fmul_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_powi_fast_on_fmul" +4: "powi_fmul_powi_fast_on_fmul" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_powi_fast_on_powi" +4: "powi_fmul_powi_fast_on_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_fast_on_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_fast_on_powi" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_same_power" +4: "powi_fmul_powi_same_power" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_powi_different_integer_types" +4: "powi_fmul_powi_different_integer_types" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_different_integer_types" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_different_integer_types" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_use_first" +4: "powi_fmul_powi_use_first" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_use_first" has unsupported operation: llvm.call + +4: "powi_fmul_powi_use_first" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_powi_use_second" +4: "powi_fmul_powi_use_second" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_use_second" has unsupported operation: llvm.call + +4: "powi_fmul_powi_use_second" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_different_base" +4: "powi_fmul_different_base" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_different_base" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_different_base" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "different_types_powi" +4: "different_types_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "different_types_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "different_types_powi" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_pow_powi" +4: "fdiv_pow_powi" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_powf_powi" +4: "fdiv_powf_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "fdiv_pow_powi_multi_use" +4: "fdiv_pow_powi_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_pow_powi_multi_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_pow_powi_multi_use" has unsupported operation: llvm.call + +1: "fdiv_powf_powi_missing_reassoc" +4: "fdiv_powf_powi_missing_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_powf_powi_missing_reassoc" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_powf_powi_missing_reassoc1" +4: "fdiv_powf_powi_missing_reassoc1" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_powf_powi_missing_reassoc1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_powf_powi_missing_nnan" +4: "fdiv_powf_powi_missing_nnan" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_powf_powi_missing_nnan" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_pow_powi_negative" +4: "fdiv_pow_powi_negative" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_pow_powi_negative" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_pow_powi_negative_variable" +4: "fdiv_pow_powi_negative_variable" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_pow_powi_negative_variable" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi" +4: "fdiv_fmul_powi" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi_2" +4: "fdiv_fmul_powi_2" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "fdiv_fmul_powi_vector" +4: "fdiv_fmul_powi_vector" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "fdiv_fmul_powi_missing_reassoc1" +4: "fdiv_fmul_powi_missing_reassoc1" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_missing_reassoc1" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv_fmul_powi_missing_reassoc1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi_missing_reassoc2" +4: "fdiv_fmul_powi_missing_reassoc2" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_missing_reassoc2" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv_fmul_powi_missing_reassoc2" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi_missing_reassoc3" +4: "fdiv_fmul_powi_missing_reassoc3" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_missing_reassoc3" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv_fmul_powi_missing_reassoc3" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi_missing_nnan" +4: "fdiv_fmul_powi_missing_nnan" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_missing_nnan" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv_fmul_powi_missing_nnan" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "fdiv_fmul_powi_negative_wrap" +4: "fdiv_fmul_powi_negative_wrap" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_negative_wrap" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_fmul_powi_multi_use" +4: "fdiv_fmul_powi_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "fdiv_fmul_powi_multi_use" has unsupported operation: llvm.call + +4: "fdiv_fmul_powi_multi_use" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fdiv_fmul_powi_multi_use" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "powi_fmul_powi_x" +4: "powi_fmul_powi_x" has unsupported operation: builtin.unregistered: llvm.intr.powi + +1: "powi_fmul_powi_x_multi_use" +4: "powi_fmul_powi_x_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_x_multi_use" has unsupported operation: llvm.call + +4: "powi_fmul_powi_x_multi_use" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_x_missing_reassoc" +4: "powi_fmul_powi_x_missing_reassoc" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_x_missing_reassoc" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "powi_fmul_powi_x_overflow" +4: "powi_fmul_powi_x_overflow" has unsupported operation: builtin.unregistered: llvm.intr.powi + +4: "powi_fmul_powi_x_overflow" has unsupported operation: builtin.unregistered: llvm.fmul + diff --git a/SSA/Projects/InstCombine/tests/logs/pr100298.txt b/SSA/Projects/InstCombine/tests/logs/pr100298.txt new file mode 100644 index 000000000..b0d3eda39 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr100298.txt @@ -0,0 +1,13 @@ +1: "pr100298" +4: "pr100298" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr100298" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr100298" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr100298" has unsupported operation: builtin.unregistered: llvm.trunc + +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/pr12251.txt b/SSA/Projects/InstCombine/tests/logs/pr12251.txt new file mode 100644 index 000000000..21fb602d1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr12251.txt @@ -0,0 +1,5 @@ +1: "_Z3fooPb" +4: "_Z3fooPb" has unsupported operation: llvm.load + +4: "_Z3fooPb" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr12338.txt b/SSA/Projects/InstCombine/tests/logs/pr12338.txt new file mode 100644 index 000000000..7d2db27c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr12338.txt @@ -0,0 +1,9 @@ +1: "entry" +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + +4: "entry" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr14365.txt b/SSA/Projects/InstCombine/tests/logs/pr14365.txt new file mode 100644 index 000000000..c2cfa33fc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr14365.txt @@ -0,0 +1,29 @@ +1: "test0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test0_vec" +"test0_vec" contains vectors which are unsupported + +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.add +2: llvm.return + +1: "test1_vec" +"test1_vec" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/pr17827.txt b/SSA/Projects/InstCombine/tests/logs/pr17827.txt new file mode 100644 index 000000000..f6a9405c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr17827.txt @@ -0,0 +1,24 @@ +1: "test_shift_and_cmp_not_changed1" +4: "test_shift_and_cmp_not_changed1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_not_changed2" +4: "test_shift_and_cmp_not_changed2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed1" +4: "test_shift_and_cmp_changed1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed1_vec" +4: "test_shift_and_cmp_changed1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed2" +4: "test_shift_and_cmp_changed2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed2_vec" +4: "test_shift_and_cmp_changed2_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed3" +4: "test_shift_and_cmp_changed3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_shift_and_cmp_changed4" +4: "test_shift_and_cmp_changed4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr20678.txt b/SSA/Projects/InstCombine/tests/logs/pr20678.txt new file mode 100644 index 000000000..2f54718d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr20678.txt @@ -0,0 +1,3 @@ +1: "test1" +"test1" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/pr21199.txt b/SSA/Projects/InstCombine/tests/logs/pr21199.txt new file mode 100644 index 000000000..0236e667b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr21199.txt @@ -0,0 +1,18 @@ +1: "f" +5: "f" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr21210.txt b/SSA/Projects/InstCombine/tests/logs/pr21210.txt new file mode 100644 index 000000000..7abfe9139 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr21210.txt @@ -0,0 +1,46 @@ +1: "foo" +5: "foo" is empty + +1: "bar" +5: "bar" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.undef + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr21651.txt b/SSA/Projects/InstCombine/tests/logs/pr21651.txt new file mode 100644 index 000000000..b22a3027a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr21651.txt @@ -0,0 +1,5 @@ +1: "PR21651" +4: "PR21651" has unsupported operation: builtin.unregistered: llvm.switch + +4: "PR21651" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr21891.txt b/SSA/Projects/InstCombine/tests/logs/pr21891.txt new file mode 100644 index 000000000..a703bf074 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr21891.txt @@ -0,0 +1,11 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr23751.txt b/SSA/Projects/InstCombine/tests/logs/pr23751.txt new file mode 100644 index 000000000..ec5d7a120 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr23751.txt @@ -0,0 +1,9 @@ +1: "f" +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: builtin.unregistered: llvm.zext + +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr23809.txt b/SSA/Projects/InstCombine/tests/logs/pr23809.txt new file mode 100644 index 000000000..a3f7b6b84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr23809.txt @@ -0,0 +1,12 @@ +1: "icmp" +4: "icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "icmp" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "fcmp" +4: "fcmp" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/pr24354.txt b/SSA/Projects/InstCombine/tests/logs/pr24354.txt new file mode 100644 index 000000000..20c509ce4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr24354.txt @@ -0,0 +1,33 @@ +1: "fn3" +4: "fn3" has unsupported operation: llvm.mlir.addressof + +4: "fn3" has unsupported operation: llvm.mlir.addressof + +4: "fn3" has unsupported operation: llvm.mlir.addressof + +4: "fn3" has unsupported operation: llvm.mlir.addressof + +4: "fn3" has unsupported operation: llvm.load + +4: "fn3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fn3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "fn3" has unsupported operation: llvm.load + +4: "fn3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fn3" has unsupported operation: builtin.unregistered: llvm.br + +4: "fn3" has unsupported operation: llvm.load + +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 + +4: "fn3" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr24605.txt b/SSA/Projects/InstCombine/tests/logs/pr24605.txt new file mode 100644 index 000000000..a5894ed09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr24605.txt @@ -0,0 +1,3 @@ +1: "f" +4: "f" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/pr25342.txt b/SSA/Projects/InstCombine/tests/logs/pr25342.txt new file mode 100644 index 000000000..f85933512 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr25342.txt @@ -0,0 +1,2 @@ +3: pr25342.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/pr25745.txt b/SSA/Projects/InstCombine/tests/logs/pr25745.txt new file mode 100644 index 000000000..54f820923 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr25745.txt @@ -0,0 +1,19 @@ +1: "use.i1" +5: "use.i1" is empty + +1: "use.i64" +5: "use.i64" is empty + +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.sext + +4: "f" has unsupported operation: builtin.unregistered: llvm.sext + +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/pr2645-0-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/pr2645-0-inseltpoison.txt new file mode 100644 index 000000000..e8389f8fa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr2645-0-inseltpoison.txt @@ -0,0 +1,2 @@ +3: pr2645-0-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/pr2645-0.txt b/SSA/Projects/InstCombine/tests/logs/pr2645-0.txt new file mode 100644 index 000000000..554276ec2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr2645-0.txt @@ -0,0 +1,2 @@ +3: pr2645-0.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/pr26992.txt b/SSA/Projects/InstCombine/tests/logs/pr26992.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pr26993.txt b/SSA/Projects/InstCombine/tests/logs/pr26993.txt new file mode 100644 index 000000000..01aa6b866 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr26993.txt @@ -0,0 +1,12 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "__sinpi" +5: "__sinpi" is empty + +1: "__cospi" +5: "__cospi" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr27236.txt b/SSA/Projects/InstCombine/tests/logs/pr27236.txt new file mode 100644 index 000000000..579622ebf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr27236.txt @@ -0,0 +1,5 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test1" has unsupported operation: builtin.unregistered: llvm.uitofp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr27332.txt b/SSA/Projects/InstCombine/tests/logs/pr27332.txt new file mode 100644 index 000000000..3205e0671 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr27332.txt @@ -0,0 +1,11 @@ +1: "test1" +"test1" contains vectors which are unsupported + +1: "fabsf" +5: "fabsf" is empty + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr27343.txt b/SSA/Projects/InstCombine/tests/logs/pr27343.txt new file mode 100644 index 000000000..69f3eeaa3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr27343.txt @@ -0,0 +1,10 @@ +1: "__isnan" +4: "__isnan" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "__isnan" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "__isnan" has unsupported operation: builtin.unregistered: llvm.zext + +1: "icmp_shl7" +4: "icmp_shl7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr27703.txt b/SSA/Projects/InstCombine/tests/logs/pr27703.txt new file mode 100644 index 000000000..eb48d2163 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr27703.txt @@ -0,0 +1,11 @@ +1: "mem" +4: "mem" has unsupported operation: llvm.mlir.undef + +4: "mem" has unsupported operation: builtin.unregistered: llvm.br + +4: "mem" has unsupported operation: llvm.load + +4: "mem" has unsupported operation: llvm.load + +4: "mem" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr27996.txt b/SSA/Projects/InstCombine/tests/logs/pr27996.txt new file mode 100644 index 000000000..d9b236206 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr27996.txt @@ -0,0 +1,35 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.zero + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/pr28143.txt b/SSA/Projects/InstCombine/tests/logs/pr28143.txt new file mode 100644 index 000000000..6ff33d6cc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr28143.txt @@ -0,0 +1,8 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: llvm.return + +1: "tan" +5: "tan" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr28725.txt b/SSA/Projects/InstCombine/tests/logs/pr28725.txt new file mode 100644 index 000000000..2f54718d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr28725.txt @@ -0,0 +1,3 @@ +1: "test1" +"test1" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/pr2996.txt b/SSA/Projects/InstCombine/tests/logs/pr2996.txt new file mode 100644 index 000000000..9bdc36346 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr2996.txt @@ -0,0 +1,12 @@ +1: "func_53" +4: "func_53" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func_53" has unsupported operation: builtin.unregistered: llvm.sext + +4: "func_53" has unsupported operation: llvm.call + +4: "func_53" has unsupported operation: llvm.return + +1: "func_4" +5: "func_4" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr30929.txt b/SSA/Projects/InstCombine/tests/logs/pr30929.txt new file mode 100644 index 000000000..133d2137a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr30929.txt @@ -0,0 +1,8 @@ +1: "main" +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: llvm.return + +1: "acosf" +5: "acosf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr31990_wrong_memcpy.txt b/SSA/Projects/InstCombine/tests/logs/pr31990_wrong_memcpy.txt new file mode 100644 index 000000000..45684d837 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr31990_wrong_memcpy.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "bar" +5: "bar" is empty + +1: "gaz" +5: "gaz" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr32686.txt b/SSA/Projects/InstCombine/tests/logs/pr32686.txt new file mode 100644 index 000000000..10df6a43f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr32686.txt @@ -0,0 +1,17 @@ +1: "tinkywinky" +4: "tinkywinky" has unsupported operation: llvm.mlir.addressof + +4: "tinkywinky" has unsupported operation: llvm.mlir.addressof + +4: "tinkywinky" has unsupported operation: llvm.load + +4: "tinkywinky" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "tinkywinky" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "tinkywinky" has unsupported operation: builtin.unregistered: llvm.zext + +4: "tinkywinky" has unsupported operation: llvm.store + +4: "tinkywinky" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr33453.txt b/SSA/Projects/InstCombine/tests/logs/pr33453.txt new file mode 100644 index 000000000..5e5bcdbe6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr33453.txt @@ -0,0 +1,14 @@ +1: "patatino" +4: "patatino" has unsupported operation: llvm.mlir.addressof + +4: "patatino" has unsupported operation: llvm.getelementptr + +4: "patatino" has unsupported operation: llvm.mlir.addressof + +4: "patatino" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "patatino" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "fabsf" +5: "fabsf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr33689_same_bitwidth.txt b/SSA/Projects/InstCombine/tests/logs/pr33689_same_bitwidth.txt new file mode 100644 index 000000000..d7d83b5e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr33689_same_bitwidth.txt @@ -0,0 +1,19 @@ +1: "f" +4: "f" has unsupported operation: llvm.mlir.addressof + +4: "f" has unsupported operation: llvm.alloca + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr34349.txt b/SSA/Projects/InstCombine/tests/logs/pr34349.txt new file mode 100644 index 000000000..63e381c8c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr34349.txt @@ -0,0 +1,5 @@ +1: "fast_div_201" +4: "fast_div_201" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fast_div_201" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/pr34627.txt b/SSA/Projects/InstCombine/tests/logs/pr34627.txt new file mode 100644 index 000000000..401ac5c8e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr34627.txt @@ -0,0 +1,3 @@ +1: "patatino" +"patatino" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/pr35515.txt b/SSA/Projects/InstCombine/tests/logs/pr35515.txt new file mode 100644 index 000000000..da26c959b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr35515.txt @@ -0,0 +1,15 @@ +1: "func_24" +4: "func_24" has unsupported operation: llvm.mlir.addressof + +4: "func_24" has unsupported operation: llvm.mlir.addressof + +4: "func_24" has unsupported operation: llvm.getelementptr + +4: "func_24" has unsupported operation: llvm.mlir.addressof + +4: "func_24" has unsupported operation: llvm.load + +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 new file mode 100644 index 000000000..dc96c6cef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr36362.txt @@ -0,0 +1,5 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.select + +4: "foo" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/pr38677.txt b/SSA/Projects/InstCombine/tests/logs/pr38677.txt new file mode 100644 index 000000000..d03f63c84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr38677.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/pr38897.txt b/SSA/Projects/InstCombine/tests/logs/pr38897.txt new file mode 100644 index 000000000..24915592e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr38897.txt @@ -0,0 +1,9 @@ +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/pr38915.txt b/SSA/Projects/InstCombine/tests/logs/pr38915.txt new file mode 100644 index 000000000..a720c0bde --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr38915.txt @@ -0,0 +1,5 @@ +1: "PR38915" +4: "PR38915" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "PR38915" 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 new file mode 100644 index 000000000..214eda91b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr38984-inseltpoison.txt @@ -0,0 +1,24 @@ +1: "PR38984_1" +"PR38984_1" contains vectors which are unsupported + +1: "PR38984_2" +4: "PR38984_2" has unsupported operation: llvm.mlir.addressof + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR38984_2" has unsupported operation: llvm.mlir.addressof + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: llvm.mlir.zero + +4: "PR38984_2" has unsupported operation: llvm.load + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr38984.txt b/SSA/Projects/InstCombine/tests/logs/pr38984.txt new file mode 100644 index 000000000..9bf6b808b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr38984.txt @@ -0,0 +1,36 @@ +1: "PR38984_1" +"PR38984_1" contains vectors which are unsupported + +1: "PR38984_2" +4: "PR38984_2" has unsupported operation: llvm.mlir.addressof + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR38984_2" has unsupported operation: llvm.mlir.undef + +4: "PR38984_2" has unsupported operation: llvm.mlir.undef + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: llvm.mlir.addressof + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: llvm.mlir.zero + +4: "PR38984_2" has unsupported operation: llvm.load + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: llvm.getelementptr + +4: "PR38984_2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/pr39177.txt b/SSA/Projects/InstCombine/tests/logs/pr39177.txt new file mode 100644 index 000000000..332cf1f91 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr39177.txt @@ -0,0 +1,31 @@ +1: "__fwrite_alias" +4: "__fwrite_alias" has unsupported operation after optimization: llvm.alloca + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.alloca + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.alloca + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.alloca + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.store + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.store + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.store + +4: "__fwrite_alias" has unsupported operation after optimization: llvm.store + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "fprintf" +5: "fprintf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr39908.txt b/SSA/Projects/InstCombine/tests/logs/pr39908.txt new file mode 100644 index 000000000..8e5f1d104 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr39908.txt @@ -0,0 +1,2 @@ +3: pr39908.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/pr41164.txt b/SSA/Projects/InstCombine/tests/logs/pr41164.txt new file mode 100644 index 000000000..9f91293a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr41164.txt @@ -0,0 +1,11 @@ +1: "_Z8wyhash64v" +4: "_Z8wyhash64v" has unsupported operation: llvm.mlir.addressof + +4: "_Z8wyhash64v" has unsupported operation: llvm.load + +4: "_Z8wyhash64v" has unsupported operation: llvm.store + +4: "_Z8wyhash64v" has unsupported operation: builtin.unregistered: llvm.zext + +4: "_Z8wyhash64v" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/pr43081.txt b/SSA/Projects/InstCombine/tests/logs/pr43081.txt new file mode 100644 index 000000000..5c7e6021a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr43081.txt @@ -0,0 +1,11 @@ +1: "strchr" +5: "strchr" is empty + +1: "pr43081" +4: "pr43081" has unsupported operation: llvm.call + +4: "pr43081" has unsupported operation: llvm.getelementptr + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr43376-getFlippedStrictnessPredicateAndConstant-assert.txt b/SSA/Projects/InstCombine/tests/logs/pr43376-getFlippedStrictnessPredicateAndConstant-assert.txt new file mode 100644 index 000000000..9b567e8cf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr43376-getFlippedStrictnessPredicateAndConstant-assert.txt @@ -0,0 +1,9 @@ +1: "d" +4: "d" has unsupported operation: llvm.load + +4: "d" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "d" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "d" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr43893.txt b/SSA/Projects/InstCombine/tests/logs/pr43893.txt new file mode 100644 index 000000000..c58774cdd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr43893.txt @@ -0,0 +1,19 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/pr44242.txt b/SSA/Projects/InstCombine/tests/logs/pr44242.txt new file mode 100644 index 000000000..9a2512e83 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr44242.txt @@ -0,0 +1,97 @@ +1: "sitofp" +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.br + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.br + +4: "sitofp" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "bitcast" +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.br + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.br + +4: "bitcast" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "store_volatile" +4: "store_volatile" has unsupported operation: llvm.mlir.addressof + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.br + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "store_volatile" has unsupported operation: builtin.unregistered: llvm.br + +4: "store_volatile" has unsupported operation: llvm.store + +4: "store_volatile" has unsupported operation: llvm.return + +1: "store_address" +4: "store_address" has unsupported operation: llvm.mlir.addressof + +4: "store_address" has unsupported operation: builtin.unregistered: llvm.br + +4: "store_address" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "store_address" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "store_address" has unsupported operation: llvm.getelementptr + +4: "store_address" has unsupported operation: builtin.unregistered: llvm.br + +4: "store_address" has unsupported operation: llvm.store + +4: "store_address" has unsupported operation: llvm.return + +1: "multiple_phis" +4: "multiple_phis" has unsupported operation: llvm.mlir.addressof + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.br + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.br + +4: "multiple_phis" has unsupported operation: llvm.store + +4: "multiple_phis" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr44245.txt b/SSA/Projects/InstCombine/tests/logs/pr44245.txt new file mode 100644 index 000000000..faa6bd74a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr44245.txt @@ -0,0 +1,86 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.undef + +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test" has unsupported operation: llvm.inttoptr + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_2" +4: "test_2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_2" has unsupported operation: llvm.store + +4: "test_2" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr44541.txt b/SSA/Projects/InstCombine/tests/logs/pr44541.txt new file mode 100644 index 000000000..a352c687a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr44541.txt @@ -0,0 +1,8 @@ +1: "passthru" +7: "passthru" is unchanged by InstCombine + +1: "test" +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.smax + diff --git a/SSA/Projects/InstCombine/tests/logs/pr44552.txt b/SSA/Projects/InstCombine/tests/logs/pr44552.txt new file mode 100644 index 000000000..7fc8cec0b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr44552.txt @@ -0,0 +1,5 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/pr44835.txt b/SSA/Projects/InstCombine/tests/logs/pr44835.txt new file mode 100644 index 000000000..d7da1b74e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr44835.txt @@ -0,0 +1,11 @@ +1: "test" +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr46680.txt b/SSA/Projects/InstCombine/tests/logs/pr46680.txt new file mode 100644 index 000000000..856821aca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr46680.txt @@ -0,0 +1,57 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr49688.txt b/SSA/Projects/InstCombine/tests/logs/pr49688.txt new file mode 100644 index 000000000..7dc8632eb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr49688.txt @@ -0,0 +1,16 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +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/pr51824.txt b/SSA/Projects/InstCombine/tests/logs/pr51824.txt new file mode 100644 index 000000000..015b32ae3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr51824.txt @@ -0,0 +1,7 @@ +1: "PR51824" +4: "PR51824" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR51824" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR51824" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr53357.txt b/SSA/Projects/InstCombine/tests/logs/pr53357.txt new file mode 100644 index 000000000..c2b6e7c1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr53357.txt @@ -0,0 +1,55 @@ +1: "src" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "src_vec" +"src_vec" contains vectors which are unsupported + +1: "src_vec_poison" +"src_vec_poison" contains vectors which are unsupported + +1: "src2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "src3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "src4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.or +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "src5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.and +2: llvm.add +2: llvm.return + +1: "src6" +7: "src6" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/pr55228.txt b/SSA/Projects/InstCombine/tests/logs/pr55228.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pr56424.txt b/SSA/Projects/InstCombine/tests/logs/pr56424.txt new file mode 100644 index 000000000..217d5dfaf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr56424.txt @@ -0,0 +1,5 @@ +1: "PR56424" +4: "PR56424" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR56424" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr58901.txt b/SSA/Projects/InstCombine/tests/logs/pr58901.txt new file mode 100644 index 000000000..1548490e7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr58901.txt @@ -0,0 +1,10 @@ +1: "f1" +4: "f1" has unsupported operation: llvm.getelementptr + +4: "f1" has unsupported operation: llvm.getelementptr + +1: "f2" +4: "f2" has unsupported operation: llvm.getelementptr + +4: "f2" has unsupported operation: llvm.getelementptr + diff --git a/SSA/Projects/InstCombine/tests/logs/pr59613.txt b/SSA/Projects/InstCombine/tests/logs/pr59613.txt new file mode 100644 index 000000000..1ff4cff0b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr59613.txt @@ -0,0 +1,9 @@ +1: "pr59613" +4: "pr59613" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr59613" has unsupported operation: llvm.mlir.zero + +4: "pr59613" has unsupported operation: llvm.store + +4: "pr59613" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr63791.txt b/SSA/Projects/InstCombine/tests/logs/pr63791.txt new file mode 100644 index 000000000..2c4bff698 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr63791.txt @@ -0,0 +1,17 @@ +1: "y" +4: "y" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "y" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "y" has unsupported operation: builtin.unregistered: llvm.br + +4: "y" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "y" has unsupported operation: llvm.store + +4: "y" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "y" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "y" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr69059.txt b/SSA/Projects/InstCombine/tests/logs/pr69059.txt new file mode 100644 index 000000000..9af18a4b4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr69059.txt @@ -0,0 +1,6 @@ +1: "pr69059" +4: "pr69059" has unsupported operation: llvm.call + +1: "labs" +5: "labs" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr71330.txt b/SSA/Projects/InstCombine/tests/logs/pr71330.txt new file mode 100644 index 000000000..ae09b40a7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr71330.txt @@ -0,0 +1,23 @@ +1: "pr71330" +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr71330" has unsupported operation: llvm.return + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr71330" has unsupported operation: llvm.return + +4: "pr71330" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr71330" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/pr72433.txt b/SSA/Projects/InstCombine/tests/logs/pr72433.txt new file mode 100644 index 000000000..0ca5b3dae --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr72433.txt @@ -0,0 +1,9 @@ +1: "widget" +4: "widget" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "widget" has unsupported operation: builtin.unregistered: llvm.zext + +4: "widget" has unsupported operation: builtin.unregistered: llvm.zext + +4: "widget" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/pr75129.txt b/SSA/Projects/InstCombine/tests/logs/pr75129.txt new file mode 100644 index 000000000..f3089bc0c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr75129.txt @@ -0,0 +1,6 @@ +1: "or_and_add_and" +4: "or_and_add_and" has unsupported operation: llvm.call + +1: "dummy" +5: "dummy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr75369.txt b/SSA/Projects/InstCombine/tests/logs/pr75369.txt new file mode 100644 index 000000000..d032f44c1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr75369.txt @@ -0,0 +1,9 @@ +1: "main" +4: "main" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/pr77064.txt b/SSA/Projects/InstCombine/tests/logs/pr77064.txt new file mode 100644 index 000000000..9be4c916b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr77064.txt @@ -0,0 +1,13 @@ +1: "main" +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "main" has unsupported operation: llvm.return + +1: "__memset_chk" +5: "__memset_chk" is empty + +1: "opendir" +5: "opendir" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/pr80597.txt b/SSA/Projects/InstCombine/tests/logs/pr80597.txt new file mode 100644 index 000000000..7fe4342b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr80597.txt @@ -0,0 +1,7 @@ +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/pr80941.txt b/SSA/Projects/InstCombine/tests/logs/pr80941.txt new file mode 100644 index 000000000..8f43f8d6a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr80941.txt @@ -0,0 +1,13 @@ +1: "pr80941" +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.intr.is.fpclass + +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "pr80941" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr82877.txt b/SSA/Projects/InstCombine/tests/logs/pr82877.txt new file mode 100644 index 000000000..ae84c023d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr82877.txt @@ -0,0 +1,11 @@ +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 + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/pr83931.txt b/SSA/Projects/InstCombine/tests/logs/pr83931.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pr83947.txt b/SSA/Projects/InstCombine/tests/logs/pr83947.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/pr98139.txt b/SSA/Projects/InstCombine/tests/logs/pr98139.txt new file mode 100644 index 000000000..e5737ccfc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr98139.txt @@ -0,0 +1,11 @@ +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 new file mode 100644 index 000000000..7beb24101 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pr98435.txt @@ -0,0 +1,11 @@ +1: "pr98435" +4: "pr98435" has unsupported operation: llvm.mlir.undef + +4: "pr98435" has unsupported operation: llvm.mlir.undef + +4: "pr98435" has unsupported operation: builtin.unregistered: llvm.insertelement + +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/prefetch-load.txt b/SSA/Projects/InstCombine/tests/logs/prefetch-load.txt new file mode 100644 index 000000000..063054c35 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/prefetch-load.txt @@ -0,0 +1,15 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.load + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.prefetch + diff --git a/SSA/Projects/InstCombine/tests/logs/preserve-sminmax.txt b/SSA/Projects/InstCombine/tests/logs/preserve-sminmax.txt new file mode 100644 index 000000000..325952d7f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/preserve-sminmax.txt @@ -0,0 +1,6 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.intr.smax + diff --git a/SSA/Projects/InstCombine/tests/logs/preserved-analyses.txt b/SSA/Projects/InstCombine/tests/logs/preserved-analyses.txt new file mode 100644 index 000000000..613f43a3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/preserved-analyses.txt @@ -0,0 +1,8 @@ +1: "test" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt b/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt new file mode 100644 index 000000000..cb2f7bb24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/prevent-cmp-merge.txt @@ -0,0 +1,29 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1_logical" +4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3_logical" +4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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/printf-1.txt b/SSA/Projects/InstCombine/tests/logs/printf-1.txt new file mode 100644 index 000000000..356d5f328 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/printf-1.txt @@ -0,0 +1,70 @@ +1: "printf" +5: "printf" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify2b" +4: "test_simplify2b" has unsupported operation: llvm.call + +4: "test_simplify2b" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.call + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.call + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.call + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify7" has unsupported operation: llvm.call + +4: "test_simplify7" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.call + +4: "test_no_simplify2" has unsupported operation: llvm.return + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "putchar" +5: "putchar" is empty + +1: "puts" +5: "puts" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/printf-2.txt b/SSA/Projects/InstCombine/tests/logs/printf-2.txt new file mode 100644 index 000000000..f1ea286b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/printf-2.txt @@ -0,0 +1,52 @@ +1: "printf" +5: "printf" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.call + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.call + +4: "test_simplify7" has unsupported operation: llvm.return + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.return + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify9" has unsupported operation: llvm.call + +4: "test_simplify9" has unsupported operation: llvm.return + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify10" has unsupported operation: llvm.call + +4: "test_simplify10" has unsupported operation: llvm.call + +4: "test_simplify10" has unsupported operation: llvm.return + +1: "putchar" +5: "putchar" is empty + +1: "puts" +5: "puts" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/printf-3.txt b/SSA/Projects/InstCombine/tests/logs/printf-3.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/printf-i16.txt b/SSA/Projects/InstCombine/tests/logs/printf-i16.txt new file mode 100644 index 000000000..fc82ec5ca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/printf-i16.txt @@ -0,0 +1,52 @@ +1: "putchar" +5: "putchar" is empty + +1: "puts" +5: "puts" is empty + +1: "printf" +5: "printf" is empty + +1: "xform_printf" +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.mlir.addressof + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.call + +4: "xform_printf" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/ptr-int-cast.txt b/SSA/Projects/InstCombine/tests/logs/ptr-int-cast.txt new file mode 100644 index 000000000..ae5a06fd9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ptr-int-cast.txt @@ -0,0 +1,2 @@ +3: ptr-int-cast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/ptr-int-ptr-icmp.txt b/SSA/Projects/InstCombine/tests/logs/ptr-int-ptr-icmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt b/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt new file mode 100644 index 000000000..5e46bdc50 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ptr-replace-alloca.txt @@ -0,0 +1,252 @@ +1: "remove_alloca_use_arg" +4: "remove_alloca_use_arg" has unsupported operation: llvm.mlir.addressof + +4: "remove_alloca_use_arg" has unsupported operation: llvm.getelementptr + +4: "remove_alloca_use_arg" has unsupported operation: llvm.getelementptr + +4: "remove_alloca_use_arg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "remove_alloca_use_arg" has unsupported operation: builtin.unregistered: llvm.br + +4: "remove_alloca_use_arg" has unsupported operation: builtin.unregistered: llvm.br + +4: "remove_alloca_use_arg" has unsupported operation: llvm.load + +1: "volatile_load_keep_alloca" +4: "volatile_load_keep_alloca" has unsupported operation: llvm.mlir.addressof + +4: "volatile_load_keep_alloca" has unsupported operation: llvm.alloca + +4: "volatile_load_keep_alloca" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "volatile_load_keep_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "volatile_load_keep_alloca" has unsupported operation: llvm.getelementptr + +4: "volatile_load_keep_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "volatile_load_keep_alloca" has unsupported operation: llvm.getelementptr + +4: "volatile_load_keep_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "volatile_load_keep_alloca" has unsupported operation: llvm.load + +1: "no_memcpy_keep_alloca" +4: "no_memcpy_keep_alloca" has unsupported operation: llvm.alloca + +4: "no_memcpy_keep_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "no_memcpy_keep_alloca" has unsupported operation: llvm.getelementptr + +4: "no_memcpy_keep_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "no_memcpy_keep_alloca" has unsupported operation: llvm.getelementptr + +4: "no_memcpy_keep_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "no_memcpy_keep_alloca" has unsupported operation: llvm.load + +1: "loop_phi_remove_alloca" +4: "loop_phi_remove_alloca" has unsupported operation: llvm.mlir.addressof + +4: "loop_phi_remove_alloca" has unsupported operation: llvm.getelementptr + +4: "loop_phi_remove_alloca" has unsupported operation: llvm.getelementptr + +4: "loop_phi_remove_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "loop_phi_remove_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "loop_phi_remove_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "loop_phi_remove_alloca" has unsupported operation: llvm.load + +1: "remove_alloca_ptr_arg" +4: "remove_alloca_ptr_arg" has unsupported operation: llvm.mlir.addressof + +4: "remove_alloca_ptr_arg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "remove_alloca_ptr_arg" has unsupported operation: builtin.unregistered: llvm.br + +4: "remove_alloca_ptr_arg" has unsupported operation: llvm.load + +1: "loop_phi_late_memtransfer_remove_alloca" +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: llvm.mlir.addressof + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: llvm.getelementptr + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: llvm.getelementptr + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "loop_phi_late_memtransfer_remove_alloca" has unsupported operation: llvm.load + +1: "test_memcpy_after_phi" +4: "test_memcpy_after_phi" has unsupported operation: llvm.mlir.addressof + +4: "test_memcpy_after_phi" has unsupported operation: llvm.alloca + +4: "test_memcpy_after_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_memcpy_after_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_memcpy_after_phi" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_memcpy_after_phi" has unsupported operation: llvm.load + +1: "addrspace_diff_keep_alloca" +4: "addrspace_diff_keep_alloca" has unsupported operation: llvm.mlir.addressof + +4: "addrspace_diff_keep_alloca" has unsupported operation: llvm.alloca + +4: "addrspace_diff_keep_alloca" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "addrspace_diff_keep_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "addrspace_diff_keep_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "addrspace_diff_keep_alloca" has unsupported operation: llvm.load + +1: "addrspace_diff_keep_alloca_extra_gep" +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: llvm.mlir.addressof + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: llvm.alloca + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: llvm.getelementptr + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: builtin.unregistered: llvm.br + +4: "addrspace_diff_keep_alloca_extra_gep" has unsupported operation: llvm.load + +1: "addrspace_diff_remove_alloca" +4: "addrspace_diff_remove_alloca" has unsupported operation: llvm.mlir.addressof + +4: "addrspace_diff_remove_alloca" has unsupported operation: llvm.getelementptr + +4: "addrspace_diff_remove_alloca" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "addrspace_diff_remove_alloca" has unsupported operation: builtin.unregistered: llvm.br + +4: "addrspace_diff_remove_alloca" has unsupported operation: llvm.load + +1: "phi_loop" +4: "phi_loop" has unsupported operation: llvm.mlir.addressof + +4: "phi_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_loop" has unsupported operation: llvm.getelementptr + +4: "phi_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_loop" has unsupported operation: llvm.load + +1: "phi_loop_different_addrspace" +4: "phi_loop_different_addrspace" has unsupported operation: llvm.mlir.addressof + +4: "phi_loop_different_addrspace" has unsupported operation: llvm.alloca + +4: "phi_loop_different_addrspace" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "phi_loop_different_addrspace" has unsupported operation: builtin.unregistered: llvm.br + +4: "phi_loop_different_addrspace" has unsupported operation: llvm.getelementptr + +4: "phi_loop_different_addrspace" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_loop_different_addrspace" has unsupported operation: llvm.load + +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" +4: "select_after_memcpy_keep_alloca" has unsupported operation: llvm.mlir.addressof + +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 + +1: "select_diff_addrspace_keep_alloca" +4: "select_diff_addrspace_keep_alloca" has unsupported operation: llvm.mlir.addressof + +4: "select_diff_addrspace_keep_alloca" has unsupported operation: llvm.alloca + +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" +4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: llvm.mlir.addressof + +4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: llvm.alloca + +4: "select_diff_addrspace_remove_alloca" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +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 + +1: "select_diff_addrspace_remove_alloca_asan" +4: "select_diff_addrspace_remove_alloca_asan" has unsupported operation: llvm.mlir.addressof + +4: "select_diff_addrspace_remove_alloca_asan" has unsupported operation: llvm.getelementptr + +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" +5: "readonly_callee" is empty + +1: "call_readonly_remove_alloca" +4: "call_readonly_remove_alloca" has unsupported operation: llvm.mlir.addressof + +4: "call_readonly_remove_alloca" has unsupported operation: llvm.alloca + +4: "call_readonly_remove_alloca" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "call_readonly_remove_alloca" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "call_readonly_remove_alloca" has unsupported operation: llvm.call + +1: "call_readonly_keep_alloca2" +4: "call_readonly_keep_alloca2" has unsupported operation: llvm.mlir.addressof + +4: "call_readonly_keep_alloca2" has unsupported operation: llvm.mlir.addressof + +4: "call_readonly_keep_alloca2" has unsupported operation: llvm.alloca + +4: "call_readonly_keep_alloca2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "call_readonly_keep_alloca2" has unsupported operation: llvm.getelementptr + +4: "call_readonly_keep_alloca2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "call_readonly_keep_alloca2" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "call_readonly_keep_alloca2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/ptrauth-intrinsics.txt b/SSA/Projects/InstCombine/tests/logs/ptrauth-intrinsics.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ptrmask.txt b/SSA/Projects/InstCombine/tests/logs/ptrmask.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/ptrtoint-nullgep.txt b/SSA/Projects/InstCombine/tests/logs/ptrtoint-nullgep.txt new file mode 100644 index 000000000..9a443d73b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ptrtoint-nullgep.txt @@ -0,0 +1,2 @@ +3: ptrtoint-nullgep.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/pull-binop-through-shift.txt b/SSA/Projects/InstCombine/tests/logs/pull-binop-through-shift.txt new file mode 100644 index 000000000..c29ba345d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pull-binop-through-shift.txt @@ -0,0 +1,172 @@ +1: "and_signbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "and_nosignbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "or_signbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "or_nosignbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "xor_signbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.shl +2: llvm.return + +1: "xor_nosignbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.shl +2: llvm.return + +1: "add_signbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "add_nosignbit_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "and_signbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "and_nosignbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "or_signbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "or_nosignbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.lshr +2: llvm.return + +1: "xor_signbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.lshr +2: llvm.return + +1: "xor_nosignbit_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.lshr +2: llvm.return + +1: "add_signbit_lshr" +7: "add_signbit_lshr" is unchanged by InstCombine + +1: "add_nosignbit_lshr" +7: "add_nosignbit_lshr" is unchanged by InstCombine + +1: "and_signbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.ashr +2: llvm.return + +1: "and_nosignbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.ashr +2: llvm.return + +1: "or_signbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.ashr +2: llvm.return + +1: "or_nosignbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.ashr +2: llvm.return + +1: "xor_signbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "xor_nosignbit_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "add_signbit_ashr" +7: "add_signbit_ashr" is unchanged by InstCombine + +1: "add_nosignbit_ashr" +7: "add_nosignbit_ashr" is unchanged by InstCombine + 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 new file mode 100644 index 000000000..0b796bd3a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/pull-conditional-binop-through-shift.txt @@ -0,0 +1,72 @@ +1: "and_signbit_select_shl" +4: "and_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_nosignbit_select_shl" +4: "and_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_signbit_select_shl" +4: "or_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_nosignbit_select_shl" +4: "or_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_signbit_select_shl" +4: "xor_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_nosignbit_select_shl" +4: "xor_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_signbit_select_shl" +4: "add_signbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_nosignbit_select_shl" +4: "add_nosignbit_select_shl" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_signbit_select_lshr" +4: "and_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_nosignbit_select_lshr" +4: "and_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_signbit_select_lshr" +4: "or_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_nosignbit_select_lshr" +4: "or_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_signbit_select_lshr" +4: "xor_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_nosignbit_select_lshr" +4: "xor_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_signbit_select_lshr" +4: "add_signbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_nosignbit_select_lshr" +4: "add_nosignbit_select_lshr" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_signbit_select_ashr" +4: "and_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_nosignbit_select_ashr" +4: "and_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_signbit_select_ashr" +4: "or_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_nosignbit_select_ashr" +4: "or_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_signbit_select_ashr" +4: "xor_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_nosignbit_select_ashr" +4: "xor_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_signbit_select_ashr" +4: "add_signbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_nosignbit_select_ashr" +4: "add_nosignbit_select_ashr" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/puts-1.txt b/SSA/Projects/InstCombine/tests/logs/puts-1.txt new file mode 100644 index 000000000..11cfc347e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/puts-1.txt @@ -0,0 +1,16 @@ +1: "puts" +5: "puts" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "putchar" +5: "putchar" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/puts-i16.txt b/SSA/Projects/InstCombine/tests/logs/puts-i16.txt new file mode 100644 index 000000000..9d14a24bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/puts-i16.txt @@ -0,0 +1,13 @@ +1: "putchar" +5: "putchar" is empty + +1: "puts" +5: "puts" is empty + +1: "xform_puts" +4: "xform_puts" has unsupported operation: llvm.mlir.addressof + +4: "xform_puts" has unsupported operation: llvm.call + +4: "xform_puts" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/range-check.txt b/SSA/Projects/InstCombine/tests/logs/range-check.txt new file mode 100644 index 000000000..5befc751b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/range-check.txt @@ -0,0 +1,118 @@ +1: "test_and1" +4: "test_and1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_and1_logical" +4: "test_and1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test_and2_logical" +4: "test_and2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test_and3_logical" +4: "test_and3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_and4" +4: "test_and4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_and4_logical" +4: "test_and4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_or1" +4: "test_or1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_or1_logical" +4: "test_or1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test_or2_logical" +4: "test_or2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test_or3_logical" +4: "test_or3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_or4" +4: "test_or4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_or4_logical" +4: "test_or4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative1" +4: "negative1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative1_logical" +4: "negative1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative2" +4: "negative2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative2_logical" +4: "negative2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative3" +4: "negative3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative3_logical" +4: "negative3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "negative4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative4_logical" +4: "negative4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative5" +4: "negative5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "negative5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "negative5_logical" +4: "negative5_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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/readnone-maythrow.txt b/SSA/Projects/InstCombine/tests/logs/readnone-maythrow.txt new file mode 100644 index 000000000..02764c77e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/readnone-maythrow.txt @@ -0,0 +1,25 @@ +1: "readnone_but_may_throw" +5: "readnone_but_may_throw" is empty + +1: "f_0" +4: "f_0" has unsupported operation: llvm.store + +4: "f_0" has unsupported operation: llvm.call + +4: "f_0" has unsupported operation: llvm.store + +4: "f_0" has unsupported operation: llvm.return + +1: "f_1" +4: "f_1" has unsupported operation: llvm.store + +4: "f_1" has unsupported operation: llvm.call + +4: "f_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f_1" has unsupported operation: llvm.store + +4: "f_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "f_1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/realloc-free.txt b/SSA/Projects/InstCombine/tests/logs/realloc-free.txt new file mode 100644 index 000000000..47322ef1b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/realloc-free.txt @@ -0,0 +1,11 @@ +1: "_Z3fooPv" +4: "_Z3fooPv" has unsupported operation: llvm.call + +4: "_Z3fooPv" has unsupported operation: llvm.return + +1: "realloc" +5: "realloc" is empty + +1: "free" +5: "free" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/realloc.txt b/SSA/Projects/InstCombine/tests/logs/realloc.txt new file mode 100644 index 000000000..15479c858 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/realloc.txt @@ -0,0 +1,12 @@ +1: "realloc" +5: "realloc" is empty + +1: "malloc" +5: "malloc" is empty + +1: "realloc_null_ptr" +4: "realloc_null_ptr" has unsupported operation: llvm.call + +1: "realloc_unknown_ptr" +4: "realloc_unknown_ptr" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/reassociate-nuw.txt b/SSA/Projects/InstCombine/tests/logs/reassociate-nuw.txt new file mode 100644 index 000000000..f7283d222 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reassociate-nuw.txt @@ -0,0 +1,123 @@ +1: "reassoc_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + +1: "reassoc_sub_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "reassoc_mul_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.return + +1: "no_reassoc_add_nuw_none" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + +1: "no_reassoc_add_none_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.return + +1: "reassoc_x2_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.add +2: llvm.add +2: llvm.return + +1: "reassoc_x2_mul_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.mul +2: llvm.mul +2: llvm.return + +1: "reassoc_x2_sub_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "tryFactorization_add_nuw_mul_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_nuw_mul_nuw_int_max" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_mul_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_nuw_mul" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_nuw_mul_nuw_mul_nuw_var" +2: llvm.func +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_nuw_mul_mul_nuw_var" +2: llvm.func +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_nuw_mul_nuw_mul_var" +2: llvm.func +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + +1: "tryFactorization_add_mul_nuw_mul_var" +2: llvm.func +2: llvm.mul +2: llvm.mul +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/recurrence.txt b/SSA/Projects/InstCombine/tests/logs/recurrence.txt new file mode 100644 index 000000000..2a6f4e456 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/recurrence.txt @@ -0,0 +1,63 @@ +1: "test_or" +4: "test_or" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_or" has unsupported operation: llvm.call + +4: "test_or" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_or2" +4: "test_or2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_or2" has unsupported operation: llvm.call + +4: "test_or2" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_or3" +4: "test_or3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_or3" has unsupported operation: llvm.call + +4: "test_or3" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_or4" +4: "test_or4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_or4" has unsupported operation: llvm.load + +4: "test_or4" has unsupported operation: llvm.call + +4: "test_or4" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_and" +4: "test_and" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_and" has unsupported operation: llvm.call + +4: "test_and" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_and2" +4: "test_and2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_and2" has unsupported operation: llvm.call + +4: "test_and2" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_and3" +4: "test_and3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_and3" has unsupported operation: llvm.call + +4: "test_and3" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_and4" +4: "test_and4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_and4" has unsupported operation: llvm.load + +4: "test_and4" has unsupported operation: llvm.call + +4: "test_and4" has unsupported operation: builtin.unregistered: llvm.br + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-add-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-add-sext-zext-i1.txt new file mode 100644 index 000000000..0e4cd36ff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-add-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_add_self" +4: "reduce_add_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_self" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_self" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "reduce_add_sext" +4: "reduce_add_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_sext" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_add_zext" +4: "reduce_add_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_zext" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_add_sext_same" +4: "reduce_add_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_sext_same" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "reduce_add_zext_long" +4: "reduce_add_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_zext_long" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_zext_long" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "reduce_add_zext_long_external_use" +4: "reduce_add_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_add_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "reduce_add_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_add_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_add_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_add_zext_external_use" +4: "reduce_add_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_add_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_add_zext_external_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_add_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_add_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_add_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_add_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-and-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-and-sext-zext-i1.txt new file mode 100644 index 000000000..6c6b2e342 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-and-sext-zext-i1.txt @@ -0,0 +1,99 @@ +1: "reduce_and_self" +4: "reduce_and_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_and_sext" +4: "reduce_and_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_and_zext" +4: "reduce_and_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_and_sext_same" +4: "reduce_and_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_and_zext_long" +4: "reduce_and_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_and_zext_long_external_use" +4: "reduce_and_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_and_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_and_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_and_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_and_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_and_zext_external_use" +4: "reduce_and_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_and_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_and_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_and_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_and_zext_external_use" has unsupported operation: llvm.store + +1: "reduce_and_pointer_cast" +4: "reduce_and_pointer_cast" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_and_pointer_cast_wide" +4: "reduce_and_pointer_cast_wide" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_wide" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_and_pointer_cast_ne" +4: "reduce_and_pointer_cast_ne" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_ne" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_and_pointer_cast_ne_wide" +4: "reduce_and_pointer_cast_ne_wide" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_ne_wide" has unsupported operation: llvm.load + +4: "reduce_and_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_and_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_and_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-mul-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-mul-sext-zext-i1.txt new file mode 100644 index 000000000..5aa9999e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-mul-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_mul_self" +4: "reduce_mul_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_mul_sext" +4: "reduce_mul_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_mul_zext" +4: "reduce_mul_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_mul_sext_same" +4: "reduce_mul_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_sext_same" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_mul_zext_long" +4: "reduce_mul_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_zext_long" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_mul_zext_long_external_use" +4: "reduce_mul_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_mul_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_mul_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_mul_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_mul_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_mul_zext_external_use" +4: "reduce_mul_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_mul_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_mul_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_mul_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_mul_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_mul_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_mul_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-or-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-or-sext-zext-i1.txt new file mode 100644 index 000000000..37fa9abb6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-or-sext-zext-i1.txt @@ -0,0 +1,99 @@ +1: "reduce_or_self" +4: "reduce_or_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_or_sext" +4: "reduce_or_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_or_zext" +4: "reduce_or_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_or_sext_same" +4: "reduce_or_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_or_zext_long" +4: "reduce_or_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_or_zext_long_external_use" +4: "reduce_or_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_or_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_or_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_or_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_or_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_or_zext_external_use" +4: "reduce_or_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_or_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_or_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_or_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_or_zext_external_use" has unsupported operation: llvm.store + +1: "reduce_or_pointer_cast" +4: "reduce_or_pointer_cast" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_or_pointer_cast_wide" +4: "reduce_or_pointer_cast_wide" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_wide" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_pointer_cast_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_or_pointer_cast_ne" +4: "reduce_or_pointer_cast_ne" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_ne" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_or_pointer_cast_ne_wide" +4: "reduce_or_pointer_cast_ne_wide" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_ne_wide" has unsupported operation: llvm.load + +4: "reduce_or_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_or_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_or_pointer_cast_ne_wide" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-shufflevector.txt b/SSA/Projects/InstCombine/tests/logs/reduction-shufflevector.txt new file mode 100644 index 000000000..1d3237574 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-shufflevector.txt @@ -0,0 +1,128 @@ +1: "reduce_add" +4: "reduce_add" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.add + +1: "reduce_or" +4: "reduce_or" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.or + +1: "reduce_and" +4: "reduce_and" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.and + +1: "reduce_xor" +4: "reduce_xor" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.xor + +1: "reduce_umax" +4: "reduce_umax" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +1: "reduce_umin" +4: "reduce_umin" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin + +1: "reduce_smax" +4: "reduce_smax" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smax + +1: "reduce_smin" +4: "reduce_smin" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin + +1: "reduce_fmax" +4: "reduce_fmax" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmax + +1: "reduce_fmin" +4: "reduce_fmin" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmin + +1: "reduce_fadd" +4: "reduce_fadd" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +1: "reduce_fmul" +4: "reduce_fmul" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmul + +1: "reduce_add_failed" +4: "reduce_add_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_add_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_add_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.add + +1: "reduce_or_failed" +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_or_failed" has unsupported operation: llvm.mlir.undef + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_or_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.or + +1: "reduce_and_failed" +4: "reduce_and_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_and_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_and_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.and + +1: "reduce_xor_failed" +4: "reduce_xor_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_xor_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_xor_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.xor + +1: "reduce_umax_failed" +4: "reduce_umax_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_umax_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +1: "reduce_umin_failed" +4: "reduce_umin_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_umin_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_umin_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin + +1: "reduce_smax_failed" +4: "reduce_smax_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_smax_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_smax_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smax + +1: "reduce_smin_failed" +4: "reduce_smin_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_smin_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_smin_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin + +1: "reduce_fmax_failed" +4: "reduce_fmax_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_fmax_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_fmax_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmax + +1: "reduce_fmin_failed" +4: "reduce_fmin_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_fmin_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_fmin_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmin + +1: "reduce_fadd_failed" +4: "reduce_fadd_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_fadd_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_fadd_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fadd + +1: "reduce_fmul_failed" +4: "reduce_fmul_failed" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "reduce_fmul_failed" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "reduce_fmul_failed" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.fmul + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-smax-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-smax-sext-zext-i1.txt new file mode 100644 index 000000000..e2a764ef0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-smax-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_smax_self" +4: "reduce_smax_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_smax_sext" +4: "reduce_smax_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smax_zext" +4: "reduce_smax_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_smax_sext_same" +4: "reduce_smax_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smax_zext_long" +4: "reduce_smax_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smax_zext_long_external_use" +4: "reduce_smax_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_smax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_smax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_smax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_smax_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_smax_zext_external_use" +4: "reduce_smax_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_smax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_smax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_smax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_smax_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-smin-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-smin-sext-zext-i1.txt new file mode 100644 index 000000000..8a886a527 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-smin-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_smin_self" +4: "reduce_smin_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_smin_sext" +4: "reduce_smin_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smin_zext" +4: "reduce_smin_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_smin_sext_same" +4: "reduce_smin_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smin_zext_long" +4: "reduce_smin_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_smin_zext_long_external_use" +4: "reduce_smin_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_smin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_smin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_smin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_smin_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_smin_zext_external_use" +4: "reduce_smin_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_smin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_smin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_smin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_smin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_smin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_smin_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-umax-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-umax-sext-zext-i1.txt new file mode 100644 index 000000000..cad8b683d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-umax-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_umax_self" +4: "reduce_umax_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_umax_sext" +4: "reduce_umax_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umax_zext" +4: "reduce_umax_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_umax_sext_same" +4: "reduce_umax_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umax_zext_long" +4: "reduce_umax_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umax_zext_long_external_use" +4: "reduce_umax_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_umax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_umax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_umax_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_umax_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_umax_zext_external_use" +4: "reduce_umax_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_umax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_umax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_umax_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_umax_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-umin-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-umin-sext-zext-i1.txt new file mode 100644 index 000000000..0af74f942 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-umin-sext-zext-i1.txt @@ -0,0 +1,63 @@ +1: "reduce_umin_self" +4: "reduce_umin_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_self" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "reduce_umin_sext" +4: "reduce_umin_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umin_zext" +4: "reduce_umin_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_zext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_umin_sext_same" +4: "reduce_umin_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_sext_same" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_sext_same" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umin_zext_long" +4: "reduce_umin_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_zext_long" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_umin_zext_long_external_use" +4: "reduce_umin_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_umin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_umin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_umin_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_umin_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_umin_zext_external_use" +4: "reduce_umin_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_umin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_umin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "reduce_umin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_umin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_umin_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_umin_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/reduction-xor-sext-zext-i1.txt b/SSA/Projects/InstCombine/tests/logs/reduction-xor-sext-zext-i1.txt new file mode 100644 index 000000000..7378e29fe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reduction-xor-sext-zext-i1.txt @@ -0,0 +1,69 @@ +1: "reduce_xor_self" +4: "reduce_xor_self" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_self" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_self" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "reduce_xor_sext" +4: "reduce_xor_sext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_sext" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "reduce_xor_sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_xor_zext" +4: "reduce_xor_zext" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_zext" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "reduce_xor_sext_same" +4: "reduce_xor_sext_same" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_sext_same" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +1: "reduce_xor_zext_long" +4: "reduce_xor_zext_long" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_zext_long" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_zext_long" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "reduce_xor_zext_long" has unsupported operation: builtin.unregistered: llvm.sext + +1: "reduce_xor_zext_long_external_use" +4: "reduce_xor_zext_long_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_xor_zext_long_external_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "reduce_xor_zext_long_external_use" has unsupported operation: llvm.store + +1: "reduce_xor_zext_external_use" +4: "reduce_xor_zext_external_use" has unsupported operation: llvm.mlir.addressof + +4: "reduce_xor_zext_external_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "reduce_xor_zext_external_use" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "reduce_xor_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_xor_zext_external_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "reduce_xor_zext_external_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "reduce_xor_zext_external_use" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-a.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-a.txt new file mode 100644 index 000000000..7514f1b75 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-a.txt @@ -0,0 +1,157 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-b.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-b.txt new file mode 100644 index 000000000..653138bfb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-b.txt @@ -0,0 +1,156 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4_allones_trunc" +4: "t4_allones_trunc" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: llvm.call + +4: "t4_allones_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n5_extrause" +4: "n5_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: llvm.call + +4: "n5_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n5_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-c.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-c.txt new file mode 100644 index 000000000..29956b394 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-c.txt @@ -0,0 +1,159 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-d.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-d.txt new file mode 100644 index 000000000..206691e95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-d.txt @@ -0,0 +1,169 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_poison" +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t2_vec_splat_poison" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: llvm.call + +4: "t2_vec_splat_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-e.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-e.txt new file mode 100644 index 000000000..f9787573e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-e.txt @@ -0,0 +1,119 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_undef" +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-f.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-f.txt new file mode 100644 index 000000000..5938704cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-after-truncation-variant-f.txt @@ -0,0 +1,130 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use8xi32" +5: "use8xi32" is empty + +1: "use8xi64" +5: "use8xi64" is empty + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: llvm.call + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_splat_undef" +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: llvm.call + +4: "t2_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n4_extrause" +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: llvm.call + +4: "n4_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4_extrause" has unsupported operation: llvm.call + +1: "n5_mask" +4: "n5_mask" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n5_mask" has unsupported operation: llvm.call + +4: "n5_mask" has unsupported operation: llvm.call + +4: "n5_mask" has unsupported operation: llvm.call + +4: "n5_mask" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-pr49778.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-pr49778.txt new file mode 100644 index 000000000..e3583ffa1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-pr49778.txt @@ -0,0 +1,3 @@ +1: "src" +4: "src" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-a.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-a.txt new file mode 100644 index 000000000..9cf428ff5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-a.txt @@ -0,0 +1,179 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "t2_bigger_mask" +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t3_vec_splat" +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +1: "t4_vec_nonsplat" +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +1: "t5_vec_poison" +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t6_commutativity0" +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +1: "t7_commutativity1" +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +1: "t8_commutativity2" +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +1: "t9_nuw" +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +1: "t10_nsw" +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +1: "t11_nuw_nsw" +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +1: "n12_not_minus_one" +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + +1: "n13_not_minus_one" +4: "n13_not_minus_one" has unsupported operation: llvm.call + +4: "n13_not_minus_one" has unsupported operation: llvm.call + +4: "n13_not_minus_one" has unsupported operation: llvm.call + +4: "n13_not_minus_one" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-b.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-b.txt new file mode 100644 index 000000000..e17555971 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-b.txt @@ -0,0 +1,162 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "t2_bigger_mask" +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +4: "t2_bigger_mask" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t3_vec_splat" +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +4: "t3_vec_splat" has unsupported operation: llvm.call + +1: "t4_vec_nonsplat" +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +1: "t5_vec_poison" +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +4: "t5_vec_poison" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t6_commutativity0" +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: llvm.call + +1: "t7_commutativity1" +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: llvm.call + +1: "t8_commutativity2" +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +4: "t8_commutativity2" has unsupported operation: llvm.call + +1: "t9_nuw" +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +4: "t9_nuw" has unsupported operation: llvm.call + +1: "t10_nsw" +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +4: "t10_nsw" has unsupported operation: llvm.call + +1: "t11_nuw_nsw" +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +4: "t11_nuw_nsw" has unsupported operation: llvm.call + +1: "n12_not_minus_one" +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-c.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-c.txt new file mode 100644 index 000000000..303940a89 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-c.txt @@ -0,0 +1,110 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +1: "t4_vec_poison" +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: llvm.call + +4: "t4_vec_poison" has unsupported operation: llvm.call + +4: "t4_vec_poison" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t5_commutativity0" +4: "t5_commutativity0" has unsupported operation: llvm.call + +4: "t5_commutativity0" has unsupported operation: llvm.call + +4: "t5_commutativity0" has unsupported operation: llvm.call + +1: "t6_commutativity1" +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +1: "t7_commutativity2" +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +1: "t8_nuw" +4: "t8_nuw" has unsupported operation: llvm.call + +4: "t8_nuw" has unsupported operation: llvm.call + +1: "t9_nsw" +4: "t9_nsw" has unsupported operation: llvm.call + +4: "t9_nsw" has unsupported operation: llvm.call + +1: "t10_nuw_nsw" +4: "t10_nuw_nsw" has unsupported operation: llvm.call + +4: "t10_nuw_nsw" has unsupported operation: llvm.call + +1: "t11_assume_uge" +4: "t11_assume_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t11_assume_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t11_assume_uge" has unsupported operation: llvm.call + +4: "t11_assume_uge" has unsupported operation: llvm.call + +1: "n12_not_minus_one" +4: "n12_not_minus_one" has unsupported operation: llvm.call + +4: "n12_not_minus_one" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-d.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-d.txt new file mode 100644 index 000000000..d2376e242 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-d.txt @@ -0,0 +1,139 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +1: "t4_vec_poison" +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_poison" has unsupported operation: llvm.call + +4: "t4_vec_poison" has unsupported operation: llvm.call + +4: "t4_vec_poison" has unsupported operation: llvm.call + +4: "t4_vec_poison" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t5_commutativity0" +4: "t5_commutativity0" has unsupported operation: llvm.call + +4: "t5_commutativity0" has unsupported operation: llvm.call + +4: "t5_commutativity0" has unsupported operation: llvm.call + +4: "t5_commutativity0" has unsupported operation: llvm.call + +1: "t6_commutativity1" +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +4: "t6_commutativity1" has unsupported operation: llvm.call + +1: "t7_commutativity2" +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +4: "t7_commutativity2" has unsupported operation: llvm.call + +1: "t8_nuw" +4: "t8_nuw" has unsupported operation: llvm.call + +4: "t8_nuw" has unsupported operation: llvm.call + +4: "t8_nuw" has unsupported operation: llvm.call + +1: "t9_nsw" +4: "t9_nsw" has unsupported operation: llvm.call + +4: "t9_nsw" has unsupported operation: llvm.call + +4: "t9_nsw" has unsupported operation: llvm.call + +1: "t10_nuw_nsw" +4: "t10_nuw_nsw" has unsupported operation: llvm.call + +4: "t10_nuw_nsw" has unsupported operation: llvm.call + +4: "t10_nuw_nsw" has unsupported operation: llvm.call + +1: "t11_assume_uge" +4: "t11_assume_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t11_assume_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t11_assume_uge" has unsupported operation: llvm.call + +4: "t11_assume_uge" has unsupported operation: llvm.call + +4: "t11_assume_uge" has unsupported operation: llvm.call + +1: "n12_different_shamts0" +4: "n12_different_shamts0" has unsupported operation: llvm.call + +4: "n12_different_shamts0" has unsupported operation: llvm.call + +4: "n12_different_shamts0" has unsupported operation: llvm.call + +1: "n13_different_shamts1" +4: "n13_different_shamts1" has unsupported operation: llvm.call + +4: "n13_different_shamts1" has unsupported operation: llvm.call + +4: "n13_different_shamts1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-e.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-e.txt new file mode 100644 index 000000000..051682fcd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-e.txt @@ -0,0 +1,83 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +1: "t4_vec_undef" +4: "t4_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: llvm.call + +4: "t4_vec_undef" has unsupported operation: llvm.call + +4: "t4_vec_undef" has unsupported operation: llvm.call + +1: "t5_nuw" +4: "t5_nuw" has unsupported operation: llvm.call + +4: "t5_nuw" has unsupported operation: llvm.call + +1: "t6_nsw" +4: "t6_nsw" has unsupported operation: llvm.call + +4: "t6_nsw" has unsupported operation: llvm.call + +1: "t7_nuw_nsw" +4: "t7_nuw_nsw" has unsupported operation: llvm.call + +4: "t7_nuw_nsw" has unsupported operation: llvm.call + +1: "t8_assume_uge" +4: "t8_assume_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8_assume_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t8_assume_uge" has unsupported operation: llvm.call + +4: "t8_assume_uge" has unsupported operation: llvm.call + +1: "n9_different_shamts0" +4: "n9_different_shamts0" has unsupported operation: llvm.call + +4: "n9_different_shamts0" has unsupported operation: llvm.call + +1: "n10_different_shamts1" +4: "n10_different_shamts1" has unsupported operation: llvm.call + +4: "n10_different_shamts1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-f.txt b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-f.txt new file mode 100644 index 000000000..23a2eba37 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-left-shift-input-masking-variant-f.txt @@ -0,0 +1,88 @@ +1: "use32" +5: "use32" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_bigger_shift" +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +4: "t1_bigger_shift" has unsupported operation: llvm.call + +1: "use3xi32" +5: "use3xi32" is empty + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +4: "t2_vec_splat" has unsupported operation: llvm.call + +1: "t3_vec_nonsplat" +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +4: "t3_vec_nonsplat" has unsupported operation: llvm.call + +1: "t4_vec_undef" +4: "t4_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_undef" has unsupported operation: llvm.call + +4: "t4_vec_undef" has unsupported operation: llvm.call + +4: "t4_vec_undef" has unsupported operation: llvm.call + +1: "t5_nuw" +4: "t5_nuw" has unsupported operation: llvm.call + +4: "t5_nuw" has unsupported operation: llvm.call + +1: "t6_nsw" +4: "t6_nsw" has unsupported operation: llvm.call + +4: "t6_nsw" has unsupported operation: llvm.call + +1: "t7_nuw_nsw" +4: "t7_nuw_nsw" has unsupported operation: llvm.call + +4: "t7_nuw_nsw" has unsupported operation: llvm.call + +1: "t8_assume_uge" +4: "t8_assume_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8_assume_uge" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t8_assume_uge" has unsupported operation: llvm.call + +4: "t8_assume_uge" has unsupported operation: llvm.call + +1: "n9_different_shamts0" +4: "n9_different_shamts0" has unsupported operation: llvm.call + +4: "n9_different_shamts0" has unsupported operation: llvm.call + +1: "n10_different_shamts1" +4: "n10_different_shamts1" has unsupported operation: llvm.call + +4: "n10_different_shamts1" has unsupported operation: llvm.call + +1: "n11_shamt_is_smaller" +4: "n11_shamt_is_smaller" has unsupported operation: llvm.call + +4: "n11_shamt_is_smaller" has unsupported operation: llvm.call + 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 new file mode 100644 index 000000000..ba3de4072 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/redundant-right-shift-input-masking.txt @@ -0,0 +1,88 @@ +1: "t0_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "t1_sshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.ashr +2: llvm.return + +1: "t2_vec" +"t2_vec" contains vectors which are unsupported + +1: "t3_vec_undef" +4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "use32" +5: "use32" is empty + +1: "t4_extrause0" +4: "t4_extrause0" has unsupported operation: llvm.call + +1: "t5_extrause1" +4: "t5_extrause1" has unsupported operation: llvm.call + +1: "t6_extrause2" +4: "t6_extrause2" has unsupported operation: llvm.call + +4: "t6_extrause2" has unsupported operation: llvm.call + +1: "t7_noncanonical_lshr_lshr_extrauses" +4: "t7_noncanonical_lshr_lshr_extrauses" has unsupported operation: llvm.call + +4: "t7_noncanonical_lshr_lshr_extrauses" has unsupported operation: llvm.call + +1: "t8_noncanonical_lshr_ashr_extrauses" +4: "t8_noncanonical_lshr_ashr_extrauses" has unsupported operation: llvm.call + +4: "t8_noncanonical_lshr_ashr_extrauses" has unsupported operation: llvm.call + +1: "t9_noncanonical_ashr_lshr_extrauses" +4: "t9_noncanonical_ashr_lshr_extrauses" has unsupported operation: llvm.call + +4: "t9_noncanonical_ashr_lshr_extrauses" has unsupported operation: llvm.call + +1: "t10_noncanonical_ashr_ashr_extrauses" +4: "t10_noncanonical_ashr_ashr_extrauses" has unsupported operation: llvm.call + +4: "t10_noncanonical_ashr_ashr_extrauses" has unsupported operation: llvm.call + +1: "gen32" +5: "gen32" is empty + +1: "t11_commutative" +4: "t11_commutative" has unsupported operation: llvm.call + +1: "n12" +7: "n12" is unchanged by InstCombine + +1: "n13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "n14" +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/rem-mul-shl.txt b/SSA/Projects/InstCombine/tests/logs/rem-mul-shl.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/rem.txt b/SSA/Projects/InstCombine/tests/logs/rem.txt new file mode 100644 index 000000000..c64c576f4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/rem.txt @@ -0,0 +1,453 @@ +1: "use" +5: "use" is empty + +1: "rem_signed" +4: "rem_signed" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "rem_signed_vec" +4: "rem_signed_vec" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "rem_unsigned" +4: "rem_unsigned" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "big_divisor" +4: "big_divisor" has unsupported operation: builtin.unregistered: llvm.freeze + +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 + +1: "srem1" +4: "srem1" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "urem2" +4: "urem2" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "urem3" +4: "urem3" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "sdiv_mul_sdiv" +4: "sdiv_mul_sdiv" has unsupported operation: builtin.unregistered: llvm.freeze + +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 +2: llvm.srem +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.urem +2: llvm.return + +1: "vec_power_of_2_constant_splat_divisor" +"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 + +1: "test3a" +4: "test3a" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3a_vec" +4: "test3a_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.select + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.srem +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.srem +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.urem +2: llvm.return + +1: "test10" +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.mul +2: llvm.urem +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.srem +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.srem +2: llvm.return + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test16" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.urem +2: llvm.return + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test17" has unsupported operation: builtin.unregistered: llvm.zext + +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 +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.urem +2: llvm.return + +1: "test19_commutative0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.urem +2: llvm.return + +1: "test19_commutative1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.urem +2: llvm.return + +1: "test19_commutative2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.and +2: llvm.add +2: llvm.urem +2: llvm.return + +1: "test20" +4: "test20" has unsupported operation: builtin.unregistered: llvm.select + +1: "test21" +4: "test21" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test21" has unsupported operation: llvm.load + +4: "test21" has unsupported operation: builtin.unregistered: llvm.br + +1: "pr27968_0" +4: "pr27968_0" has unsupported operation: llvm.mlir.addressof + +4: "pr27968_0" has unsupported operation: llvm.getelementptr + +4: "pr27968_0" has unsupported operation: llvm.mlir.addressof + +4: "pr27968_0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr27968_0" has unsupported operation: llvm.load + +4: "pr27968_0" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr27968_0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr27968_0" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pr27968_1" +4: "pr27968_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr27968_1" has unsupported operation: llvm.load + +4: "pr27968_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr27968_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pr27968_2" +4: "pr27968_2" has unsupported operation: llvm.mlir.addressof + +4: "pr27968_2" has unsupported operation: llvm.getelementptr + +4: "pr27968_2" has unsupported operation: llvm.mlir.addressof + +4: "pr27968_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr27968_2" has unsupported operation: llvm.load + +4: "pr27968_2" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr27968_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr27968_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "pr27968_3" +4: "pr27968_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr27968_3" has unsupported operation: llvm.load + +4: "pr27968_3" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr27968_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test22" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.srem +2: llvm.return + +1: "test23" +"test23" contains vectors which are unsupported + +1: "test24" +4: "test24" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test24_vec" +4: "test24_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25" +4: "test25" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25_vec" +4: "test25_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test26" +4: "test26" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test27" +4: "test27" has unsupported operation: llvm.store + +4: "test27" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test28" +4: "test28" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_and_odd_eq" +4: "positive_and_odd_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_and_odd_eq" +4: "negative_and_odd_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_and_odd_ne" +4: "positive_and_odd_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_and_odd_ne" +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 + +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 + +1: "srem_constant_dividend_select_divisor1" +4: "srem_constant_dividend_select_divisor1" has unsupported operation: builtin.unregistered: llvm.select + +1: "srem_constant_dividend_select_divisor2" +4: "srem_constant_dividend_select_divisor2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "srem_constant_dividend_select_of_constants_divisor_vec_ub1" +"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 + +4: "srem_constant_dividend_select_of_constants_divisor_vec_ub2" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "urem_constant_dividend_select_of_constants_divisor" +4: "urem_constant_dividend_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "urem_constant_dividend_select_divisor1" +4: "urem_constant_dividend_select_divisor1" has unsupported operation: builtin.unregistered: llvm.select + +1: "urem_constant_dividend_select_divisor2" +4: "urem_constant_dividend_select_divisor2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "urem_constant_dividend_select_of_constants_divisor_vec_ub1" +"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 + +1: "urem_select_of_constants_divisor" +4: "urem_select_of_constants_divisor" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "rem_pow2_or_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2_or_zero" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "rem_pow2" +4: "rem_pow2" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "rem_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "rem_pow2_domcond" +4: "rem_pow2_domcond" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "rem_pow2_domcond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2_domcond" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "rem_pow2_domcond_in_else" +4: "rem_pow2_domcond_in_else" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "rem_pow2_domcond_in_else" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2_domcond_in_else" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "rem_pow2_or_zero_domcond" +4: "rem_pow2_or_zero_domcond" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "rem_pow2_or_zero_domcond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2_or_zero_domcond" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "rem_pow2_non_domcond" +4: "rem_pow2_non_domcond" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "rem_pow2_non_domcond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "rem_pow2_non_domcond" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "rem_pow2_non_domcond" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/remove-loop-phi-multiply-by-zero.txt b/SSA/Projects/InstCombine/tests/logs/remove-loop-phi-multiply-by-zero.txt new file mode 100644 index 000000000..d6c644be3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/remove-loop-phi-multiply-by-zero.txt @@ -0,0 +1,144 @@ +1: "test_mul_fast_flags" +4: "test_mul_fast_flags" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_mul_fast_flags" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_mul_fast_flags" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_nsz_nnan_flags_enabled" +4: "test_nsz_nnan_flags_enabled" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_nsz_nnan_flags_enabled" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_nsz_nnan_flags_enabled" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_nnan_flag_enabled" +4: "test_nnan_flag_enabled" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_nnan_flag_enabled" has unsupported operation: llvm.getelementptr + +4: "test_nnan_flag_enabled" has unsupported operation: llvm.load + +4: "test_nnan_flag_enabled" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_nnan_flag_enabled" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_nnan_flag_enabled" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_ninf_flag_enabled" +4: "test_ninf_flag_enabled" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_ninf_flag_enabled" has unsupported operation: llvm.getelementptr + +4: "test_ninf_flag_enabled" has unsupported operation: llvm.load + +4: "test_ninf_flag_enabled" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_ninf_flag_enabled" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_ninf_flag_enabled" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_nsz_flag_enabled" +4: "test_nsz_flag_enabled" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_nsz_flag_enabled" has unsupported operation: llvm.getelementptr + +4: "test_nsz_flag_enabled" has unsupported operation: llvm.load + +4: "test_nsz_flag_enabled" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_nsz_flag_enabled" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_nsz_flag_enabled" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_phi_initalise_to_non_zero" +4: "test_phi_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_phi_initalise_to_non_zero" has unsupported operation: llvm.getelementptr + +4: "test_phi_initalise_to_non_zero" has unsupported operation: llvm.load + +4: "test_phi_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_phi_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_phi_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_multiple_phi_operands" +4: "test_multiple_phi_operands" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_phi_operands" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_phi_operands" has unsupported operation: llvm.getelementptr + +4: "test_multiple_phi_operands" has unsupported operation: llvm.load + +4: "test_multiple_phi_operands" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_multiple_phi_operands" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multiple_phi_operands" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_multiple_phi_operands_with_non_zero" +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: llvm.getelementptr + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: llvm.load + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multiple_phi_operands_with_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_int_phi_operands" +4: "test_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_int_phi_operands" has unsupported operation: llvm.getelementptr + +4: "test_int_phi_operands" has unsupported operation: llvm.load + +4: "test_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_int_phi_operands_initalise_to_non_zero" +4: "test_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_int_phi_operands_initalise_to_non_zero" has unsupported operation: llvm.getelementptr + +4: "test_int_phi_operands_initalise_to_non_zero" has unsupported operation: llvm.load + +4: "test_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_multiple_int_phi_operands" +4: "test_multiple_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_int_phi_operands" has unsupported operation: llvm.getelementptr + +4: "test_multiple_int_phi_operands" has unsupported operation: llvm.load + +4: "test_multiple_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multiple_int_phi_operands" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test_multiple_int_phi_operands_initalise_to_non_zero" +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: llvm.getelementptr + +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: llvm.load + +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multiple_int_phi_operands_initalise_to_non_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/remquo.txt b/SSA/Projects/InstCombine/tests/logs/remquo.txt new file mode 100644 index 000000000..26a2e2027 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/remquo.txt @@ -0,0 +1,39 @@ +1: "remquo_f32" +4: "remquo_f32" has unsupported operation: llvm.store + +1: "remquo_f32_quo_sign" +4: "remquo_f32_quo_sign" has unsupported operation: llvm.store + +1: "remquo_f32_round" +4: "remquo_f32_round" has unsupported operation: llvm.store + +1: "remquo_f64" +4: "remquo_f64" has unsupported operation: llvm.store + +1: "remquo_f32_inf_x" +4: "remquo_f32_inf_x" has unsupported operation: llvm.call + +1: "remquo_f32_zero_y" +4: "remquo_f32_zero_y" has unsupported operation: llvm.call + +1: "remquo_f32_nzero_y" +4: "remquo_f32_nzero_y" has unsupported operation: llvm.call + +1: "remquo_f32_nan_x" +4: "remquo_f32_nan_x" has unsupported operation: llvm.call + +1: "remquo_f32_nan_y" +4: "remquo_f32_nan_y" has unsupported operation: llvm.call + +1: "remquo_f32_strictfp" +4: "remquo_f32_strictfp" has unsupported operation: llvm.call + +1: "remquo_f32_zero_y_strictfp" +4: "remquo_f32_zero_y_strictfp" has unsupported operation: llvm.call + +1: "remquof" +5: "remquof" is empty + +1: "remquo" +5: "remquo" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/remquol-fp128.txt b/SSA/Projects/InstCombine/tests/logs/remquol-fp128.txt new file mode 100644 index 000000000..3425fdf78 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/remquol-fp128.txt @@ -0,0 +1,6 @@ +1: "remquo_fp128" +4: "remquo_fp128" has unsupported operation: llvm.store + +1: "remquol" +5: "remquol" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/remquol-fp80.txt b/SSA/Projects/InstCombine/tests/logs/remquol-fp80.txt new file mode 100644 index 000000000..d43faa4d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/remquol-fp80.txt @@ -0,0 +1,6 @@ +1: "remquo_fp80" +4: "remquo_fp80" has unsupported operation: llvm.store + +1: "remquol" +5: "remquol" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/remquol-ppc-fp128.txt b/SSA/Projects/InstCombine/tests/logs/remquol-ppc-fp128.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-is-non-zero-and-no-underflow.txt b/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-is-non-zero-and-no-underflow.txt new file mode 100644 index 000000000..f3d6529f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-is-non-zero-and-no-underflow.txt @@ -0,0 +1,228 @@ +1: "use8" +5: "use8" is empty + +1: "use1" +5: "use1" is empty + +1: "t0_bad" +4: "t0_bad" has unsupported operation: llvm.call + +4: "t0_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t0_bad_logical" +4: "t0_bad_logical" has unsupported operation: llvm.call + +4: "t0_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t1" has unsupported operation: llvm.call + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_logical" +4: "t1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t1_logical" has unsupported operation: llvm.call + +4: "t1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t2" has unsupported operation: llvm.call + +4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_logical" +4: "t2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t2_logical" has unsupported operation: llvm.call + +4: "t2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_oneuse0" +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_oneuse0_logical" +4: "t3_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t3_oneuse0_logical" has unsupported operation: llvm.call + +4: "t3_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3_oneuse0_logical" has unsupported operation: llvm.call + +4: "t3_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_oneuse1" +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_oneuse1_logical" +4: "t4_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t4_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t4_oneuse1_logical" has unsupported operation: llvm.call + +4: "t4_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t4_oneuse1_logical" has unsupported operation: llvm.call + +4: "t4_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_oneuse2_bad" +4: "t5_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t5_oneuse2_bad" has unsupported operation: llvm.call + +4: "t5_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad" has unsupported operation: llvm.call + +4: "t5_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad" has unsupported operation: llvm.call + +1: "t5_oneuse2_bad_logical" +4: "t5_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t5_oneuse2_bad_logical" has unsupported operation: llvm.call + +4: "t5_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad_logical" has unsupported operation: llvm.call + +4: "t5_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t5_oneuse2_bad_logical" has unsupported operation: llvm.call + +1: "t6_commutativity0" +4: "t6_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t6_commutativity0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t6_commutativity0" has unsupported operation: llvm.call + +4: "t6_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_commutativity0_logical" +4: "t6_commutativity0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t6_commutativity0_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t6_commutativity0_logical" has unsupported operation: llvm.call + +4: "t6_commutativity0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_commutativity1" +4: "t7_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7_commutativity1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t7_commutativity1" has unsupported operation: llvm.call + +4: "t7_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_commutativity1_logical" +4: "t7_commutativity1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7_commutativity1_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t7_commutativity1_logical" has unsupported operation: llvm.call + +4: "t7_commutativity1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_commutativity3" +4: "t7_commutativity3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7_commutativity3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t7_commutativity3" has unsupported operation: llvm.call + +4: "t7_commutativity3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_commutativity3_logical" +4: "t7_commutativity3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7_commutativity3_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t7_commutativity3_logical" has unsupported operation: llvm.call + +4: "t7_commutativity3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t8" has unsupported operation: llvm.call + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8_logical" +4: "t8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t8_logical" has unsupported operation: llvm.call + +4: "t8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9" +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t9" has unsupported operation: llvm.call + +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9_logical" +4: "t9_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9_logical" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t9_logical" has unsupported operation: llvm.call + +4: "t9_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-or-zero-is-non-zero-and-no-underflow.txt b/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-or-zero-is-non-zero-and-no-underflow.txt new file mode 100644 index 000000000..bd4e58f81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/result-of-add-of-negative-or-zero-is-non-zero-and-no-underflow.txt @@ -0,0 +1,124 @@ +1: "use8" +5: "use8" is empty + +1: "use1" +5: "use1" is empty + +1: "t0" +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t0_logical" +4: "t0_logical" has unsupported operation: llvm.call + +4: "t0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_oneuse0" +4: "t1_oneuse0" has unsupported operation: llvm.call + +4: "t1_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t1_oneuse0" has unsupported operation: llvm.call + +4: "t1_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_oneuse0_logical" +4: "t1_oneuse0_logical" has unsupported operation: llvm.call + +4: "t1_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t1_oneuse0_logical" has unsupported operation: llvm.call + +4: "t1_oneuse0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_oneuse1" +4: "t2_oneuse1" has unsupported operation: llvm.call + +4: "t2_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2_oneuse1" has unsupported operation: llvm.call + +4: "t2_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_oneuse1_logical" +4: "t2_oneuse1_logical" has unsupported operation: llvm.call + +4: "t2_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2_oneuse1_logical" has unsupported operation: llvm.call + +4: "t2_oneuse1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3_oneuse2_bad" +4: "n3_oneuse2_bad" has unsupported operation: llvm.call + +4: "n3_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n3_oneuse2_bad" has unsupported operation: llvm.call + +4: "n3_oneuse2_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n3_oneuse2_bad" has unsupported operation: llvm.call + +1: "n3_oneuse2_bad_logical" +4: "n3_oneuse2_bad_logical" has unsupported operation: llvm.call + +4: "n3_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n3_oneuse2_bad_logical" has unsupported operation: llvm.call + +4: "n3_oneuse2_bad_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n3_oneuse2_bad_logical" has unsupported operation: llvm.call + +1: "t4_commutativity0" +4: "t4_commutativity0" has unsupported operation: llvm.call + +4: "t4_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_commutativity0_logical" +4: "t4_commutativity0_logical" has unsupported operation: llvm.call + +4: "t4_commutativity0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutativity1" +4: "t5_commutativity1" has unsupported operation: llvm.call + +4: "t5_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutativity1_logical" +4: "t5_commutativity1_logical" has unsupported operation: llvm.call + +4: "t5_commutativity1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_commutativity3" +4: "t6_commutativity3" has unsupported operation: llvm.call + +4: "t6_commutativity3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_commutativity3_logical" +4: "t6_commutativity3_logical" has unsupported operation: llvm.call + +4: "t6_commutativity3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7" +4: "t7" has unsupported operation: llvm.call + +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_logical" +4: "t7_logical" has unsupported operation: llvm.call + +4: "t7_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8" +4: "t8" has unsupported operation: llvm.call + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8_logical" +4: "t8_logical" has unsupported operation: llvm.call + +4: "t8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/result-of-usub-is-non-zero-and-no-overflow.txt b/SSA/Projects/InstCombine/tests/logs/result-of-usub-is-non-zero-and-no-overflow.txt new file mode 100644 index 000000000..551e59408 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/result-of-usub-is-non-zero-and-no-overflow.txt @@ -0,0 +1,2 @@ +3: result-of-usub-is-non-zero-and-no-overflow.ll: parsing has failed + 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 new file mode 100644 index 000000000..565efb72c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/reuse-constant-from-select-in-icmp.txt @@ -0,0 +1,166 @@ +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 + +4: "p9_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "p9_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p9_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "p10_vec_nonsplat_poison2" has unsupported operation: llvm.mlir.undef + +4: "p10_vec_nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "p10_vec_nonsplat_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "n12_extrause" +4: "n12_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..73caf32ca --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/rotate.txt @@ -0,0 +1,249 @@ +1: "rotl_i32_constant" +4: "rotl_i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_i42_constant" +4: "rotr_i42_constant" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_i8_constant_commute" +4: "rotr_i8_constant_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_i88_constant_commute" +4: "rotl_i88_constant_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_v2i16_constant_splat" +4: "rotl_v2i16_constant_splat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_v2i16_constant_splat_poison0" +4: "rotl_v2i16_constant_splat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_v2i16_constant_splat_poison1" +4: "rotl_v2i16_constant_splat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i17_constant_splat" +4: "rotr_v2i17_constant_splat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i17_constant_splat_poison0" +4: "rotr_v2i17_constant_splat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i17_constant_splat_poison1" +4: "rotr_v2i17_constant_splat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i32_constant_nonsplat" +4: "rotr_v2i32_constant_nonsplat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i32_constant_nonsplat_poison0" +4: "rotr_v2i32_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotr_v2i32_constant_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "rotr_v2i32_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotr_v2i32_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotr_v2i32_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_v2i32_constant_nonsplat_poison1" +4: "rotr_v2i32_constant_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_v2i36_constant_nonsplat" +4: "rotl_v2i36_constant_nonsplat" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_v3i36_constant_nonsplat_poison0" +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "rotl_v3i36_constant_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_i32" +7: "rotl_i32" is unchanged by InstCombine + +1: "rotr_i37" +7: "rotr_i37" is unchanged by InstCombine + +1: "rotr_i8_commute" +7: "rotr_i8_commute" is unchanged by InstCombine + +1: "rotl_v4i32" +7: "rotl_v4i32" is unchanged by InstCombine + +1: "rotr_v3i42" +7: "rotr_v3i42" is unchanged by InstCombine + +1: "rotl_safe_i32" +4: "rotl_safe_i32" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_safe_i16_commute_extra_use" +4: "rotl_safe_i16_commute_extra_use" has unsupported operation: llvm.store + +4: "rotl_safe_i16_commute_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_safe_i64" +4: "rotr_safe_i64" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotr_safe_i8_commute_extra_use" +4: "rotr_safe_i8_commute_extra_use" has unsupported operation: llvm.store + +1: "rotl_safe_v2i32" +4: "rotl_safe_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_safe_v3i16" +4: "rotr_safe_v3i16" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotate_left_16bit" +4: "rotate_left_16bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_left_16bit" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotate_left_commute_16bit_vec" +4: "rotate_left_commute_16bit_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_left_commute_16bit_vec" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotate_right_8bit" +4: "rotate_right_8bit" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotate_right_8bit" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotate_right_commute_8bit_unmasked_shl" +4: "rotate_right_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit_unmasked_shl" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotate_right_commute_8bit" +4: "rotate_right_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate_right_commute_8bit" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotate8_not_safe" +4: "rotate8_not_safe" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotate8_not_safe" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotate9_not_safe" +4: "rotate9_not_safe" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotate9_not_safe" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "rotateleft_16_neg_mask" +4: "rotateleft_16_neg_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateleft_16_neg_mask_commute" +4: "rotateleft_16_neg_mask_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateright_8_neg_mask" +4: "rotateright_8_neg_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotateright_8_neg_mask_commute" +4: "rotateright_8_neg_mask_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotateright_16_neg_mask_wide_amount" +4: "rotateright_16_neg_mask_wide_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotateright_16_neg_mask_wide_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotateright_16_neg_mask_wide_amount_commute" +4: "rotateright_16_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotateright_16_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotateright_64_zext_neg_mask_amount" +4: "rotateright_64_zext_neg_mask_amount" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotateright_64_zext_neg_mask_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotateleft_8_neg_mask_wide_amount" +4: "rotateleft_8_neg_mask_wide_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotateleft_8_neg_mask_wide_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateleft_8_neg_mask_wide_amount_commute" +4: "rotateleft_8_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "rotateleft_8_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateleft_64_zext_neg_mask_amount" +4: "rotateleft_64_zext_neg_mask_amount" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotateleft_64_zext_neg_mask_amount" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateleft_9_neg_mask_wide_amount_commute" +4: "rotateleft_9_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotateleft_9_neg_mask_wide_amount_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "rotl_sub_mask" +4: "rotl_sub_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_sub_mask" +4: "rotr_sub_mask" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotr_sub_mask_vector" +4: "rotr_sub_mask_vector" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotr_select" +4: "rotr_select" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotr_select_commute" +4: "rotr_select_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotl_select" +4: "rotl_select" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotl_select_commute" +4: "rotl_select_commute" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +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 + +4: "rotl_select_zext_shamt" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotr_select_zext_shamt" +4: "rotr_select_zext_shamt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotr_select_zext_shamt" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "rotl_constant_expr" +4: "rotl_constant_expr" has unsupported operation: llvm.mlir.addressof + +4: "rotl_constant_expr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "rotateleft32_doubleand1" +4: "rotateleft32_doubleand1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotateleft32_doubleand1" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "rotateright32_doubleand1" +4: "rotateright32_doubleand1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "rotateright32_doubleand1" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "unmasked_shlop_unmasked_shift_amount" +4: "unmasked_shlop_unmasked_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "check_rotate_masked_16bit" +4: "check_rotate_masked_16bit" has unsupported operation: builtin.unregistered: llvm.zext + +4: "check_rotate_masked_16bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "check_rotate_masked_16bit" has unsupported operation: builtin.unregistered: llvm.intr.fshr + diff --git a/SSA/Projects/InstCombine/tests/logs/sadd-with-overflow.txt b/SSA/Projects/InstCombine/tests/logs/sadd-with-overflow.txt new file mode 100644 index 000000000..8d117d455 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sadd-with-overflow.txt @@ -0,0 +1,2 @@ +3: sadd-with-overflow.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/sadd_sat.txt b/SSA/Projects/InstCombine/tests/logs/sadd_sat.txt new file mode 100644 index 000000000..b5b5d7cb1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sadd_sat.txt @@ -0,0 +1,271 @@ +1: "sadd_sat32" +4: "sadd_sat32" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_sat32_mm" +4: "sadd_sat32_mm" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_sat32" +4: "ssub_sat32" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "ssub_sat32_mm" +4: "ssub_sat32_mm" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "smul_sat32" +4: "smul_sat32" has unsupported operation: builtin.unregistered: llvm.sext + +4: "smul_sat32" has unsupported operation: builtin.unregistered: llvm.sext + +4: "smul_sat32" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smul_sat32" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smul_sat32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "smul_sat32_mm" +4: "smul_sat32_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "smul_sat32_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "smul_sat32_mm" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smul_sat32_mm" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smul_sat32_mm" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sadd_sat16" +4: "sadd_sat16" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_sat16_mm" +4: "sadd_sat16_mm" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_sat16" +4: "ssub_sat16" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "ssub_sat16_mm" +4: "ssub_sat16_mm" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "sadd_sat8" +4: "sadd_sat8" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_sat8_mm" +4: "sadd_sat8_mm" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_sat8" +4: "ssub_sat8" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "ssub_sat8_mm" +4: "ssub_sat8_mm" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "sadd_sat64" +4: "sadd_sat64" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_sat64" +4: "ssub_sat64" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "sadd_sat4" +4: "sadd_sat4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat4" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "ssub_sat4" +4: "ssub_sat4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ssub_sat4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ssub_sat4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "ssub_sat4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "ssub_sat4" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sadd_satv4i32" +4: "sadd_satv4i32" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_satv4i32_mm" +4: "sadd_satv4i32_mm" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ssub_satv4i32" +4: "ssub_satv4i32" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "ssub_satv4i32_mm" +4: "ssub_satv4i32_mm" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "sadd_satv4i4" +4: "sadd_satv4i4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_satv4i4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "ssub_satv4i4" +4: "ssub_satv4i4" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "ssub_satv4i4" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sadd_sat32_extrause_1" +4: "sadd_sat32_extrause_1" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "sadd_sat32_extrause_1" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_1" has unsupported operation: llvm.call + +1: "sadd_sat32_extrause_2" +4: "sadd_sat32_extrause_2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat32_extrause_2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat32_extrause_2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sadd_sat32_extrause_2" has unsupported operation: llvm.call + +1: "sadd_sat32_extrause_2_mm" +4: "sadd_sat32_extrause_2_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_2_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_2_mm" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat32_extrause_2_mm" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat32_extrause_2_mm" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sadd_sat32_extrause_2_mm" has unsupported operation: llvm.call + +1: "sadd_sat32_extrause_3" +4: "sadd_sat32_extrause_3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat32_extrause_3" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat32_extrause_3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sadd_sat32_extrause_3" has unsupported operation: llvm.call + +1: "sadd_sat32_extrause_3_mm" +4: "sadd_sat32_extrause_3_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_3_mm" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_extrause_3_mm" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat32_extrause_3_mm" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat32_extrause_3_mm" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sadd_sat32_extrause_3_mm" has unsupported operation: llvm.call + +1: "sadd_sat32_trunc" +4: "sadd_sat32_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_trunc" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat32_trunc" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat32_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sadd_sat32_ext16" +4: "sadd_sat32_ext16" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat32_ext16" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_sat8_ext8" +4: "sadd_sat8_ext8" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat8_ext8" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sadd_sat8_ext8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sadd_sat8_ext8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sadd_sat8_ext8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sadd_sat32_zext" +4: "sadd_sat32_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sadd_sat32_zext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sadd_sat32_zext" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "sadd_sat32_zext" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sadd_sat32_maxmin" +4: "sadd_sat32_maxmin" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "sadd_sat32_notrunc" +4: "sadd_sat32_notrunc" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "sadd_sat32_notrunc" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashrA" +4: "ashrA" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrA" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ashrB" +4: "ashrB" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrB" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ashrAB" +4: "ashrAB" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrAB" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrAB" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ashrA31" +4: "ashrA31" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashrA31" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "ashrA31" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "ashrA31" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "ashrA33" +4: "ashrA33" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrA33" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "ashrv2i8" +4: "ashrv2i8" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashrv2i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "ashrv2i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "ashrv2i8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "ashrv2i8_s" +4: "ashrv2i8_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "ashrv2i8_s" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "or" +4: "or" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "or" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +4: "or" has unsupported operation: builtin.unregistered: llvm.sext + +1: "const" +4: "const" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "const" has unsupported operation: builtin.unregistered: llvm.sext + +1: "use64" +5: "use64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/saddo.txt b/SSA/Projects/InstCombine/tests/logs/saddo.txt new file mode 100644 index 000000000..6c9a6f889 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/saddo.txt @@ -0,0 +1,31 @@ +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "test_generic" has unsupported operation: llvm.extractvalue + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/salvage-dbg-declare.txt b/SSA/Projects/InstCombine/tests/logs/salvage-dbg-declare.txt new file mode 100644 index 000000000..24d8fe995 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/salvage-dbg-declare.txt @@ -0,0 +1,12 @@ +1: "bar" +5: "bar" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.dbg.declare + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.unreachable + diff --git a/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt b/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt new file mode 100644 index 000000000..051ed6607 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/saturating-add-sub.txt @@ -0,0 +1,698 @@ +1: "test_scalar_uadd_canonical" +4: "test_scalar_uadd_canonical" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_vector_uadd_canonical" +4: "test_vector_uadd_canonical" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_sadd_canonical" +4: "test_scalar_sadd_canonical" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_sadd_canonical" +4: "test_vector_sadd_canonical" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_uadd_combine" +4: "test_scalar_uadd_combine" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_vector_uadd_combine" +4: "test_vector_uadd_combine" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_vector_uadd_combine_non_splat" +4: "test_vector_uadd_combine_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "test_vector_uadd_combine_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_overflow" +4: "test_scalar_uadd_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat + +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 + +1: "test_scalar_sadd_both_positive" +4: "test_scalar_sadd_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_sadd_both_positive" +4: "test_vector_sadd_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_sadd_both_negative" +4: "test_scalar_sadd_both_negative" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_sadd_both_negative" +4: "test_vector_sadd_both_negative" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_sadd_different_sign" +4: "test_scalar_sadd_different_sign" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "test_scalar_sadd_different_sign" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_sadd_overflow" +4: "test_scalar_sadd_overflow" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "test_scalar_sadd_overflow" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_uadd_neg_neg" +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 + +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 + +1: "test_scalar_uadd_neg_nneg" +4: "test_scalar_uadd_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_vector_uadd_neg_nneg" +4: "test_vector_uadd_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_never_overflows" +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 + +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 + +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 + +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 + +1: "test_scalar_sadd_neg_neg" +4: "test_scalar_sadd_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_sadd_neg_neg" +4: "test_vector_sadd_neg_neg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +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" +4: "test_scalar_uadd_sub_nuw_lost_no_ov" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_urem_no_ov" +4: "test_scalar_uadd_urem_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_urem_may_ov" +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 + +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 + +1: "test_scalar_sadd_srem_may_ov" +4: "test_scalar_sadd_srem_may_ov" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_sadd_srem_and_no_ov" +4: "test_scalar_sadd_srem_and_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_usub_canonical" +4: "test_scalar_usub_canonical" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_ssub_canonical" +4: "test_scalar_ssub_canonical" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_ssub_canonical" +4: "test_vector_ssub_canonical" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_ssub_canonical_min_non_splat" +4: "test_vector_ssub_canonical_min_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_ssub_canonical_min" +4: "test_scalar_ssub_canonical_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "test_vector_ssub_canonical_min" +4: "test_vector_ssub_canonical_min" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "test_scalar_usub_combine" +4: "test_scalar_usub_combine" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_simplify_decrement" +4: "test_simplify_decrement" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "use.i1" +5: "use.i1" is empty + +1: "test_simplify_decrement_ne" +4: "test_simplify_decrement_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_simplify_decrement_ne" has unsupported operation: llvm.call + +4: "test_simplify_decrement_ne" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_simplify_decrement_vec" +4: "test_simplify_decrement_vec" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_simplify_decrement_vec_poison" +4: "test_simplify_decrement_vec_poison" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_simplify_decrement_invalid_ne" +4: "test_simplify_decrement_invalid_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_simplify_decrement_invalid_ne" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +1: "test_vector_usub_combine_non_splat" +4: "test_vector_usub_combine_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "test_vector_usub_combine_non_splat" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_overflow" +4: "test_scalar_usub_overflow" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +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 + +1: "test_scalar_ssub_both_positive" +4: "test_scalar_ssub_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_ssub_both_positive" +4: "test_vector_ssub_both_positive" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_ssub_both_negative" +4: "test_scalar_ssub_both_negative" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_ssub_both_negative" +4: "test_vector_ssub_both_negative" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_ssub_different_sign" +4: "test_scalar_ssub_different_sign" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "test_scalar_ssub_different_sign" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_sadd_ssub" +4: "test_scalar_sadd_ssub" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_sadd_ssub" +4: "test_vector_sadd_ssub" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_ssub_overflow" +4: "test_scalar_ssub_overflow" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +4: "test_scalar_ssub_overflow" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_scalar_usub_nneg_neg" +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 + +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 + +1: "test_scalar_usub_nneg_nneg" +4: "test_scalar_usub_nneg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_vector_usub_nneg_nneg" +4: "test_vector_usub_nneg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_never_overflows" +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 + +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 + +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 + +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 + +1: "test_scalar_ssub_neg_nneg" +4: "test_scalar_ssub_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "test_vector_ssub_neg_nneg" +4: "test_vector_ssub_neg_nneg" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +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" +4: "test_scalar_usub_add_nuw_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_nuw_nsw_no_ov" +4: "test_scalar_usub_add_nuw_nsw_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_nuw_eq" +4: "test_scalar_usub_add_nuw_eq" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_nuw_may_ov" +4: "test_scalar_usub_add_nuw_may_ov" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_urem_must_ov" +4: "test_scalar_usub_urem_must_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_urem_must_zero" +4: "test_scalar_usub_urem_must_zero" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_nuw_known_bits" +4: "test_scalar_usub_add_nuw_known_bits" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_nuw_inferred" +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 + +1: "test_vector_usub_add_nuw_no_ov_nonsplat1" +"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 + +4: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" has unsupported operation: llvm.mlir.undef + +4: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_vector_usub_add_nuw_no_ov_nonsplat1_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test_vector_usub_add_nuw_no_ov_nonsplat2" +4: "test_vector_usub_add_nuw_no_ov_nonsplat2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_vector_usub_add_nuw_no_ov_nonsplat3" +4: "test_vector_usub_add_nuw_no_ov_nonsplat3" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_ssub_add_nsw_no_ov" +4: "test_scalar_ssub_add_nsw_no_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.sat + +1: "test_scalar_ssub_add_nsw_may_ov" +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 + +1: "test_vector_ssub_add_nsw_no_ov_nonsplat1" +"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 + +1: "test_vector_ssub_add_nsw_no_ov_nonsplat3" +4: "test_vector_ssub_add_nsw_no_ov_nonsplat3" has unsupported operation: builtin.unregistered: llvm.intr.ssub.sat + +1: "test_scalar_usub_add" +4: "test_scalar_usub_add" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_scalar_usub_add_extra_use" +4: "test_scalar_usub_add_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "test_scalar_usub_add_extra_use" has unsupported operation: llvm.store + +1: "test_scalar_usub_add_commuted" +4: "test_scalar_usub_add_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_scalar_usub_add_commuted_wrong" +4: "test_scalar_usub_add_commuted_wrong" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_add_const" +4: "test_scalar_usub_add_const" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test_scalar_usub_sub" +4: "test_scalar_usub_sub" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_scalar_usub_sub_extra_use" +4: "test_scalar_usub_sub_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "test_scalar_usub_sub_extra_use" has unsupported operation: llvm.store + +1: "test_vector_usub_sub" +4: "test_vector_usub_sub" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test_scalar_usub_sub_wrong" +4: "test_scalar_usub_sub_wrong" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_usub_sub_wrong2" +4: "test_scalar_usub_sub_wrong2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "test_scalar_uadd_sub" +4: "test_scalar_uadd_sub" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_sub_extra_use" +4: "test_scalar_uadd_sub_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +4: "test_scalar_uadd_sub_extra_use" has unsupported operation: llvm.store + +1: "test_scalar_uadd_sub_commuted" +4: "test_scalar_uadd_sub_commuted" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_sub_commuted_wrong" +4: "test_scalar_uadd_sub_commuted_wrong" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "test_scalar_uadd_sub_const" +4: "test_scalar_uadd_sub_const" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "scalar_uadd_eq_zero" +4: "scalar_uadd_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_uadd_ne_zero" +4: "scalar_uadd_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_usub_eq_zero" +4: "scalar_usub_eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_usub_ne_zero" +4: "scalar_usub_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uadd_sat" +4: "uadd_sat" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_flipped" +4: "uadd_sat_flipped" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_flipped2" +4: "uadd_sat_flipped2" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +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 + +1: "uadd_sat_flipped4_vector" +4: "uadd_sat_flipped4_vector" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_flipped4_poison_vector" +4: "uadd_sat_flipped4_poison_vector" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_flipped4_poison_vector_compare" +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 + +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 + +1: "uadd_sat_commute_add" +4: "uadd_sat_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_ugt" +4: "uadd_sat_ugt" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_uge" +4: "uadd_sat_uge" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_ugt_commute_add" +4: "uadd_sat_ugt_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_commute_select" +4: "uadd_sat_commute_select" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_commute_select_nonstrict" +4: "uadd_sat_commute_select_nonstrict" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_commute_select_commute_add" +4: "uadd_sat_commute_select_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_commute_select_ugt" +4: "uadd_sat_commute_select_ugt" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_commute_select_ugt_commute_add" +4: "uadd_sat_commute_select_ugt_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +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 + +1: "uadd_sat_not_nonstrict" +4: "uadd_sat_not_nonstrict" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_add" +4: "uadd_sat_not_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_ugt" +4: "uadd_sat_not_ugt" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_uge" +4: "uadd_sat_not_uge" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_ugt_commute_add" +4: "uadd_sat_not_ugt_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select" +4: "uadd_sat_not_commute_select" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select_nonstrict" +4: "uadd_sat_not_commute_select_nonstrict" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select_commute_add" +4: "uadd_sat_not_commute_select_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select_ugt" +4: "uadd_sat_not_commute_select_ugt" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select_ugt_commute_add" +4: "uadd_sat_not_commute_select_ugt_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_not_commute_select_uge_commute_add" +4: "uadd_sat_not_commute_select_uge_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_constant" +4: "uadd_sat_constant" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_constant_commute" +4: "uadd_sat_constant_commute" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_canon" +4: "uadd_sat_canon" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_canon_y" +4: "uadd_sat_canon_y" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +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 + +1: "uadd_sat_constant_vec_commute" +4: "uadd_sat_constant_vec_commute" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "uadd_sat_constant_vec_commute_undefs" +4: "uadd_sat_constant_vec_commute_undefs" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "get_i32" +5: "get_i32" is empty + +1: "get_v2i8" +5: "get_v2i8" is empty + +1: "unsigned_sat_variable_using_min_add" +4: "unsigned_sat_variable_using_min_add" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_min_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_variable_using_min_commute_add" +4: "unsigned_sat_variable_using_min_commute_add" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_min_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_variable_using_min_commute_select" +4: "unsigned_sat_variable_using_min_commute_select" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_min_commute_select" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_variable_using_min_commute_add_select" +4: "unsigned_sat_variable_using_min_commute_add_select" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_min_commute_add_select" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_variable_using_wrong_min" +4: "unsigned_sat_variable_using_wrong_min" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_wrong_min" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "unsigned_sat_variable_using_wrong_value" +4: "unsigned_sat_variable_using_wrong_value" has unsupported operation: llvm.call + +4: "unsigned_sat_variable_using_wrong_value" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "unsigned_sat_constant_using_min" +4: "unsigned_sat_constant_using_min" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_constant_using_min_splat" +4: "unsigned_sat_constant_using_min_splat" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +1: "unsigned_sat_constant_using_min_wrong_constant" +4: "unsigned_sat_constant_using_min_wrong_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "uadd_sat_via_add" +4: "uadd_sat_via_add" has unsupported operation: builtin.unregistered: llvm.intr.uadd.sat + +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/scalable-bitcast-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/scalable-bitcast-inseltpoison.txt new file mode 100644 index 000000000..eac641bf8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalable-bitcast-inseltpoison.txt @@ -0,0 +1,2 @@ +3: scalable-bitcast-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/scalable-bitcast.txt new file mode 100644 index 000000000..2cff99f10 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalable-bitcast.txt @@ -0,0 +1,2 @@ +3: scalable-bitcast.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-cast-of-alloc.txt b/SSA/Projects/InstCombine/tests/logs/scalable-cast-of-alloc.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-const-fp-splat.txt b/SSA/Projects/InstCombine/tests/logs/scalable-const-fp-splat.txt new file mode 100644 index 000000000..b96837826 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalable-const-fp-splat.txt @@ -0,0 +1,2 @@ +3: scalable-const-fp-splat.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-select.txt b/SSA/Projects/InstCombine/tests/logs/scalable-select.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-trunc.txt b/SSA/Projects/InstCombine/tests/logs/scalable-trunc.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-vector-array.txt b/SSA/Projects/InstCombine/tests/logs/scalable-vector-array.txt new file mode 100644 index 000000000..c131b948b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalable-vector-array.txt @@ -0,0 +1,2 @@ +3: scalable-vector-array.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/scalable-vector-struct.txt b/SSA/Projects/InstCombine/tests/logs/scalable-vector-struct.txt new file mode 100644 index 000000000..837baa361 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalable-vector-struct.txt @@ -0,0 +1,2 @@ +3: scalable-vector-struct.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/scalarization-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/scalarization-inseltpoison.txt new file mode 100644 index 000000000..f65f3237c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalarization-inseltpoison.txt @@ -0,0 +1,175 @@ +1: "extract_load" +4: "extract_load" has unsupported operation: llvm.load + +4: "extract_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_fp" +4: "extract_load_fp" has unsupported operation: llvm.load + +4: "extract_load_fp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_volatile" +4: "extract_load_volatile" has unsupported operation: llvm.load + +4: "extract_load_volatile" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_extra_use" +4: "extract_load_extra_use" has unsupported operation: llvm.load + +4: "extract_load_extra_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_load_extra_use" has unsupported operation: llvm.store + +1: "extract_load_variable_index" +4: "extract_load_variable_index" has unsupported operation: llvm.load + +4: "extract_load_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "scalarize_phi" +4: "scalarize_phi" has unsupported operation: llvm.load + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "scalarize_phi" has unsupported operation: llvm.load + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "scalarize_phi" has unsupported operation: llvm.store + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "scalarize_phi" has unsupported operation: llvm.return + +1: "extract_element_binop_splat_constant_index" +4: "extract_element_binop_splat_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_splat_constant_index" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extract_element_binop_splat_with_undef_constant_index" +4: "extract_element_binop_splat_with_undef_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_splat_with_undef_constant_index" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "extract_element_binop_nonsplat_constant_index" +4: "extract_element_binop_nonsplat_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_nonsplat_constant_index" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "extract_element_binop_splat_variable_index" +4: "extract_element_binop_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_splat_with_undef_variable_index" +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_nonsplat_variable_index" +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_load" +4: "extract_element_load" has unsupported operation: llvm.load + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extract_element_multi_Use_load" +4: "extract_element_multi_Use_load" has unsupported operation: llvm.load + +4: "extract_element_multi_Use_load" has unsupported operation: llvm.store + +4: "extract_element_multi_Use_load" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "extract_element_multi_Use_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_variable_index" +4: "extract_element_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_variable_index" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extelt_binop_insertelt" +4: "extelt_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extelt_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "extelt_binop_binop_insertelt" +4: "extelt_binop_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extelt_binop_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_constant_vector_variable_index" +4: "extract_element_constant_vector_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "cheap_to_extract_icmp" +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "cheap_to_extract_fcmp" +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extractelt_vector_icmp_constrhs" +4: "extractelt_vector_icmp_constrhs" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_icmp_constrhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extractelt_vector_fcmp_constrhs" +4: "extractelt_vector_fcmp_constrhs" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_fcmp_constrhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "extractelt_vector_icmp_constrhs_dynidx" +4: "extractelt_vector_icmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_icmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extractelt_vector_fcmp_constrhs_dynidx" +4: "extractelt_vector_fcmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_fcmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: llvm.mlir.undef + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: llvm.store + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/scalarization.txt b/SSA/Projects/InstCombine/tests/logs/scalarization.txt new file mode 100644 index 000000000..43a211ab3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/scalarization.txt @@ -0,0 +1,186 @@ +1: "extract_load" +4: "extract_load" has unsupported operation: llvm.load + +4: "extract_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_fp" +4: "extract_load_fp" has unsupported operation: llvm.load + +4: "extract_load_fp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_volatile" +4: "extract_load_volatile" has unsupported operation: llvm.load + +4: "extract_load_volatile" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_load_extra_use" +4: "extract_load_extra_use" has unsupported operation: llvm.load + +4: "extract_load_extra_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_load_extra_use" has unsupported operation: llvm.store + +1: "extract_load_variable_index" +4: "extract_load_variable_index" has unsupported operation: llvm.load + +4: "extract_load_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "scalarize_phi" +4: "scalarize_phi" has unsupported operation: llvm.load + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "scalarize_phi" has unsupported operation: llvm.load + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "scalarize_phi" has unsupported operation: llvm.store + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "scalarize_phi" has unsupported operation: builtin.unregistered: llvm.br + +4: "scalarize_phi" has unsupported operation: llvm.return + +1: "extract_element_binop_splat_constant_index" +4: "extract_element_binop_splat_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_splat_constant_index" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extract_element_binop_splat_with_undef_constant_index" +4: "extract_element_binop_splat_with_undef_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_splat_with_undef_constant_index" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "extract_element_binop_nonsplat_constant_index" +4: "extract_element_binop_nonsplat_constant_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_binop_nonsplat_constant_index" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "extract_element_binop_splat_variable_index" +4: "extract_element_binop_splat_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_splat_variable_index_may_trap" +4: "extract_element_binop_splat_variable_index_may_trap" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_constant_index_may_trap" +4: "extract_element_binop_constant_index_may_trap" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_splat_with_undef_variable_index" +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_splat_with_undef_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_binop_nonsplat_variable_index" +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: llvm.mlir.undef + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "extract_element_binop_nonsplat_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_load" +4: "extract_element_load" has unsupported operation: llvm.load + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_load" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extract_element_multi_Use_load" +4: "extract_element_multi_Use_load" has unsupported operation: llvm.load + +4: "extract_element_multi_Use_load" has unsupported operation: llvm.store + +4: "extract_element_multi_Use_load" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "extract_element_multi_Use_load" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_variable_index" +4: "extract_element_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extract_element_variable_index" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "extelt_binop_insertelt" +4: "extelt_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extelt_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "extelt_binop_binop_insertelt" +4: "extelt_binop_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extelt_binop_binop_insertelt" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extract_element_constant_vector_variable_index" +4: "extract_element_constant_vector_variable_index" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "cheap_to_extract_icmp" +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "cheap_to_extract_icmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "cheap_to_extract_fcmp" +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "cheap_to_extract_fcmp" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "extractelt_vector_icmp_constrhs" +4: "extractelt_vector_icmp_constrhs" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_icmp_constrhs" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extractelt_vector_fcmp_constrhs" +4: "extractelt_vector_fcmp_constrhs" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_fcmp_constrhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "extractelt_vector_icmp_constrhs_dynidx" +4: "extractelt_vector_icmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_icmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "extractelt_vector_fcmp_constrhs_dynidx" +4: "extractelt_vector_fcmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_fcmp_constrhs_dynidx" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "extractelt_vector_fcmp_copy_flags" +4: "extractelt_vector_fcmp_copy_flags" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "extractelt_vector_fcmp_copy_flags" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: llvm.mlir.undef + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: llvm.store + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "extractelt_vector_fcmp_not_cheap_to_scalarize_multi_use" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/scmp.txt b/SSA/Projects/InstCombine/tests/logs/scmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-1.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-1.txt new file mode 100644 index 000000000..9f9c6d11b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-1.txt @@ -0,0 +1,15 @@ +1: "a" +7: "a" is unchanged by InstCombine + +1: "b" +4: "b" has unsupported operation: llvm.call + +1: "c" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sdiv +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt new file mode 100644 index 000000000..64a032af2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-2.txt @@ -0,0 +1,19 @@ +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 + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "func" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "func" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt new file mode 100644 index 000000000..e6485684a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-canonicalize.txt @@ -0,0 +1,52 @@ +1: "use" +5: "use" is empty + +1: "test_sdiv_canonicalize_op0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sdiv +2: llvm.return + +1: "test_sdiv_canonicalize_op0_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sdiv +2: llvm.return + +1: "test_sdiv_canonicalize_op1" +7: "test_sdiv_canonicalize_op1" is unchanged by InstCombine + +1: "test_sdiv_canonicalize_nonsw" +7: "test_sdiv_canonicalize_nonsw" is unchanged by InstCombine + +1: "test_sdiv_canonicalize_vec" +"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 + +1: "test_sdiv_canonicalize_constexpr" +4: "test_sdiv_canonicalize_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "test_sdiv_canonicalize_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +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 + +1: "sdiv_abs_extra_use" +4: "sdiv_abs_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.abs + +4: "sdiv_abs_extra_use" has unsupported operation: llvm.call + 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 new file mode 100644 index 000000000..c8d1ad511 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-negative-power-of-two.txt @@ -0,0 +1,45 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.return + +1: "n1" +7: "n1" is unchanged by InstCombine + +1: "t2_vec_splat" +"t2_vec_splat" contains vectors which are unsupported + +1: "t3_vec" +"t3_vec" contains vectors which are unsupported + +1: "n4_vec_mixed" +7: "n4_vec_mixed" is unchanged by InstCombine + +1: "n4_vec_undef" +4: "n4_vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "prove_exact_with_high_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sdiv +2: llvm.return + +1: "prove_exact_with_high_mask_limit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.sdiv +2: llvm.return + +1: "not_prove_exact_with_high_mask" +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 + +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 new file mode 100644 index 000000000..6a5ec4f23 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-exact-by-power-of-two.txt @@ -0,0 +1,68 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.return + +1: "n1" +7: "n1" is unchanged by InstCombine + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t3_vec_splat" +"t3_vec_splat" contains vectors which are unsupported + +1: "t4_vec" +"t4_vec" contains vectors which are unsupported + +1: "n5_vec_undef" +4: "n5_vec_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "n6_vec_negative" +7: "n6_vec_negative" is unchanged by InstCombine + +1: "shl1_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "shl1_nuw" +7: "shl1_nuw" is unchanged by InstCombine + +1: "shl1_nsw_not_exact" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sdiv +2: llvm.return + +1: "prove_exact_with_high_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sdiv +2: llvm.return + +1: "prove_exact_with_high_mask_limit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sdiv +2: llvm.return + +1: "not_prove_exact_with_high_mask" +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 + +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-guard.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-guard.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-icmp.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-icmp.txt new file mode 100644 index 000000000..7ce357961 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-icmp.txt @@ -0,0 +1,32 @@ +1: "use.i8" +5: "use.i8" is empty + +1: "sdiv_exact_eq_0" +4: "sdiv_exact_eq_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_exact_ne_0" +4: "udiv_exact_ne_0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_exact_ne_1" +4: "sdiv_exact_ne_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_exact_eq_1" +4: "udiv_exact_eq_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_exact_eq_9_no_of" +4: "sdiv_exact_eq_9_no_of" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_exact_eq_9_may_of" +4: "sdiv_exact_eq_9_may_of" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_exact_eq_9_no_of_fail_multiuse" +4: "sdiv_exact_eq_9_no_of_fail_multiuse" has unsupported operation: llvm.call + +4: "sdiv_exact_eq_9_no_of_fail_multiuse" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sdiv_exact_eq_9_must_of_todo_is_false" +4: "sdiv_exact_eq_9_must_of_todo_is_false" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "udiv_exact_ne_30_no_of" +4: "udiv_exact_ne_30_no_of" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/sdiv-of-non-negative-by-negative-power-of-two.txt b/SSA/Projects/InstCombine/tests/logs/sdiv-of-non-negative-by-negative-power-of-two.txt new file mode 100644 index 000000000..75a71b9b4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sdiv-of-non-negative-by-negative-power-of-two.txt @@ -0,0 +1,15 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n2" has unsupported operation: builtin.unregistered: llvm.intr.assume + diff --git a/SSA/Projects/InstCombine/tests/logs/select-2.txt b/SSA/Projects/InstCombine/tests/logs/select-2.txt new file mode 100644 index 000000000..80cc7b1bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-2.txt @@ -0,0 +1,35 @@ +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 + +1: "ashr_exact" +4: "ashr_exact" has unsupported operation: builtin.unregistered: llvm.select + +1: "shl_nsw_nuw_poison_constant_fold" +4: "shl_nsw_nuw_poison_constant_fold" has unsupported operation: builtin.unregistered: llvm.select + +1: "shl_nsw_nuw" +4: "shl_nsw_nuw" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_nsw_poison_constant_fold" +4: "add_nsw_poison_constant_fold" has unsupported operation: builtin.unregistered: llvm.select + +1: "add_nsw" +4: "add_nsw" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/select-and-or.txt b/SSA/Projects/InstCombine/tests/logs/select-and-or.txt new file mode 100644 index 000000000..54904db36 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-and-or.txt @@ -0,0 +1,533 @@ +1: "use" +5: "use" is empty + +1: "gen_i1" +5: "gen_i1" is empty + +1: "gen_v2i1" +5: "gen_v2i1" is empty + +1: "logical_and" +4: "logical_and" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_or" +4: "logical_or" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_and_not" +4: "logical_and_not" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_or_not" +4: "logical_or_not" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_and_cond_reuse" +4: "logical_and_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_or_cond_reuse" +4: "logical_or_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_and_not_cond_reuse" +4: "logical_and_not_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_or_not_cond_reuse" +4: "logical_or_not_cond_reuse" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_or_implies" +4: "logical_or_implies" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "logical_or_implies" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "logical_or_implies_folds" +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.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 + +4: "logical_and_implies" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "logical_and_implies_folds" +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 + +1: "logical_or_noundef_b" +4: "logical_or_noundef_b" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "logical_and_noundef_a" +4: "logical_and_noundef_a" has unsupported operation: builtin.unregistered: llvm.select + +1: "logical_and_noundef_b" +4: "logical_and_noundef_b" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "not_not_true" +4: "not_not_true" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_not_false" +4: "not_not_false" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_true_not" +4: "not_true_not" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_false_not" +4: "not_false_not" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "demorgan_select_infloop1" has unsupported operation after optimization: llvm.getelementptr + +4: "demorgan_select_infloop1" has unsupported operation after optimization: llvm.mlir.addressof + +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 + +4: "demorgan_select_infloop2" has unsupported operation: llvm.getelementptr + +4: "demorgan_select_infloop2" has unsupported operation: llvm.mlir.addressof + +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 + +1: "and_or2" +4: "and_or2" has unsupported operation: builtin.unregistered: llvm.select + +4: "and_or2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +1: "and_or2_wrong_operand" +4: "and_or2_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "or_and2" +4: "or_and2" has unsupported operation: builtin.unregistered: llvm.select + +4: "or_and2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +1: "or_and2_wrong_operand" +4: "or_and2_wrong_operand" has unsupported operation: builtin.unregistered: llvm.select + +1: "pr64558" +4: "pr64558" has unsupported operation after optimization: builtin.unregistered: llvm.select + +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 + +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 + +1: "test_and_ne_a_b" +4: "test_and_ne_a_b" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_or_eq_a_b_commuted" +4: "test_or_eq_a_b_commuted" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_and_ne_a_b_commuted" +4: "test_and_ne_a_b_commuted" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "test_or_eq_a_b_multi_use" has unsupported operation: llvm.call + +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 + +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 + +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 + +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 new file mode 100644 index 000000000..3e0832cc5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-binop-cmp.txt @@ -0,0 +1,658 @@ +1: "use" +5: "use" is empty + +1: "use2" +5: "use2" is empty + +1: "use.i32" +5: "use.i32" is empty + +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 + +4: "vec_select_no_equivalence" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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 + +4: "select_xor_icmp_vec_undef" has unsupported operation: llvm.mlir.undef + +4: "select_xor_icmp_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "select_xor_icmp_vec_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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.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 + +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.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 + +4: "select_replace_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +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 + +4: "select_replace_undef" has unsupported operation: llvm.mlir.undef + +4: "select_replace_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "select_replace_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "call_speculatable" +5: "call_speculatable" is empty + +1: "call_non_speculatable" +5: "call_non_speculatable" is empty + +1: "use_i32" +5: "use_i32" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/select-binop-foldable-floating-point.txt b/SSA/Projects/InstCombine/tests/logs/select-binop-foldable-floating-point.txt new file mode 100644 index 000000000..1b974213e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-binop-foldable-floating-point.txt @@ -0,0 +1,2 @@ +3: select-binop-foldable-floating-point.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/select-bitext-bitwise-ops.txt b/SSA/Projects/InstCombine/tests/logs/select-bitext-bitwise-ops.txt new file mode 100644 index 000000000..59d1eba67 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-bitext-bitwise-ops.txt @@ -0,0 +1,18 @@ +1: "sel_false_val_is_a_masked_shl_of_true_val1" +4: "sel_false_val_is_a_masked_shl_of_true_val1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sel_false_val_is_a_masked_shl_of_true_val2" +4: "sel_false_val_is_a_masked_shl_of_true_val2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sel_false_val_is_a_masked_lshr_of_true_val1" +4: "sel_false_val_is_a_masked_lshr_of_true_val1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sel_false_val_is_a_masked_lshr_of_true_val2" +4: "sel_false_val_is_a_masked_lshr_of_true_val2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sel_false_val_is_a_masked_ashr_of_true_val1" +4: "sel_false_val_is_a_masked_ashr_of_true_val1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sel_false_val_is_a_masked_ashr_of_true_val2" +4: "sel_false_val_is_a_masked_ashr_of_true_val2" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/select-bitext.txt b/SSA/Projects/InstCombine/tests/logs/select-bitext.txt new file mode 100644 index 000000000..11c78237e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-bitext.txt @@ -0,0 +1,275 @@ +1: "use32" +5: "use32" is empty + +1: "sel_sext_constants" +4: "sel_sext_constants" has unsupported operation: builtin.unregistered: llvm.select + +1: "sel_zext_constants" +4: "sel_zext_constants" has unsupported operation: builtin.unregistered: llvm.select + +1: "sel_fpext_constants" +4: "sel_fpext_constants" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "trunc_sel_equal_sext_vec" +4: "trunc_sel_equal_sext_vec" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "trunc_sel_equal_zext_vec" +4: "trunc_sel_equal_zext_vec" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "sel_sext_const_uses" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "sel_zext_const_uses" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +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 + +1: "zext_true_val_must_be_one" +4: "zext_true_val_must_be_one" has unsupported operation: builtin.unregistered: llvm.select + +1: "zext_true_val_must_be_one_vec" +4: "zext_true_val_must_be_one_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_false_val_must_be_zero" +4: "sext_false_val_must_be_zero" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_false_val_must_be_zero_vec" +4: "sext_false_val_must_be_zero_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "zext_false_val_must_be_zero" +4: "zext_false_val_must_be_zero" has unsupported operation: builtin.unregistered: llvm.select + +1: "zext_false_val_must_be_zero_vec" +4: "zext_false_val_must_be_zero_vec" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/select-cmp-br.txt b/SSA/Projects/InstCombine/tests/logs/select-cmp-br.txt new file mode 100644 index 000000000..6335275e0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-cmp-br.txt @@ -0,0 +1,2 @@ +3: select-cmp-br.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt b/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt new file mode 100644 index 000000000..668afef35 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-cmp-cttz-ctlz.txt @@ -0,0 +1,241 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test4_with_range" +4: "test4_with_range" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test1b" +4: "test1b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test2b" +4: "test2b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test3b" +4: "test3b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test4b" +4: "test4b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test4b_with_range" +4: "test4b_with_range" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test5b" +4: "test5b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test6b" +4: "test6b" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test1c" +4: "test1c" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test1c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2c" +4: "test2c" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test2c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3c" +4: "test3c" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test3c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test4c" +4: "test4c" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test4c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test5c" +4: "test5c" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test5c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test6c" +4: "test6c" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test6c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test1d" +4: "test1d" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test1d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test2d" +4: "test2d" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test2d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test3d" +4: "test3d" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test3d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test4d" +4: "test4d" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test4d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test5d" +4: "test5d" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test5d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "not_op_ctlz" +4: "not_op_ctlz" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "not_op_ctlz" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "not_op_cttz" +4: "not_op_cttz" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "not_op_cttz" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "not_op_ctlz_wrong_xor_op1" +4: "not_op_ctlz_wrong_xor_op1" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "not_op_ctlz_wrong_xor_op1" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "not_op_ctlz_wrong_xor_op0" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "not_op_cttz_wrong_cmp" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "test6d" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "select_bug1" +4: "select_bug1" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "select_bug1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "select_bug2" +4: "select_bug2" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "select_bug2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "test_ctlz_not_bw" +4: "test_ctlz_not_bw" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +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 + +1: "test_ctlz_not_bw_vec" +4: "test_ctlz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +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 + +1: "test_cttz_not_bw_vec" +4: "test_cttz_not_bw_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +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 + +4: "test_multiuse_def" has unsupported operation: llvm.store + +1: "test_multiuse_undef" +4: "test_multiuse_undef" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test_multiuse_undef" has unsupported operation: llvm.store + +1: "test_multiuse_zext_def" +4: "test_multiuse_zext_def" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test_multiuse_zext_def" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_multiuse_zext_def" has unsupported operation: llvm.store + +1: "test_multiuse_zext_undef" +4: "test_multiuse_zext_undef" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test_multiuse_zext_undef" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_multiuse_zext_undef" has unsupported operation: llvm.store + +1: "test_multiuse_trunc_def" +4: "test_multiuse_trunc_def" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test_multiuse_trunc_def" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_multiuse_trunc_def" has unsupported operation: llvm.store + +1: "test_multiuse_trunc_undef" +4: "test_multiuse_trunc_undef" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "test_multiuse_trunc_undef" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_multiuse_trunc_undef" has unsupported operation: llvm.store + 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 new file mode 100644 index 000000000..edd1354ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-cmp-eq-op-fold.txt @@ -0,0 +1,74 @@ +1: "use.i1" +5: "use.i1" is empty + +1: "use.i8" +5: "use.i8" is empty + +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-cmp.txt b/SSA/Projects/InstCombine/tests/logs/select-cmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/select-cmpxchg.txt b/SSA/Projects/InstCombine/tests/logs/select-cmpxchg.txt new file mode 100644 index 000000000..78335f4f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-cmpxchg.txt @@ -0,0 +1,11 @@ +1: "cmpxchg_0" +4: "cmpxchg_0" has unsupported operation: builtin.unregistered: llvm.cmpxchg + +4: "cmpxchg_0" has unsupported operation: llvm.extractvalue + +1: "cmpxchg_1" +4: "cmpxchg_1" has unsupported operation: builtin.unregistered: llvm.cmpxchg + +1: "cmpxchg_2" +4: "cmpxchg_2" has unsupported operation: builtin.unregistered: llvm.cmpxchg + diff --git a/SSA/Projects/InstCombine/tests/logs/select-crash.txt b/SSA/Projects/InstCombine/tests/logs/select-crash.txt new file mode 100644 index 000000000..b0cd109f0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-crash.txt @@ -0,0 +1,30 @@ +1: "gimp_operation_color_balance_map" +4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fmul + +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.fdiv + +4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fcmp + +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 + +4: "gimp_operation_color_balance_map" has unsupported operation: builtin.unregistered: llvm.fadd + +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 new file mode 100644 index 000000000..f7c854c9d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-ctlz-to-cttz.txt @@ -0,0 +1,92 @@ +1: "use" +5: "use" is empty + +1: "use2" +5: "use2" is empty + +1: "select_clz_to_ctz" +4: "select_clz_to_ctz" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_preserve_flag" +4: "select_clz_to_ctz_preserve_flag" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_constant_for_zero" +4: "select_clz_to_ctz_constant_for_zero" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_vec" +4: "select_clz_to_ctz_vec" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_extra_use" +4: "select_clz_to_ctz_extra_use" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "select_clz_to_ctz_extra_use" has unsupported operation: llvm.call + +1: "select_clz_to_ctz_and_commuted" +4: "select_clz_to_ctz_and_commuted" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_icmp_ne" +4: "select_clz_to_ctz_icmp_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "select_clz_to_ctz_icmp_ne" has unsupported operation: llvm.call + +4: "select_clz_to_ctz_icmp_ne" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_i64" +4: "select_clz_to_ctz_i64" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "select_clz_to_ctz_wrong_sub" +4: "select_clz_to_ctz_wrong_sub" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "select_clz_to_ctz_i64_wrong_xor" +4: "select_clz_to_ctz_i64_wrong_xor" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "select_clz_to_ctz_i64_wrong_icmp_cst" +4: "select_clz_to_ctz_i64_wrong_icmp_cst" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "select_clz_to_ctz_vec_with_undef" has unsupported operation: llvm.mlir.undef + +4: "select_clz_to_ctz_vec_with_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "select_clz_to_ctz_vec_with_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "select_clz_to_ctz_vec_with_undef" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "select_clz_to_ctz_wrong_constant_for_zero" +4: "select_clz_to_ctz_wrong_constant_for_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +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 + +4: "PR45762" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "PR45762_logical" has unsupported operation: builtin.unregistered: llvm.zext + +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 new file mode 100644 index 000000000..5f2edb878 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-divrem.txt @@ -0,0 +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 + +1: "urem_common_divisor" +4: "urem_common_divisor" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "srem_common_divisor_defined_cond" +4: "srem_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "urem_common_divisor_defined_cond" +4: "urem_common_divisor_defined_cond" has unsupported operation: builtin.unregistered: llvm.select + +1: "sdiv_common_dividend_defined_cond" +4: "sdiv_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select + +1: "srem_common_dividend_defined_cond" +4: "srem_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "urem_common_dividend_defined_cond" +4: "urem_common_dividend_defined_cond" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 new file mode 100644 index 000000000..f242c175f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-extractelement-inseltpoison.txt @@ -0,0 +1,120 @@ +1: "v4float_user" +5: "v4float_user" is empty + +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" +4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +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 + +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" +4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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" +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.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" +4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "extract_cond_extra_use" +4: "extract_cond_extra_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +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 new file mode 100644 index 000000000..be73bef35 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-extractelement.txt @@ -0,0 +1,145 @@ +1: "v4float_user" +5: "v4float_user" is empty + +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" +4: "extract_two_select" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +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 + +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" +4: "extract_two_vselect" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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" +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.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" +4: "extract_cond" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "extract_cond_extra_use" +4: "extract_cond_extra_use" has unsupported operation: builtin.unregistered: llvm.extractelement + +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 + +4: "inf_loop_partial_undef" has unsupported operation: llvm.mlir.undef + +4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "inf_loop_partial_undef" has unsupported operation: llvm.mlir.undef + +4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "inf_loop_partial_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 new file mode 100644 index 000000000..428c6e1d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-factorize.txt @@ -0,0 +1,367 @@ +1: "use" +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +1: "logic_and_logic_or_vector_poison2" +4: "logic_and_logic_or_vector_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "logic_and_logic_or_vector_poison2" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +4: "logic_and_logic_or_vector_poison3" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +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 + +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 + +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 + +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 + +1: "and_logic_and_logic_or_6" +4: "and_logic_and_logic_or_6" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "and_logic_and_logic_or_8" +4: "and_logic_and_logic_or_8" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "and_logic_and_logic_or_vector_poison1" +4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_logic_and_logic_or_vector_poison1" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +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 + +1: "and_and_logic_or_2" +4: "and_and_logic_or_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_and_logic_or_vector" +4: "and_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select + +1: "and_and_logic_or_vector_poison" +4: "and_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +1: "logic_or_logic_and_vector_poison1" +4: "logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "logic_or_logic_and_vector_poison1" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +4: "logic_or_logic_and_vector_poison2" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +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 + +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 + +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 + +1: "or_logic_or_logic_and_4" +4: "or_logic_or_logic_and_4" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +1: "or_logic_or_logic_and_8" +4: "or_logic_or_logic_and_8" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "or_logic_or_logic_and_vector_poison1" +4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "or_logic_or_logic_and_vector_poison1" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +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 + +1: "or_or_logic_and_2" +4: "or_or_logic_and_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_or_logic_and_vector" +4: "or_or_logic_and_vector" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_or_logic_and_vector_poison" +4: "or_or_logic_and_vector_poison" has unsupported operation: builtin.unregistered: llvm.select + +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-gep.txt b/SSA/Projects/InstCombine/tests/logs/select-gep.txt new file mode 100644 index 000000000..7837c33ee --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-gep.txt @@ -0,0 +1,2 @@ +3: select-gep.ll: parsing has failed + 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 new file mode 100644 index 000000000..211b0fa0d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-icmp-and-zero-shl.txt @@ -0,0 +1,59 @@ +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 + +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 + +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 + +1: "test_multi_use" +4: "test_multi_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multi_use" has unsupported operation: llvm.call + +1: "test_multi_use_nuw_dropped" +4: "test_multi_use_nuw_dropped" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_multi_use_nuw_dropped" has unsupported operation: llvm.call + +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 new file mode 100644 index 000000000..cf9b637fe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-icmp-and.txt @@ -0,0 +1,276 @@ +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 + +1: "clear_to_set" +4: "clear_to_set" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "clear_to_set" has unsupported operation: llvm.call + +1: "clear_to_clear" +4: "clear_to_clear" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "clear_to_clear" has unsupported operation: llvm.call + +1: "set_to_set" +4: "set_to_set" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "set_to_set" has unsupported operation: llvm.call + +1: "set_to_clear" +4: "set_to_clear" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "set_to_clear" has unsupported operation: llvm.call + +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 new file mode 100644 index 000000000..25f86d381 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-imm-canon.txt @@ -0,0 +1,40 @@ +1: "single" +4: "single" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "single" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "double" +4: "double" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "double" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "double" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "thisdoesnotloop" +4: "thisdoesnotloop" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "original" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "original" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "original_logical" +4: "original_logical" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "original_logical" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "original_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR49205" +4: "PR49205" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR49205" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR49205" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/select-load-call.txt b/SSA/Projects/InstCombine/tests/logs/select-load-call.txt new file mode 100644 index 000000000..d8ff3de69 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-load-call.txt @@ -0,0 +1,8 @@ +1: "test2" +5: "test2" is empty + +1: "test" +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/select-load.txt b/SSA/Projects/InstCombine/tests/logs/select-load.txt new file mode 100644 index 000000000..6e1cf8dda --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-load.txt @@ -0,0 +1,49 @@ +1: "test_plain" +4: "test_plain" has unsupported operation: llvm.alloca + +4: "test_plain" has unsupported operation: llvm.alloca + +4: "test_plain" has unsupported operation: llvm.load + +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" +4: "test_hwasan" has unsupported operation: llvm.alloca + +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" +4: "test_tsan" has unsupported operation: llvm.alloca + +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" +4: "test_msan" has unsupported operation: llvm.alloca + +4: "test_msan" has unsupported operation: llvm.alloca + +4: "test_msan" has unsupported operation: llvm.load + +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_gather.txt b/SSA/Projects/InstCombine/tests/logs/select-masked_gather.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt b/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt new file mode 100644 index 000000000..ec3a82953 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-masked_load.txt @@ -0,0 +1,37 @@ +1: "masked_load_and_zero_inactive_1" +4: "masked_load_and_zero_inactive_1" has unsupported operation: builtin.unregistered: llvm.intr.masked.load + +1: "masked_load_and_zero_inactive_2" +4: "masked_load_and_zero_inactive_2" has unsupported operation: builtin.unregistered: llvm.intr.masked.load + +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 + +1: "masked_load_and_zero_inactive_5" +4: "masked_load_and_zero_inactive_5" has unsupported operation: builtin.unregistered: llvm.intr.masked.load + +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 + +1: "masked_load_and_scalar_select_cond" +4: "masked_load_and_scalar_select_cond" has unsupported operation: llvm.mlir.undef + +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 new file mode 100644 index 000000000..5d096e18c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-min-max.txt @@ -0,0 +1,125 @@ +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" +4: "umin_umin_common_op_10" has unsupported operation: builtin.unregistered: llvm.intr.umin + +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" +4: "umax_umax_common_op_11" has unsupported operation: builtin.unregistered: llvm.intr.umax + +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" +4: "smin_umin_common_op_11" has unsupported operation: builtin.unregistered: llvm.intr.smin + +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 + +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.intr.umin + +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 + +1: "smax_select_const_const" +4: "smax_select_const_const" has unsupported operation: builtin.unregistered: llvm.select + +1: "umin_select_const_const" +4: "umin_select_const_const" has unsupported operation: builtin.unregistered: llvm.select + +1: "umax_select_const_const" +4: "umax_select_const_const" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "smax_smin" has unsupported operation: builtin.unregistered: llvm.zext + +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 new file mode 100644 index 000000000..e9073270c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-obo-peo-ops.txt @@ -0,0 +1,320 @@ +1: "test_shl_nuw_nsw__all_are_safe" +4: "test_shl_nuw_nsw__all_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nuw__all_are_safe" +4: "test_shl_nuw__all_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nsw__all_are_safe" +4: "test_shl_nsw__all_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl__all_are_safe" +4: "test_shl__all_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nuw_nsw__nuw_is_safe" +4: "test_shl_nuw_nsw__nuw_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nuw__nuw_is_safe" +4: "test_shl_nuw__nuw_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nsw__nuw_is_safe" +4: "test_shl_nsw__nuw_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl__nuw_is_safe" +4: "test_shl__nuw_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "test_shl_nuw__none_are_safe" +4: "test_shl_nuw__none_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl_nsw__none_are_safe" +4: "test_shl_nsw__none_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_shl__none_are_safe" +4: "test_shl__none_are_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_lshr_exact__exact_is_safe" +4: "test_lshr_exact__exact_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_lshr__exact_is_safe" +4: "test_lshr__exact_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_lshr_exact__exact_is_unsafe" +4: "test_lshr_exact__exact_is_unsafe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_lshr__exact_is_unsafe" +4: "test_lshr__exact_is_unsafe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_ashr_exact__exact_is_safe" +4: "test_ashr_exact__exact_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_ashr__exact_is_safe" +4: "test_ashr__exact_is_safe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_ashr_exact__exact_is_unsafe" +4: "test_ashr_exact__exact_is_unsafe" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_ashr__exact_is_unsafe" +4: "test_ashr__exact_is_unsafe" has unsupported operation: builtin.unregistered: llvm.zext + +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 new file mode 100644 index 000000000..468f4c8d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-of-bittest.txt @@ -0,0 +1,276 @@ +1: "and_lshr_and" +4: "and_lshr_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_lshr_and_splatvec" +4: "and_lshr_and_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and_splatvec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_lshr_and_vec_v0" +4: "and_lshr_and_vec_v0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and_vec_v0" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_lshr_and_vec_v1" +4: "and_lshr_and_vec_v1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and_vec_v1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_lshr_and_vec_v2" +4: "and_lshr_and_vec_v2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and_vec_v2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_lshr_and_vec_poison" +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_lshr_and_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_lshr_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_and" +4: "and_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_and_splatvec" +4: "and_and_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_and_splatvec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_and_vec" +4: "and_and_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_and_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_and_vec_poison" +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_and_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "and_and_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var0" +4: "f_var0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var0" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var0_commutative_and" +4: "f_var0_commutative_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var0_commutative_and" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var0_splatvec" +4: "f_var0_splatvec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var0_splatvec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var0_vec" +4: "f_var0_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var0_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var0_vec_poison" +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "f_var0_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var0_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var1" +4: "f_var1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var1_commutative_and" +4: "f_var1_commutative_and" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var1_commutative_and" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var1_vec" +4: "f_var1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var1_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "f_var1_vec_poison" +4: "f_var1_vec_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f_var1_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +4: "f_var2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "f_var3_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var3_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "f_var3_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "use1" +5: "use1" is empty + +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 + +4: "n_var0_oneuse" has unsupported operation: llvm.call + +4: "n_var0_oneuse" has unsupported operation: llvm.call + +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 + +4: "n_var1_oneuse" has unsupported operation: llvm.call + +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 new file mode 100644 index 000000000..26a20c453 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-of-symmetric-selects.txt @@ -0,0 +1,54 @@ +1: "select_of_symmetric_selects" +4: "select_of_symmetric_selects" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +1: "select_of_symmetric_selects_vector1" +4: "select_of_symmetric_selects_vector1" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_of_symmetric_selects_vector2" +4: "select_of_symmetric_selects_vector2" has unsupported operation: builtin.unregistered: llvm.select + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/select-pr39595.txt b/SSA/Projects/InstCombine/tests/logs/select-pr39595.txt new file mode 100644 index 000000000..aff55ae66 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-pr39595.txt @@ -0,0 +1,3 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.umax + diff --git a/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt b/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt new file mode 100644 index 000000000..711f0594a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-bool-transforms.txt @@ -0,0 +1,180 @@ +1: "land_land_left1" +4: "land_land_left1" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_land_left2" +4: "land_land_left2" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_band_left1" +4: "land_band_left1" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_band_left2" +4: "land_band_left2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "land_bor_left1" +4: "land_bor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "land_bor_left2" +4: "land_bor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_land_left1" +4: "band_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_land_left2" +4: "band_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_lor_left1" +4: "band_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_lor_left2" +4: "band_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +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 + +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 + +1: "lor_band_left1" +4: "lor_band_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "lor_band_left2" +4: "lor_band_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "lor_lor_left1" +4: "lor_lor_left1" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_lor_left2" +4: "lor_lor_left2" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_bor_left1" +4: "lor_bor_left1" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_bor_left2" +4: "lor_bor_left2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bor_land_left1" +4: "bor_land_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "bor_land_left2" +4: "bor_land_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "bor_lor_left1" +4: "bor_lor_left1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "bor_lor_left2" +4: "bor_lor_left2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "land_land_right1" +4: "land_land_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_land_right2" +4: "land_land_right2" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_band_right1" +4: "land_band_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "land_band_right2" +4: "land_band_right2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "land_lor_right1_vec" +"land_lor_right1_vec" contains vectors which are unsupported + +1: "land_lor_right2_vec" +"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 + +1: "land_bor_right2" +4: "land_bor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_land_right1" +4: "band_land_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "band_land_right2" +4: "band_land_right2" has unsupported operation: builtin.unregistered: llvm.select + +1: "band_lor_right1" +4: "band_lor_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "band_lor_right2" +4: "band_lor_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +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 + +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 + +1: "lor_band_right1" +4: "lor_band_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "lor_band_right2" +4: "lor_band_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "lor_lor_right1" +4: "lor_lor_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_lor_right2" +4: "lor_lor_right2" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_bor_right1" +4: "lor_bor_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "lor_bor_right2" +4: "lor_bor_right2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bor_land_right1" +4: "bor_land_right1" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "bor_land_right2" +4: "bor_land_right2" has unsupported operation after optimization: builtin.unregistered: llvm.select + +1: "bor_lor_right1" +4: "bor_lor_right1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bor_lor_right2" +4: "bor_lor_right2" has unsupported operation: builtin.unregistered: llvm.select + +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 new file mode 100644 index 000000000..94d0d32bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-impliedcond-transforms.txt @@ -0,0 +1,75 @@ +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 + +4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "a_true_implies_b_true_vec" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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.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 new file mode 100644 index 000000000..e72c8e350 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-safe-transforms.txt @@ -0,0 +1,300 @@ +1: "gen1" +5: "gen1" is empty + +1: "cond_eq_and" +4: "cond_eq_and" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "xor_and3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "xor_and3" has unsupported operation: llvm.mlir.undef + +4: "xor_and3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_and3" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "xor_or3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "xor_or3" has unsupported operation: llvm.mlir.undef + +4: "xor_or3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_or3" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "andn_or_cmp_2_partial_logical_commute" +4: "andn_or_cmp_2_partial_logical_commute" has unsupported operation: llvm.call + +4: "andn_or_cmp_2_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_logical_or" +4: "not_logical_or" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "bools_logical_commute0_and1" +4: "bools_logical_commute0_and1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical_commute0_and2" +4: "bools_logical_commute0_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical_commute0_and1_and2" +4: "bools_logical_commute0_and1_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical_commute1" +4: "bools_logical_commute1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "bools_logical_commute2_and1" +4: "bools_logical_commute2_and1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical_commute2_and2" +4: "bools_logical_commute2_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools_logical_commute2_and1_and2" +4: "bools_logical_commute2_and1_and2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +1: "bools2_logical_commute0_and1" +4: "bools2_logical_commute0_and1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute0_and2" +4: "bools2_logical_commute0_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute0_and1_and2" +4: "bools2_logical_commute0_and1_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute1" +4: "bools2_logical_commute1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute1_and1" +4: "bools2_logical_commute1_and1" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute1_and2" +4: "bools2_logical_commute1_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute1_and1_and2" +4: "bools2_logical_commute1_and1_and2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute2" +4: "bools2_logical_commute2" has unsupported operation: builtin.unregistered: llvm.select + +1: "bools2_logical_commute2_and1" +4: "bools2_logical_commute2_and1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "bools2_logical_commute3_and1" +4: "bools2_logical_commute3_and1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "orn_and_cmp_2_partial_logical_commute" +4: "orn_and_cmp_2_partial_logical_commute" has unsupported operation: llvm.call + +4: "orn_and_cmp_2_partial_logical_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "not_logical_and" +4: "not_logical_and" has unsupported operation: builtin.unregistered: llvm.icmp + +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-select.txt b/SSA/Projects/InstCombine/tests/logs/select-select.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt b/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt new file mode 100644 index 000000000..9d921de51 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select-with-bitwise-ops.txt @@ -0,0 +1,545 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +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 + +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 + +4: "select_icmp_eq_and_1_0_or_2_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "select_icmp_eq_and_1_0_or_2_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +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 + +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 + +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 + +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 + +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 + +1: "select_icmp_eq_0_and_1_or_1_vec" +4: "select_icmp_eq_0_and_1_or_1_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "select_icmp_eq_0_and_1_xor_1" +4: "select_icmp_eq_0_and_1_xor_1" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +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 + +1: "select_icmp_x_and_8_ne_0_y_xor_8" +4: "select_icmp_x_and_8_ne_0_y_xor_8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "select_icmp_x_and_8_ne_0_y_or_8" +4: "select_icmp_x_and_8_ne_0_y_or_8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "select_icmp_x_and_8_ne_0_y_or_8_vec" +4: "select_icmp_x_and_8_ne_0_y_or_8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +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 + +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 + +1: "set_bits_not_inverse_constant" +4: "set_bits_not_inverse_constant" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "clear_bits_not_inverse_constant" +4: "clear_bits_not_inverse_constant" has unsupported operation: llvm.mlir.undef + +4: "clear_bits_not_inverse_constant" has unsupported operation: llvm.mlir.undef + +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.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.txt b/SSA/Projects/InstCombine/tests/logs/select.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt b/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt new file mode 100644 index 000000000..83101fba1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select_arithmetic.txt @@ -0,0 +1,51 @@ +1: "test1a" +4: "test1a" has unsupported operation: builtin.unregistered: llvm.select + +1: "test1b" +4: "test1b" has unsupported operation: builtin.unregistered: llvm.select + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.select + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 new file mode 100644 index 000000000..78d17f7f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/select_meta.txt @@ -0,0 +1,116 @@ +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 + +4: "min_max_bitcast" has unsupported operation: llvm.return + +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" +4: "t7" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "t7" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "abs_nabs_x01" +4: "abs_nabs_x01" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "abs_nabs_x01_vec" +4: "abs_nabs_x01_vec" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "test30" +4: "test30" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test70" +4: "test70" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test72" +4: "test72" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test74" +4: "test74" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin1" +4: "smin1" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smin2" +4: "smin2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "smax1" +4: "smax1" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "smax2" +4: "smax2" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "umin1" +4: "umin1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin2" +4: "umin2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umax1" +4: "umax1" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "umax2" +4: "umax2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "not_cond" +4: "not_cond" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_cond_vec" +4: "not_cond_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "not_cond_vec_poison" +4: "not_cond_vec_poison" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_add" +4: "select_add" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_or" +4: "select_or" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_sub" +4: "select_sub" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_ashr" +4: "select_ashr" has unsupported operation: builtin.unregistered: llvm.select + +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 new file mode 100644 index 000000000..0a863a1cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/set-lowbits-mask-canonicalize.txt @@ -0,0 +1,171 @@ +1: "shl_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_add_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_add_nsw_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_add_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_add_nsw_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nuw_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nuw_add_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nuw_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nuw_add_nsw_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_nuw_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_nuw_add_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_nuw_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_nsw_nuw_add_nsw_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "shl_add_vec" +"shl_add_vec" contains vectors which are unsupported + +1: "shl_add_vec_poison0" +"shl_add_vec_poison0" contains vectors which are unsupported + +1: "shl_add_vec_poison1" +"shl_add_vec_poison1" contains vectors which are unsupported + +1: "shl_add_vec_poison2" +"shl_add_vec_poison2" contains vectors which are unsupported + +1: "use32" +5: "use32" is empty + +1: "bad_oneuse0" +4: "bad_oneuse0" has unsupported operation: llvm.call + +1: "bad_shl" +7: "bad_shl" is unchanged by InstCombine + +1: "bad_add0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "bad_add1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "bad_add2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/set.txt b/SSA/Projects/InstCombine/tests/logs/set.txt new file mode 100644 index 000000000..8cdc9db02 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/set.txt @@ -0,0 +1,212 @@ +1: "use" +5: "use" is empty + +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test1" has unsupported operation after optimization: llvm.mlir.zero + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test1_logical" +4: "test1_logical" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test1_logical" has unsupported operation after optimization: llvm.mlir.zero + +4: "test1_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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 + +4: "test2" has unsupported operation after optimization: llvm.mlir.zero + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test2_logical" +4: "test2_logical" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test2_logical" has unsupported operation after optimization: llvm.mlir.zero + +4: "test2_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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 + +1: "test4" +4: "test4" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test7" +4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test8" +4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test9" +4: "test9" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test10" +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test11" +4: "test11" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test12" +4: "test12" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test13" +4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test13vec" +"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 + +1: "bool_eq0" +4: "bool_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bool_eq0_logical" +4: "bool_eq0_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps" +4: "xor_of_icmps" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_commute" +4: "xor_of_icmps_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne" +4: "xor_of_icmps_to_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne_commute" +4: "xor_of_icmps_to_ne_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_neg_to_ne" +4: "xor_of_icmps_neg_to_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne_vector" +4: "xor_of_icmps_to_ne_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne_no_common_operand" +4: "xor_of_icmps_to_ne_no_common_operand" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_of_icmps_to_ne_no_common_operand" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne_extra_use_one" +4: "xor_of_icmps_to_ne_extra_use_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_of_icmps_to_ne_extra_use_one" has unsupported operation: llvm.call + +4: "xor_of_icmps_to_ne_extra_use_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_of_icmps_to_ne_extra_use_two" +4: "xor_of_icmps_to_ne_extra_use_two" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_of_icmps_to_ne_extra_use_two" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_of_icmps_to_ne_extra_use_two" has unsupported operation: llvm.call + +4: "xor_of_icmps_to_ne_extra_use_two" has unsupported operation: llvm.call + +1: "xor_of_icmps_to_eq" +4: "xor_of_icmps_to_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR2844" +4: "PR2844" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR2844" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR2844" has unsupported operation: builtin.unregistered: llvm.zext + +1: "PR2844_logical" +4: "PR2844_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR2844_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR2844_logical" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test16" +4: "test16" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test17" +4: "test17" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test18" has unsupported operation: builtin.unregistered: llvm.br + +1: "test19" +4: "test19" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test19" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test19" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test20" +4: "test20" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test20" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test20vec" +"test20vec" contains vectors which are unsupported + +1: "test21" +4: "test21" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test21" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test21vec" +"test21vec" contains vectors which are unsupported + +1: "test22" +4: "test22" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test22" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test22_logical" +4: "test22_logical" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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 + +1: "test24" +4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "test24vec" +"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/setcc-strength-reduce.txt b/SSA/Projects/InstCombine/tests/logs/setcc-strength-reduce.txt new file mode 100644 index 000000000..191ed3c81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/setcc-strength-reduce.txt @@ -0,0 +1,15 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/sext-a-lt-b-plus-zext-a-gt-b-to-uscmp.txt b/SSA/Projects/InstCombine/tests/logs/sext-a-lt-b-plus-zext-a-gt-b-to-uscmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sext-of-trunc-nsw.txt b/SSA/Projects/InstCombine/tests/logs/sext-of-trunc-nsw.txt new file mode 100644 index 000000000..63416647a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sext-of-trunc-nsw.txt @@ -0,0 +1,85 @@ +1: "use8" +5: "use8" is empty + +1: "use4" +5: "use4" is empty + +1: "usevec" +5: "usevec" is empty + +1: "t0" +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t1" +4: "t1" has unsupported operation: llvm.call + +4: "t1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +4: "n2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t3_vec" +4: "t3_vec" has unsupported operation: llvm.call + +4: "t3_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t4_vec_nonsplat" +4: "t4_vec_nonsplat" has unsupported operation: llvm.call + +4: "t4_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t4_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t5_extrause" +4: "t5_extrause" has unsupported operation: llvm.call + +4: "t5_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t5_extrause" has unsupported operation: llvm.call + +4: "t5_extrause" has unsupported operation: builtin.unregistered: llvm.sext + +1: "narrow_source_matching_signbits" +4: "narrow_source_matching_signbits" has unsupported operation: builtin.unregistered: llvm.sext + +1: "narrow_source_not_matching_signbits" +4: "narrow_source_not_matching_signbits" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "narrow_source_not_matching_signbits" has unsupported operation: builtin.unregistered: llvm.sext + +1: "wide_source_matching_signbits" +4: "wide_source_matching_signbits" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_source_not_matching_signbits" +4: "wide_source_not_matching_signbits" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_source_not_matching_signbits" has unsupported operation: builtin.unregistered: llvm.sext + +1: "same_source_matching_signbits" +4: "same_source_matching_signbits" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "same_source_matching_signbits" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "same_source_not_matching_signbits" +4: "same_source_not_matching_signbits" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "same_source_not_matching_signbits" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "same_source_matching_signbits_extra_use" +4: "same_source_matching_signbits_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "same_source_matching_signbits_extra_use" has unsupported operation: llvm.call + +1: "same_source_not_matching_signbits_extra_use" +4: "same_source_not_matching_signbits_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "same_source_not_matching_signbits_extra_use" has unsupported operation: llvm.call + +4: "same_source_not_matching_signbits_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/sext.txt b/SSA/Projects/InstCombine/tests/logs/sext.txt new file mode 100644 index 000000000..b82b8379b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sext.txt @@ -0,0 +1,157 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.ctpop + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +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" +4: "test5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.select + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.br + +1: "test10" +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "test10" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "test10_vec" +"test10_vec" contains vectors which are unsupported + +1: "test10_vec_nonuniform" +"test10_vec_nonuniform" contains vectors which are unsupported + +1: "test10_vec_poison0" +4: "test10_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test10_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "test10_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test10_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test10_vec_poison1" +4: "test10_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "test10_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "test10_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test10_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test10_vec_poison2" +4: "test10_vec_poison2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test10_vec_poison2" has unsupported operation: llvm.mlir.undef + +4: "test10_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test10_vec_poison2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test11" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test11" has unsupported operation: llvm.store + +4: "test11" has unsupported operation: llvm.return + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test13" +4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test13" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test15" +4: "test15" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test15" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test18" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test19" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smear_set_bit" +4: "smear_set_bit" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "smear_set_bit" has unsupported operation after optimization: builtin.unregistered: llvm.sext + +1: "smear_set_bit_vec_use1" +4: "smear_set_bit_vec_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "smear_set_bit_vec_use1" has unsupported operation: llvm.call + +1: "smear_set_bit_use2" +4: "smear_set_bit_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "smear_set_bit_use2" has unsupported operation: llvm.call + +4: "smear_set_bit_use2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smear_set_bit_wrong_shift_amount" +4: "smear_set_bit_wrong_shift_amount" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "smear_set_bit_wrong_shift_amount" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smear_set_bit_different_dest_type" +4: "smear_set_bit_different_dest_type" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "smear_set_bit_different_dest_type_extra_use" +4: "smear_set_bit_different_dest_type_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "smear_set_bit_different_dest_type_extra_use" has unsupported operation: llvm.call + +4: "smear_set_bit_different_dest_type_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +1: "smear_set_bit_different_dest_type_wider_dst" +4: "smear_set_bit_different_dest_type_wider_dst" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-add-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shift-add-inseltpoison.txt new file mode 100644 index 000000000..3220a9335 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-add-inseltpoison.txt @@ -0,0 +1,127 @@ +1: "shl_C1_add_A_C2_i32" +4: "shl_C1_add_A_C2_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_C1_add_A_C2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "lshr_C1_add_A_C2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_C1_add_A_C2_v4i32" +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_C1_add_A_C2_v4i32" +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_C1_add_A_C2_v4i32" +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_C1_add_A_C2_v4i32_splat" +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr_C1_add_A_C2_v4i32_splat" +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_C1_add_A_C2_v4i32_splat" +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-add.txt b/SSA/Projects/InstCombine/tests/logs/shift-add.txt new file mode 100644 index 000000000..ccf88ce09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-add.txt @@ -0,0 +1,413 @@ +1: "use" +5: "use" is empty + +1: "shl_C1_add_A_C2_i32" +4: "shl_C1_add_A_C2_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_C1_add_A_C2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "lshr_C1_add_A_C2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_C1_add_A_C2_v4i32" +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_C1_add_A_C2_v4i32" +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_C1_add_A_C2_v4i32" +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: llvm.mlir.undef + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_C1_add_A_C2_v4i32_splat" +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr_C1_add_A_C2_v4i32_splat" +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_C1_add_A_C2_v4i32_splat" +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: llvm.mlir.undef + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_C1_add_A_C2_v4i32_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_add_nuw" +"lshr_add_nuw" contains vectors which are unsupported + +1: "ashr_add_nuw" +4: "ashr_add_nuw" has unsupported operation: llvm.store + +1: "shl_nuw_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_nsw_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_exact_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "ashr_exact_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "shl_add_nsw" +7: "shl_add_nsw" is unchanged by InstCombine + +1: "lshr_exact_add_positive_shift_positive" +7: "lshr_exact_add_positive_shift_positive" is unchanged by InstCombine + +1: "lshr_exact_add_big_negative_offset" +7: "lshr_exact_add_big_negative_offset" is unchanged by InstCombine + +1: "lshr_exact_add_negative_shift_negative" +7: "lshr_exact_add_negative_shift_negative" is unchanged by InstCombine + +1: "lshr_add_negative_shift_no_exact" +7: "lshr_add_negative_shift_no_exact" is unchanged by InstCombine + +1: "lshr_exact_add_negative_shift_positive" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "lshr_exact_add_negative_shift_positive_extra_use" +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 + +1: "lshr_exact_add_negative_shift_lzcnt" +7: "lshr_exact_add_negative_shift_lzcnt" is unchanged by InstCombine + +1: "ashr_exact_add_negative_shift_no_trailing_zeros" +7: "ashr_exact_add_negative_shift_no_trailing_zeros" is unchanged by InstCombine + +1: "ashr_exact_add_big_negative_offset" +7: "ashr_exact_add_big_negative_offset" is unchanged by InstCombine + +1: "ashr_add_negative_shift_no_exact" +7: "ashr_add_negative_shift_no_exact" is unchanged by InstCombine + +1: "ashr_exact_add_negative_shift_negative" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "ashr_exact_add_negative_shift_negative_extra_use" +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 + +1: "ashr_exact_add_negative_leading_ones_vec" +7: "ashr_exact_add_negative_leading_ones_vec" is unchanged by InstCombine + +1: "shl_nsw_add_negative" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_nuw_add_negative_splat_uses" +4: "shl_nuw_add_negative_splat_uses" has unsupported operation: llvm.store + +1: "shl_nsw_add_negative_invalid_constant" +7: "shl_nsw_add_negative_invalid_constant" is unchanged by InstCombine + +1: "shl_nsw_add_positive_invalid_constant" +7: "shl_nsw_add_positive_invalid_constant" is unchanged by InstCombine + +1: "shl_nsw_add_negative_invalid_constant2" +7: "shl_nsw_add_negative_invalid_constant2" is unchanged by InstCombine + +1: "shl_nsw_add_negative_invalid_constant3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_2_add_zext_basic" +4: "lshr_2_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_2_add_zext_basic" +4: "ashr_2_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "ashr_2_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_16_add_zext_basic" +4: "lshr_16_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_16_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_16_add_zext_basic_multiuse" +4: "lshr_16_add_zext_basic_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lshr_16_add_zext_basic_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_16_add_known_16_leading_zeroes" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "lshr_16_add_not_known_16_leading_zeroes" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "lshr_32_add_zext_basic" +4: "lshr_32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_32_add_zext_basic_multiuse" +4: "lshr_32_add_zext_basic_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lshr_32_add_zext_basic_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_31_i32_add_zext_basic" +4: "lshr_31_i32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +4: "lshr_31_i32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_33_i32_add_zext_basic" +4: "lshr_33_i32_add_zext_basic" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "lshr_33_i32_add_zext_basic" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "lshr_16_to_64_add_zext_basic" +4: "lshr_16_to_64_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_16_to_64_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_32_add_known_32_leading_zeroes" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "lshr_32_add_not_known_32_leading_zeroes" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "ashr_16_add_zext_basic" +4: "ashr_16_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_16_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_32_add_zext_basic" +4: "ashr_32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_32_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "ashr_16_to_64_add_zext_basic" +4: "ashr_16_to_64_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ashr_16_to_64_add_zext_basic" has unsupported operation: builtin.unregistered: llvm.zext + +1: "lshr_32_add_zext_trunc" +4: "lshr_32_add_zext_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "lshr_32_add_zext_trunc" has unsupported operation: builtin.unregistered: llvm.zext + +1: "add3_i96" +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.zext + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.zext + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.zext + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add3_i96" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_fold_or_disjoint_cnt" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "ashr_fold_or_disjoint_cnt" +"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 + 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 new file mode 100644 index 000000000..805a1d4e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-lshr.txt @@ -0,0 +1,110 @@ +1: "n0" +4: "n0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_single_bit" +4: "t1_single_bit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_singlebit" +4: "t3_singlebit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_vec" +4: "t5_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_vec" +4: "n6_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n6_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_vec" +4: "t7_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_vec" +4: "n8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n8_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n8_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9_highest_bit" +4: "t9_highest_bit" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t9_highest_bit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t10_almost_highest_bit" +4: "t10_almost_highest_bit" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t10_almost_highest_bit" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t10_almost_highest_bit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t11_no_shift" +4: "t11_no_shift" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t11_no_shift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t10_shift_by_one" +4: "t10_shift_by_one" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t10_shift_by_one" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t10_shift_by_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t11_zero_and_almost_bitwidth" +4: "t11_zero_and_almost_bitwidth" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t11_zero_and_almost_bitwidth" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t11_zero_and_almost_bitwidth" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_bad" +4: "n12_bad" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n12_bad" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n12_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t13_x_is_one" +4: "t13_x_is_one" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t14_x_is_one" +4: "t14_x_is_one" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "t14_x_is_one" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +4: "t14_x_is_one" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "t15_vec_x_is_one_or_zero" +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 + +1: "rawspeed_signbit" +4: "rawspeed_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-shl.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-shl.txt new file mode 100644 index 000000000..24d3805d8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest-with-truncation-shl.txt @@ -0,0 +1,186 @@ +1: "t0_const_after_fold_lshr_shl_ne" +4: "t0_const_after_fold_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_const_after_fold_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_vec_nonsplat" +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen32" +5: "gen32" is empty + +1: "gen64" +5: "gen64" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t3_oneuse0" +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: llvm.call + +4: "t3_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_oneuse1" +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t4_oneuse1" has unsupported operation: llvm.call + +4: "t4_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_oneuse2" +4: "t5_oneuse2" has unsupported operation: llvm.call + +4: "t5_oneuse2" has unsupported operation: llvm.call + +4: "t5_oneuse2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t5_oneuse2" has unsupported operation: llvm.call + +4: "t5_oneuse2" has unsupported operation: llvm.call + +4: "t5_oneuse2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t5_oneuse2" has unsupported operation: llvm.call + +4: "t5_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_oneuse3" +4: "t6_oneuse3" has unsupported operation: llvm.call + +4: "t6_oneuse3" has unsupported operation: llvm.call + +4: "t6_oneuse3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_oneuse3" has unsupported operation: llvm.call + +4: "t6_oneuse3" has unsupported operation: llvm.call + +4: "t6_oneuse3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_oneuse4" +4: "t7_oneuse4" has unsupported operation: llvm.call + +4: "t7_oneuse4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t7_oneuse4" has unsupported operation: llvm.call + +4: "t7_oneuse4" has unsupported operation: llvm.call + +4: "t7_oneuse4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t7_oneuse4" has unsupported operation: llvm.call + +4: "t7_oneuse4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t7_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8_oneuse5" +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t8_oneuse5" has unsupported operation: llvm.call + +4: "t8_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9_oneuse5" +4: "t9_oneuse5" has unsupported operation: llvm.call + +4: "t9_oneuse5" has unsupported operation: llvm.call + +4: "t9_oneuse5" has unsupported operation: llvm.call + +4: "t9_oneuse5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t9_oneuse5" has unsupported operation: llvm.call + +4: "t9_oneuse5" has unsupported operation: llvm.call + +4: "t9_oneuse5" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t9_oneuse5" has unsupported operation: llvm.call + +1: "t10_constants" +4: "t10_constants" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t10_constants" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t11_constants_vec_splat" +4: "t11_constants_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t11_constants_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t12_constants_vec_nonsplat" +4: "t12_constants_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t12_constants_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n13_overshift" +4: "n13_overshift" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n13_overshift" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n13_overshift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n14_trunc_of_lshr" +4: "n14_trunc_of_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n14_trunc_of_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n14_trunc_of_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n15_variable_shamts" +4: "n15_variable_shamts" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n15_variable_shamts" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest.txt new file mode 100644 index 000000000..5624c154a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-in-bittest.txt @@ -0,0 +1,285 @@ +1: "t0_const_lshr_shl_ne" +4: "t0_const_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_const_shl_lshr_ne" +4: "t1_const_shl_lshr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_const_lshr_shl_eq" +4: "t2_const_lshr_shl_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_const_after_fold_lshr_shl_ne" +4: "t3_const_after_fold_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_const_after_fold_lshr_shl_ne" +4: "t4_const_after_fold_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_const_lshr_shl_ne" +4: "t5_const_lshr_shl_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_const_shl_lshr_ne" +4: "t6_const_shl_lshr_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_const_lshr_shl_ne_vec_splat" +4: "t7_const_lshr_shl_ne_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8_const_lshr_shl_ne_vec_nonsplat" +4: "t8_const_lshr_shl_ne_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t9_const_lshr_shl_ne_vec_poison0" +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: llvm.mlir.undef + +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t9_const_lshr_shl_ne_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t10_const_lshr_shl_ne_vec_poison1" +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: llvm.mlir.undef + +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_const_lshr_shl_ne_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t11_const_lshr_shl_ne_vec_poison2" +4: "t11_const_lshr_shl_ne_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t12_const_lshr_shl_ne_vec_poison3" +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: llvm.mlir.undef + +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t12_const_lshr_shl_ne_vec_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t13_const_lshr_shl_ne_vec_poison4" +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: llvm.mlir.undef + +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t13_const_lshr_shl_ne_vec_poison4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t14_const_lshr_shl_ne_vec_poison5" +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: llvm.mlir.undef + +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t14_const_lshr_shl_ne_vec_poison5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t15_const_lshr_shl_ne_vec_poison6" +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: llvm.mlir.undef + +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t15_const_lshr_shl_ne_vec_poison6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen32" +5: "gen32" is empty + +1: "t16_commutativity0" +4: "t16_commutativity0" has unsupported operation: llvm.call + +4: "t16_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t17_commutativity1" +4: "t17_commutativity1" has unsupported operation: llvm.call + +4: "t17_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use32" +5: "use32" is empty + +1: "t18_const_oneuse0" +4: "t18_const_oneuse0" has unsupported operation: llvm.call + +4: "t18_const_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t19_const_oneuse1" +4: "t19_const_oneuse1" has unsupported operation: llvm.call + +4: "t19_const_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t20_const_oneuse2" +4: "t20_const_oneuse2" has unsupported operation: llvm.call + +4: "t20_const_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t21_const_oneuse3" +4: "t21_const_oneuse3" has unsupported operation: llvm.call + +4: "t21_const_oneuse3" has unsupported operation: llvm.call + +4: "t21_const_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t22_const_oneuse4" +4: "t22_const_oneuse4" has unsupported operation: llvm.call + +4: "t22_const_oneuse4" has unsupported operation: llvm.call + +4: "t22_const_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t23_const_oneuse5" +4: "t23_const_oneuse5" has unsupported operation: llvm.call + +4: "t23_const_oneuse5" has unsupported operation: llvm.call + +4: "t23_const_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t24_const_oneuse6" +4: "t24_const_oneuse6" has unsupported operation: llvm.call + +4: "t24_const_oneuse6" has unsupported operation: llvm.call + +4: "t24_const_oneuse6" has unsupported operation: llvm.call + +4: "t24_const_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t25_var_oneuse0" +4: "t25_var_oneuse0" has unsupported operation: llvm.call + +4: "t25_var_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t26_var_oneuse1" +4: "t26_var_oneuse1" has unsupported operation: llvm.call + +4: "t26_var_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t27_var_oneuse2" +4: "t27_var_oneuse2" has unsupported operation: llvm.call + +4: "t27_var_oneuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t28_var_oneuse3" +4: "t28_var_oneuse3" has unsupported operation: llvm.call + +4: "t28_var_oneuse3" has unsupported operation: llvm.call + +4: "t28_var_oneuse3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t29_var_oneuse4" +4: "t29_var_oneuse4" has unsupported operation: llvm.call + +4: "t29_var_oneuse4" has unsupported operation: llvm.call + +4: "t29_var_oneuse4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t30_var_oneuse5" +4: "t30_var_oneuse5" has unsupported operation: llvm.call + +4: "t30_var_oneuse5" has unsupported operation: llvm.call + +4: "t30_var_oneuse5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t31_var_oneuse6" +4: "t31_var_oneuse6" has unsupported operation: llvm.call + +4: "t31_var_oneuse6" has unsupported operation: llvm.call + +4: "t31_var_oneuse6" has unsupported operation: llvm.call + +4: "t31_var_oneuse6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t32_shift_of_const_oneuse0" +4: "t32_shift_of_const_oneuse0" has unsupported operation: llvm.call + +4: "t32_shift_of_const_oneuse0" has unsupported operation: llvm.call + +4: "t32_shift_of_const_oneuse0" has unsupported operation: llvm.call + +4: "t32_shift_of_const_oneuse0" has unsupported operation: llvm.call + +4: "t32_shift_of_const_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t33_shift_of_const_oneuse1" +4: "t33_shift_of_const_oneuse1" has unsupported operation: llvm.call + +4: "t33_shift_of_const_oneuse1" has unsupported operation: llvm.call + +4: "t33_shift_of_const_oneuse1" has unsupported operation: llvm.call + +4: "t33_shift_of_const_oneuse1" has unsupported operation: llvm.call + +1: "t34_commutativity0_oneuse0" +4: "t34_commutativity0_oneuse0" has unsupported operation: llvm.call + +4: "t34_commutativity0_oneuse0" has unsupported operation: llvm.call + +4: "t34_commutativity0_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t35_commutativity0_oneuse1" +4: "t35_commutativity0_oneuse1" has unsupported operation: llvm.call + +4: "t35_commutativity0_oneuse1" has unsupported operation: llvm.call + +4: "t35_commutativity0_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t36_commutativity1_oneuse0" +4: "t36_commutativity1_oneuse0" has unsupported operation: llvm.call + +4: "t36_commutativity1_oneuse0" has unsupported operation: llvm.call + +4: "t36_commutativity1_oneuse0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t37_commutativity1_oneuse1" +4: "t37_commutativity1_oneuse1" has unsupported operation: llvm.call + +4: "t37_commutativity1_oneuse1" has unsupported operation: llvm.call + +4: "t37_commutativity1_oneuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n38_overshift" +4: "n38_overshift" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "constantexpr" +4: "constantexpr" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constantexpr" has unsupported operation: llvm.load + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "constantexpr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "pr44802" +4: "pr44802" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr44802" has unsupported operation: builtin.unregistered: llvm.zext + +4: "pr44802" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-ashr.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-ashr.txt new file mode 100644 index 000000000..97807ab47 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-ashr.txt @@ -0,0 +1,84 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat_poison0" +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4_vec_nonsplat_poison1" +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5_vec_nonsplat_poison1" +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "t6_extrause0" +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t6_extrause0" has unsupported operation: llvm.call + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t7_extrause1" +4: "t7_extrause1" has unsupported operation: llvm.call + +4: "t7_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t8_extrause2" +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t8_extrause2" has unsupported operation: llvm.call + +4: "t8_extrause2" has unsupported operation: llvm.call + +1: "t9_ashr" +4: "t9_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t9_ashr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n10_lshr_ashr" +4: "n10_lshr_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n10_lshr_ashr" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-lshr.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-lshr.txt new file mode 100644 index 000000000..3329e48a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-lshr.txt @@ -0,0 +1,84 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat_poison0" +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4_vec_nonsplat_poison1" +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5_vec_nonsplat_poison1" +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "t6_extrause0" +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t6_extrause0" has unsupported operation: llvm.call + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t7_extrause1" +4: "t7_extrause1" has unsupported operation: llvm.call + +4: "t7_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t8_extrause2" +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t8_extrause2" has unsupported operation: llvm.call + +4: "t8_extrause2" has unsupported operation: llvm.call + +1: "t9_lshr" +4: "t9_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t9_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n10_ashr_lshr" +4: "n10_ashr_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n10_ashr_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-shl.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-shl.txt new file mode 100644 index 000000000..3372f284a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation-with-truncation-shl.txt @@ -0,0 +1,110 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t1_vec_splat" +4: "t1_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t2_vec_nonsplat" +4: "t2_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t3_vec_nonsplat_poison0" +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t3_vec_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t4_vec_nonsplat_poison1" +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5_vec_nonsplat_poison1" +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "t6_extrause0" +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t6_extrause0" has unsupported operation: llvm.call + +4: "t6_extrause0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t7_extrause1" +4: "t7_extrause1" has unsupported operation: llvm.call + +4: "t7_extrause1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t8_extrause2" +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t8_extrause2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t8_extrause2" has unsupported operation: llvm.call + +4: "t8_extrause2" has unsupported operation: llvm.call + +1: "n11" +4: "n11" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t01" +4: "t01" has unsupported operation: llvm.mlir.addressof + +4: "t01" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "t01" has unsupported operation: llvm.mlir.addressof + +4: "t01" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "t01" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_tr_shl_constant_shift_amount_uses" +4: "shl_tr_shl_constant_shift_amount_uses" has unsupported operation: llvm.call + +4: "shl_tr_shl_constant_shift_amount_uses" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl_tr_shl_constant_shift_amount_uses" has unsupported operation: llvm.call + +1: "PR51657" +4: "PR51657" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR51657" has unsupported operation: builtin.unregistered: llvm.br + +1: "extra_use_on_first_shift" +4: "extra_use_on_first_shift" has unsupported operation: llvm.call + +4: "extra_use_on_first_shift" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt new file mode 100644 index 000000000..2332957d5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-amount-reassociation.txt @@ -0,0 +1,155 @@ +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "t1_vec_splat" +"t1_vec_splat" contains vectors which are unsupported + +1: "t2_vec_nonsplat" +"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 + +4: "t3_vec_nonsplat_poison0" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_nonsplat_poison0" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t4_vec_nonsplat_poison1" +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t4_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t4_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t5_vec_nonsplat_poison1" +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_nonsplat_poison1" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_nonsplat_poison1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t6_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "t7_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.ashr +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "t8_lshr_exact_flag_preservation" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.lshr +2: llvm.add +2: llvm.lshr +2: llvm.return + +1: "t9_ashr_exact_flag_preservation" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.ashr +2: llvm.add +2: llvm.ashr +2: llvm.return + +1: "t10_shl_nuw_flag_preservation" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "t11_shl_nsw_flag_preservation" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "constantexpr" +4: "constantexpr" has unsupported operation after optimization: llvm.mlir.addressof + +4: "constantexpr" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "constantexpr" has unsupported operation after optimization: llvm.mlir.undef + +4: "constantexpr" has unsupported operation after optimization: llvm.alloca + +4: "constantexpr" has unsupported operation after optimization: llvm.load + +1: "n12" +7: "n12" is unchanged by InstCombine + +1: "t13_vec" +7: "t13_vec" is unchanged by InstCombine + +1: "n13" +7: "n13" is unchanged by InstCombine + +1: "n14" +7: "n14" is unchanged by InstCombine + +1: "n15" +7: "n15" is unchanged by InstCombine + +1: "n16" +7: "n16" is unchanged by InstCombine + +1: "n17" +7: "n17" is unchanged by InstCombine + +1: "n18" +7: "n18" is unchanged by InstCombine + +1: "n19" +7: "n19" is unchanged by InstCombine + +1: "n20" +7: "n20" is unchanged by InstCombine + +1: "pr44802" +4: "pr44802" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr44802" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-by-signext.txt b/SSA/Projects/InstCombine/tests/logs/shift-by-signext.txt new file mode 100644 index 000000000..02e4930d5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-by-signext.txt @@ -0,0 +1,62 @@ +1: "t0_shl" +4: "t0_shl" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t1_lshr" +4: "t1_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t2_ashr" +4: "t2_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t3_vec_shl" +4: "t3_vec_shl" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t4_vec_lshr" +4: "t4_vec_lshr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t5_vec_ashr" +4: "t5_vec_ashr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t6_twoshifts" +4: "t6_twoshifts" has unsupported operation: builtin.unregistered: llvm.br + +4: "t6_twoshifts" has unsupported operation: builtin.unregistered: llvm.br + +4: "t6_twoshifts" has unsupported operation: builtin.unregistered: llvm.sext + +1: "n7_fshl" +4: "n7_fshl" has unsupported operation: builtin.unregistered: llvm.sext + +4: "n7_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "n8_fshr" +4: "n8_fshr" has unsupported operation: builtin.unregistered: llvm.sext + +4: "n8_fshr" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "t9_fshl" +4: "t9_fshl" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t9_fshl" has unsupported operation: builtin.unregistered: llvm.intr.fshl + +1: "t10_fshr" +4: "t10_fshr" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t10_fshr" has unsupported operation: builtin.unregistered: llvm.intr.fshr + +1: "use32" +5: "use32" is empty + +1: "n11_extrause" +4: "n11_extrause" has unsupported operation: builtin.unregistered: llvm.sext + +4: "n11_extrause" has unsupported operation: llvm.call + +1: "n12_twoshifts_and_extrause" +4: "n12_twoshifts_and_extrause" has unsupported operation: builtin.unregistered: llvm.br + +4: "n12_twoshifts_and_extrause" has unsupported operation: builtin.unregistered: llvm.br + +4: "n12_twoshifts_and_extrause" has unsupported operation: builtin.unregistered: llvm.sext + +4: "n12_twoshifts_and_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-cttz-ctlz.txt b/SSA/Projects/InstCombine/tests/logs/shift-cttz-ctlz.txt new file mode 100644 index 000000000..78ecdc661 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-cttz-ctlz.txt @@ -0,0 +1,23 @@ +1: "shl_cttz_false" +4: "shl_cttz_false" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "shl_ctlz_false" +4: "shl_ctlz_false" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "lshr_cttz_false" +4: "lshr_cttz_false" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "ashr_cttz_false" +4: "ashr_cttz_false" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "shl_cttz_false_multiuse" +4: "shl_cttz_false_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "shl_cttz_false_multiuse" has unsupported operation: llvm.call + +1: "shl_cttz_as_lhs" +4: "shl_cttz_as_lhs" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-direction-in-bit-test.txt b/SSA/Projects/InstCombine/tests/logs/shift-direction-in-bit-test.txt new file mode 100644 index 000000000..3c09af856 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-direction-in-bit-test.txt @@ -0,0 +1,79 @@ +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_ne" +4: "t1_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_vec_splat" +4: "t2_vec_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_vec_splat_undef" +4: "t3_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "t3_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t3_vec_splat_undef" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen32" +5: "gen32" is empty + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_twoshifts0" +4: "t5_twoshifts0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_twoshifts1" +4: "t6_twoshifts1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_twoshifts2" +4: "t7_twoshifts2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8_twoshifts3" +4: "t8_twoshifts3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use32" +5: "use32" is empty + +1: "t9_extrause0" +4: "t9_extrause0" has unsupported operation: llvm.call + +4: "t9_extrause0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t10_extrause1" +4: "t10_extrause1" has unsupported operation: llvm.call + +4: "t10_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t11_extrause2" +4: "t11_extrause2" has unsupported operation: llvm.call + +4: "t11_extrause2" has unsupported operation: llvm.call + +4: "t11_extrause2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t12_shift_of_const0" +4: "t12_shift_of_const0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t13_shift_of_const1" +4: "t13_shift_of_const1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t14_and_with_const0" +4: "t14_and_with_const0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t15_and_with_const1" +4: "t15_and_with_const1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n16" +4: "n16" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-flags.txt b/SSA/Projects/InstCombine/tests/logs/shift-flags.txt new file mode 100644 index 000000000..ac77175a8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-flags.txt @@ -0,0 +1,45 @@ +1: "shl_add_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "shl_add_nuw_fail" +7: "shl_add_nuw_fail" is unchanged by InstCombine + +1: "shl_add_nuw_and_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "shl_add_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "shl_add_nsw_fail" +7: "shl_add_nsw_fail" is unchanged by InstCombine + +1: "lshr_add_exact" +7: "lshr_add_exact" is unchanged by InstCombine + +1: "lshr_add_exact_fail" +7: "lshr_add_exact_fail" is unchanged by InstCombine + +1: "ashr_add_exact" +7: "ashr_add_exact" is unchanged by InstCombine + +1: "ashr_add_exact_fail" +7: "ashr_add_exact_fail" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-logic.txt b/SSA/Projects/InstCombine/tests/logs/shift-logic.txt new file mode 100644 index 000000000..e08d01975 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-logic.txt @@ -0,0 +1,277 @@ +1: "use" +5: "use" is empty + +1: "shl_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "shl_and_nonuniform" +"shl_and_nonuniform" contains vectors which are unsupported + +1: "shl_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "shl_or_poison" +4: "shl_or_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_or_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_or_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_or_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_or_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.xor +2: llvm.shl +2: llvm.return + +1: "shl_xor_nonuniform" +"shl_xor_nonuniform" contains vectors which are unsupported + +1: "lshr_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.lshr +2: llvm.return + +1: "lshr_and_poison" +4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_and_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_and_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_and_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_or" +"lshr_or" contains vectors which are unsupported + +1: "lshr_xor" +"lshr_xor" contains vectors which are unsupported + +1: "ashr_and" +"ashr_and" contains vectors which are unsupported + +1: "ashr_or" +"ashr_or" contains vectors which are unsupported + +1: "ashr_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.ashr +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "shr_mismatch_xor" +7: "shr_mismatch_xor" is unchanged by InstCombine + +1: "ashr_overshift_xor" +7: "ashr_overshift_xor" is unchanged by InstCombine + +1: "ashr_poison_poison_xor" +4: "ashr_poison_poison_xor" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_poison_poison_xor" has unsupported operation: llvm.mlir.undef + +4: "ashr_poison_poison_xor" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_poison_poison_xor" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_poison_poison_xor" has unsupported operation: llvm.mlir.undef + +4: "ashr_poison_poison_xor" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_poison_poison_xor" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_or_extra_use" +4: "lshr_or_extra_use" has unsupported operation: llvm.store + +1: "PR44028" +4: "PR44028" has unsupported operation: llvm.mlir.addressof + +4: "PR44028" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "lshr_mul" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_nuw_nsw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mul +2: llvm.lshr +2: llvm.return + +1: "lshr_mul_vector" +"lshr_mul_vector" contains vectors which are unsupported + +1: "lshr_mul_negative_noexact" +7: "lshr_mul_negative_noexact" is unchanged by InstCombine + +1: "lshr_mul_negative_oneuse" +4: "lshr_mul_negative_oneuse" has unsupported operation: llvm.call + +1: "lshr_mul_negative_nonuw" +7: "lshr_mul_negative_nonuw" is unchanged by InstCombine + +1: "lshr_mul_negative_nsw" +7: "lshr_mul_negative_nsw" is unchanged by InstCombine + +1: "shl_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_add_multiuse" +4: "shl_add_multiuse" has unsupported operation: llvm.mlir.addressof + +4: "shl_add_multiuse" has unsupported operation: llvm.call + +1: "shl_add_multiuse_nonconstant" +4: "shl_add_multiuse_nonconstant" has unsupported operation: llvm.mlir.addressof + +4: "shl_add_multiuse_nonconstant" has unsupported operation: llvm.call + +1: "shl_add_nonuniform" +"shl_add_nonuniform" contains vectors which are unsupported + +1: "shl_add_poison" +4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_add_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_add" +7: "lshr_add" is unchanged by InstCombine + +1: "lshr_add_nonuniform" +7: "lshr_add_nonuniform" is unchanged by InstCombine + +1: "lshr_add_poison" +4: "lshr_add_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_add_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_sub_no_commute" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_sub_nonuniform" +"shl_sub_nonuniform" contains vectors which are unsupported + +1: "shl_sub_poison" +4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_sub_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_poison" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_sub" +7: "lshr_sub" is unchanged by InstCombine + +1: "lshr_sub_nonuniform" +7: "lshr_sub_nonuniform" is unchanged by InstCombine + +1: "lshr_sub_poison" +4: "lshr_sub_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_sub_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_sub_poison" has unsupported operation: llvm.mlir.undef + +4: "lshr_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_sub_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-shift.txt b/SSA/Projects/InstCombine/tests/logs/shift-shift.txt new file mode 100644 index 000000000..6d3456e5f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-shift.txt @@ -0,0 +1,282 @@ +1: "use8" +5: "use8" is empty + +1: "use32" +5: "use32" is empty + +1: "pr12967" +4: "pr12967" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr12967" has unsupported operation: builtin.unregistered: llvm.br + +1: "pr26760" +4: "pr26760" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr26760" has unsupported operation: builtin.unregistered: llvm.br + +1: "pr8547" +4: "pr8547" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr8547" has unsupported operation: llvm.store + +4: "pr8547" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "pr8547" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "shl_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.return + +1: "shl_shl_splat_vec" +"shl_shl_splat_vec" contains vectors which are unsupported + +1: "shl_shl_vec" +7: "shl_shl_vec" is unchanged by InstCombine + +1: "lshr_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.return + +1: "lshr_lshr_splat_vec" +"lshr_lshr_splat_vec" contains vectors which are unsupported + +1: "lshr_lshr_vec" +"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 + +1: "shl_trunc_smaller_lshr" +4: "shl_trunc_smaller_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_bigger_ashr" +4: "shl_trunc_bigger_ashr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_smaller_ashr" +4: "shl_trunc_smaller_ashr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_bigger_shl" +4: "shl_trunc_bigger_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_smaller_shl" +4: "shl_trunc_smaller_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_bigger_lshr_use1" +4: "shl_trunc_bigger_lshr_use1" has unsupported operation: llvm.call + +4: "shl_trunc_bigger_lshr_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_smaller_lshr_use1" +4: "shl_trunc_smaller_lshr_use1" has unsupported operation: llvm.call + +4: "shl_trunc_smaller_lshr_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_trunc_bigger_lshr_use2" +4: "shl_trunc_bigger_lshr_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl_trunc_bigger_lshr_use2" has unsupported operation: llvm.call + +1: "shl_trunc_smaller_lshr_use2" +4: "shl_trunc_smaller_lshr_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "shl_trunc_smaller_lshr_use2" has unsupported operation: llvm.call + +1: "ashr_ashr_constants_use" +4: "ashr_ashr_constants_use" has unsupported operation: llvm.call + +1: "ashr_ashr_constants_vec" +4: "ashr_ashr_constants_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "ashr_ashr_constants_vec" has unsupported operation: llvm.mlir.undef + +4: "ashr_ashr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_ashr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "ashr_ashr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_lshr_constants_use" +4: "lshr_lshr_constants_use" has unsupported operation: llvm.call + +1: "lshr_lshr_constants_vec" +4: "lshr_lshr_constants_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "lshr_lshr_constants_vec" has unsupported operation: llvm.mlir.undef + +4: "lshr_lshr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_lshr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_lshr_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_shl_constants_use" +4: "shl_shl_constants_use" has unsupported operation: llvm.call + +1: "shl_shl_constants_vec" +4: "shl_shl_constants_vec" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_shl_constants_vec" has unsupported operation: llvm.mlir.undef + +4: "shl_shl_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_shl_constants_vec" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "ashr_lshr_constants" +7: "ashr_lshr_constants" is unchanged by InstCombine + +1: "ashr_shl_constants" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.shl +2: llvm.return + +1: "lshr_ashr_constants" +7: "lshr_ashr_constants" is unchanged by InstCombine + +1: "lshr_shl_constants" +7: "lshr_shl_constants" is unchanged by InstCombine + +1: "shl_ashr_constants" +7: "shl_ashr_constants" is unchanged by InstCombine + +1: "shl_lshr_constants" +7: "shl_lshr_constants" is unchanged by InstCombine + +1: "shl_lshr_demand1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.or +2: llvm.return + +1: "shl_ashr_demand2" +4: "shl_ashr_demand2" has unsupported operation: llvm.call + +1: "shl_lshr_demand3" +7: "shl_lshr_demand3" is unchanged by InstCombine + +1: "shl_lshr_demand4" +7: "shl_lshr_demand4" is unchanged by InstCombine + +1: "shl_lshr_demand5" +4: "shl_lshr_demand5" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand5_undef_left" +4: "shl_lshr_demand5_undef_left" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_demand5_undef_left" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_demand5_undef_left" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_demand5_undef_left" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_demand5_undef_left" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand5_undef_right" +4: "shl_lshr_demand5_undef_right" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_demand5_undef_right" has unsupported operation: llvm.mlir.undef + +4: "shl_lshr_demand5_undef_right" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_demand5_undef_right" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_lshr_demand5_undef_right" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand5_nonuniform_vec_left" +4: "shl_lshr_demand5_nonuniform_vec_left" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand5_nonuniform_vec_right" +4: "shl_lshr_demand5_nonuniform_vec_right" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand5_nonuniform_vec_both" +4: "shl_lshr_demand5_nonuniform_vec_both" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "shl_lshr_demand6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.lshr +2: llvm.and +2: llvm.return + +1: "lshr_shl_demand1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "lshr_shl_demand2" +4: "lshr_shl_demand2" has unsupported operation: llvm.call + +1: "lshr_shl_demand3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.shl +2: llvm.or +2: llvm.return + +1: "lshr_shl_demand4" +7: "lshr_shl_demand4" is unchanged by InstCombine + +1: "lshr_shl_demand5" +"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 + +4: "lshr_shl_demand5_undef_left" has unsupported operation: llvm.mlir.undef + +4: "lshr_shl_demand5_undef_left" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_demand5_undef_left" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shl_demand5_undef_right" +4: "lshr_shl_demand5_undef_right" has unsupported operation: llvm.mlir.undef + +4: "lshr_shl_demand5_undef_right" has unsupported operation: llvm.mlir.undef + +4: "lshr_shl_demand5_undef_right" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_shl_demand5_undef_right" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_shl_demand5_nonuniform_vec_left" +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 + +1: "lshr_shl_demand5_nonuniform_vec_both" +7: "lshr_shl_demand5_nonuniform_vec_both" is unchanged by InstCombine + +1: "ashr_ashr_constexpr" +4: "ashr_ashr_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "ashr_ashr_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/shift-sra.txt b/SSA/Projects/InstCombine/tests/logs/shift-sra.txt new file mode 100644 index 000000000..8c889756b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shift-sra.txt @@ -0,0 +1,67 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "ashr_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.return + +1: "ashr_overshift" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.return + +1: "ashr_ashr_splat_vec" +"ashr_ashr_splat_vec" contains vectors which are unsupported + +1: "ashr_overshift_splat_vec" +"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 + +1: "hoist_ashr_ahead_of_sext_1_splat" +4: "hoist_ashr_ahead_of_sext_1_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "hoist_ashr_ahead_of_sext_2" +4: "hoist_ashr_ahead_of_sext_2" has unsupported operation: builtin.unregistered: llvm.sext + +1: "hoist_ashr_ahead_of_sext_2_splat" +4: "hoist_ashr_ahead_of_sext_2_splat" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/shift.txt b/SSA/Projects/InstCombine/tests/logs/shift.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/shl-and-negC-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/shl-and-negC-icmpeq-zero.txt new file mode 100644 index 000000000..968cba108 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-and-negC-icmpeq-zero.txt @@ -0,0 +1,56 @@ +1: "scalar_i8_shl_and_negC_eq" +4: "scalar_i8_shl_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_shl_and_negC_eq" +4: "scalar_i16_shl_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_eq" +4: "scalar_i32_shl_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_shl_and_negC_eq" +4: "scalar_i64_shl_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_ne" +4: "scalar_i32_shl_and_negC_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_shl_and_negC_eq" +4: "vec_4xi32_shl_and_negC_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_shl_and_negC_eq_poison1" +4: "vec_shl_and_negC_eq_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_shl_and_negC_eq_poison2" +4: "vec_shl_and_negC_eq_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_shl_and_negC_eq_poison3" +4: "vec_shl_and_negC_eq_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_negC_eq_extra_use_shl" +4: "scalar_shl_and_negC_eq_extra_use_shl" has unsupported operation: llvm.store + +4: "scalar_shl_and_negC_eq_extra_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_negC_eq_extra_use_and" +4: "scalar_shl_and_negC_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_negC_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_negC_eq_extra_use_shl_and" +4: "scalar_shl_and_negC_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_negC_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_negC_eq_extra_use_shl_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_eq_X_is_constant1" +4: "scalar_i32_shl_and_negC_eq_X_is_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_eq_X_is_constant2" +4: "scalar_i32_shl_and_negC_eq_X_is_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_slt" +4: "scalar_i32_shl_and_negC_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_negC_eq_nonzero" +4: "scalar_i32_shl_and_negC_eq_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shl-and-signbit-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/shl-and-signbit-icmpeq-zero.txt new file mode 100644 index 000000000..9221fdf93 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-and-signbit-icmpeq-zero.txt @@ -0,0 +1,56 @@ +1: "scalar_i8_shl_and_signbit_eq" +4: "scalar_i8_shl_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_shl_and_signbit_eq" +4: "scalar_i16_shl_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_eq" +4: "scalar_i32_shl_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_shl_and_signbit_eq" +4: "scalar_i64_shl_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_ne" +4: "scalar_i32_shl_and_signbit_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_shl_and_signbit_eq" +4: "vec_4xi32_shl_and_signbit_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_shl_and_signbit_eq_poison1" +4: "vec_4xi32_shl_and_signbit_eq_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_shl_and_signbit_eq_poison2" +4: "vec_4xi32_shl_and_signbit_eq_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_shl_and_signbit_eq_poison3" +4: "vec_4xi32_shl_and_signbit_eq_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_signbit_eq_extra_use_shl" +4: "scalar_shl_and_signbit_eq_extra_use_shl" has unsupported operation: llvm.store + +4: "scalar_shl_and_signbit_eq_extra_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_signbit_eq_extra_use_and" +4: "scalar_shl_and_signbit_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_signbit_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_shl_and_signbit_eq_extra_use_shl_and" +4: "scalar_shl_and_signbit_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_signbit_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_shl_and_signbit_eq_extra_use_shl_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_eq_X_is_constant1" +4: "scalar_i32_shl_and_signbit_eq_X_is_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_eq_X_is_constant2" +4: "scalar_i32_shl_and_signbit_eq_X_is_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_slt" +4: "scalar_i32_shl_and_signbit_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_and_signbit_eq_nonzero" +4: "scalar_i32_shl_and_signbit_eq_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/shl-bo.txt b/SSA/Projects/InstCombine/tests/logs/shl-bo.txt new file mode 100644 index 000000000..bb8b4e73e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-bo.txt @@ -0,0 +1,286 @@ +1: "use" +5: "use" is empty + +1: "lshr_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_add_commute_splat" +"lshr_add_commute_splat" contains vectors which are unsupported + +1: "lshr_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "lshr_sub_commute_splat" +"lshr_sub_commute_splat" contains vectors which are unsupported + +1: "lshr_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "lshr_and_commute_splat" +"lshr_and_commute_splat" contains vectors which are unsupported + +1: "lshr_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "lshr_or_commute_splat" +"lshr_or_commute_splat" contains vectors which are unsupported + +1: "lshr_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.xor +2: llvm.shl +2: llvm.return + +1: "lshr_xor_commute_splat" +"lshr_xor_commute_splat" contains vectors which are unsupported + +1: "lshr_add_use1" +4: "lshr_add_use1" has unsupported operation: llvm.call + +1: "lshr_add_use2" +4: "lshr_add_use2" has unsupported operation: llvm.call + +1: "lshr_and_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_and_add_commute_splat" +"lshr_and_add_commute_splat" contains vectors which are unsupported + +1: "lshr_and_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "lshr_and_sub_commute_splat" +"lshr_and_sub_commute_splat" contains vectors which are unsupported + +1: "lshr_and_and" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.and +2: llvm.shl +2: llvm.return + +1: "lshr_and_and_commute_splat" +"lshr_and_and_commute_splat" contains vectors which are unsupported + +1: "lshr_and_or" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "lshr_and_or_disjoint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "ashr_and_or_disjoint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.ashr +2: llvm.and +2: llvm.or +2: llvm.shl +2: llvm.return + +1: "lshr_and_or_commute_splat" +"lshr_and_or_commute_splat" contains vectors which are unsupported + +1: "lshr_and_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.lshr +2: llvm.and +2: llvm.xor +2: llvm.shl +2: llvm.return + +1: "lshr_and_xor_commute_splat" +"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 + +1: "lshr_and_add_use2" +4: "lshr_and_add_use2" has unsupported operation: llvm.call + +1: "lshr_and_add_use3" +4: "lshr_and_add_use3" has unsupported operation: llvm.call + +1: "lshr_and_add_use4" +4: "lshr_and_add_use4" has unsupported operation: llvm.call + +4: "lshr_and_add_use4" has unsupported operation: llvm.call + +1: "lshr_and_add_use5" +4: "lshr_and_add_use5" has unsupported operation: llvm.call + +4: "lshr_and_add_use5" has unsupported operation: llvm.call + +1: "lshr_and_add_use6" +4: "lshr_and_add_use6" has unsupported operation: llvm.call + +4: "lshr_and_add_use6" has unsupported operation: llvm.call + +1: "lshr_add_shl_v2i8_undef" +4: "lshr_add_shl_v2i8_undef" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_shl_v2i8_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_add_shl_v2i8_nonuniform" +7: "lshr_add_shl_v2i8_nonuniform" is unchanged by InstCombine + +1: "lshr_add_and_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "lshr_add_and_shl_v2i32" +"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 + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: llvm.mlir.undef + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "lshr_add_and_shl_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "lshr_add_and_shl_v2i32_nonuniform" +7: "lshr_add_and_shl_v2i32_nonuniform" is unchanged by InstCombine + +1: "shl_add_and_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.and +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "shl_add_and_lshr_v2i32" +"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 + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: llvm.mlir.undef + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: llvm.mlir.undef + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_add_and_lshr_v2i32_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_add_and_lshr_v2i32_nonuniform" +7: "shl_add_and_lshr_v2i32_nonuniform" is unchanged by InstCombine + +1: "test_FoldShiftByConstant_CreateSHL" +"test_FoldShiftByConstant_CreateSHL" contains vectors which are unsupported + +1: "test_FoldShiftByConstant_CreateSHL2" +"test_FoldShiftByConstant_CreateSHL2" contains vectors which are unsupported + +1: "test_FoldShiftByConstant_CreateAnd" +"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 new file mode 100644 index 000000000..b22c47c56 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-demand.txt @@ -0,0 +1,112 @@ +1: "src_srem_shl_demand_max_signbit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_min_signbit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_max_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_max_signbit_mask_hit_first_demand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_min_signbit_mask_hit_last_demand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_eliminate_signbit" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_demand_max_mask_hit_demand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.srem +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "src_srem_shl_mask_vector" +"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 + +1: "sext_shl_trunc_same_size" +4: "sext_shl_trunc_same_size" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_shl_trunc_same_size" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sext_shl_trunc_smaller" +4: "sext_shl_trunc_smaller" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_shl_trunc_smaller" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sext_shl_trunc_larger" +4: "sext_shl_trunc_larger" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_shl_trunc_larger" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "sext_shl_mask" +4: "sext_shl_mask" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_shl_mask_higher" +4: "sext_shl_mask_higher" has unsupported operation: builtin.unregistered: llvm.sext + +1: "set_shl_mask" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.shl +2: llvm.and +2: llvm.return + +1: "must_drop_poison" +4: "must_drop_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "f_t15_t01_t09" +4: "f_t15_t01_t09" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/shl-factor.txt b/SSA/Projects/InstCombine/tests/logs/shl-factor.txt new file mode 100644 index 000000000..2ec23abe5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-factor.txt @@ -0,0 +1,127 @@ +1: "use8" +5: "use8" is empty + +1: "add_shl_same_amount" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_nsw" +"add_shl_same_amount_nsw" contains vectors which are unsupported + +1: "add_shl_same_amount_nuw" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_nsw_extra_use1" +4: "add_shl_same_amount_nsw_extra_use1" has unsupported operation: llvm.call + +1: "add_shl_same_amount_nuw_extra_use2" +4: "add_shl_same_amount_nuw_extra_use2" has unsupported operation: llvm.call + +1: "add_shl_same_amount_nsw_nuw_extra_use3" +4: "add_shl_same_amount_nsw_nuw_extra_use3" has unsupported operation: llvm.call + +4: "add_shl_same_amount_nsw_nuw_extra_use3" has unsupported operation: llvm.call + +1: "add_shl_same_amount_partial_nsw1" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_partial_nsw2" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_partial_nuw1" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_partial_nuw2" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "sub_shl_same_amount" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "sub_shl_same_amount_nsw" +"sub_shl_same_amount_nsw" contains vectors which are unsupported + +1: "sub_shl_same_amount_nuw" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "sub_shl_same_amount_nsw_extra_use1" +4: "sub_shl_same_amount_nsw_extra_use1" has unsupported operation: llvm.call + +1: "sub_shl_same_amount_nuw_extra_use2" +4: "sub_shl_same_amount_nuw_extra_use2" has unsupported operation: llvm.call + +1: "sub_shl_same_amount_nsw_nuw_extra_use3" +4: "sub_shl_same_amount_nsw_nuw_extra_use3" has unsupported operation: llvm.call + +4: "sub_shl_same_amount_nsw_nuw_extra_use3" has unsupported operation: llvm.call + +1: "sub_shl_same_amount_partial_nsw1" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "sub_shl_same_amount_partial_nsw2" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "sub_shl_same_amount_partial_nuw1" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "sub_shl_same_amount_partial_nuw2" +2: llvm.func +2: llvm.shl +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "add_shl_same_amount_constants" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.shl +2: llvm.add +2: llvm.return + +1: "add_shl_same_amount_constants_extra_use" +4: "add_shl_same_amount_constants_extra_use" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/shl-sub.txt b/SSA/Projects/InstCombine/tests/logs/shl-sub.txt new file mode 100644 index 000000000..847724da7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-sub.txt @@ -0,0 +1,129 @@ +1: "use" +5: "use" is empty + +1: "shl_sub_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_sub_multiuse_i32" +4: "shl_sub_multiuse_i32" has unsupported operation: llvm.call + +1: "shl_sub_i8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_sub_i64" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_sub_i64_vec" +"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 + +1: "shl_bad_sub_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "bad_shl_sub_i32" +7: "bad_shl_sub_i32" is unchanged by InstCombine + +1: "shl_bad_sub2_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "bad_shl2_sub_i32" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_bad_sub_i8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_bad_sub_i64" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_bad_sub_i64_vec" +"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 + +1: "shl_sub_i64_vec_undef_bad" +4: "shl_sub_i64_vec_undef_bad" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_i64_vec_undef_bad" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_i64_vec_undef_bad" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_undef_bad" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_undef_bad" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_sub_i64_vec_poison_bad2" +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: llvm.mlir.undef + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_sub_i64_vec_poison_bad2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_const_op1_sub_const_op0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.shl +2: llvm.return + +1: "shl_const_op1_sub_const_op0_splat" +"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/shl-unsigned-cmp-const.txt b/SSA/Projects/InstCombine/tests/logs/shl-unsigned-cmp-const.txt new file mode 100644 index 000000000..2b3b7ce6e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shl-unsigned-cmp-const.txt @@ -0,0 +1,105 @@ +1: "scalar_i8_shl_ult_const_1" +4: "scalar_i8_shl_ult_const_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ult_const_2" +4: "scalar_i8_shl_ult_const_2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ult_const_3" +4: "scalar_i8_shl_ult_const_3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_shl_ult_const" +4: "scalar_i16_shl_ult_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_shl_ult_const" +4: "scalar_i32_shl_ult_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_shl_ult_const" +4: "scalar_i64_shl_ult_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_uge_const" +4: "scalar_i8_shl_uge_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ule_const" +4: "scalar_i8_shl_ule_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ugt_const" +4: "scalar_i8_shl_ugt_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ult_const" +4: "vector_4xi32_shl_ult_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ult_const_undef1" +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ult_const_undef2" +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ult_const_undef3" +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: llvm.mlir.undef + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vector_4xi32_shl_ult_const_undef3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_uge_const" +4: "vector_4xi32_shl_uge_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ule_const" +4: "vector_4xi32_shl_ule_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_4xi32_shl_ugt_const" +4: "vector_4xi32_shl_ugt_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ult_const_extra_use_shl" +4: "scalar_i8_shl_ult_const_extra_use_shl" has unsupported operation: llvm.store + +4: "scalar_i8_shl_ult_const_extra_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_slt_const" +4: "scalar_i8_shl_slt_const" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i8_shl_ugt_const_not_power_of_2" +4: "scalar_i8_shl_ugt_const_not_power_of_2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/should-change-type.txt b/SSA/Projects/InstCombine/tests/logs/should-change-type.txt new file mode 100644 index 000000000..2960ed9d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/should-change-type.txt @@ -0,0 +1,28 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test3" +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test4" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test4" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-binop.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-binop.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-cast-dist.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-cast-dist.txt new file mode 100644 index 000000000..a50baa8bb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-cast-dist.txt @@ -0,0 +1,81 @@ +1: "vtrn1" +4: "vtrn1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "vtrn1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "vtrn1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "vtrn2" +4: "vtrn2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "vtrn2" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bc_shuf_lenchange" +4: "bc_shuf_lenchange" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "bc_shuf_lenchange" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "bc_shuf_nonvec" +4: "bc_shuf_nonvec" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_nonvec" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_nonvec" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_size" +4: "bc_shuf_size" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_size" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_size" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_mismatch" +4: "bc_shuf_mismatch" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_mismatch" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_mismatch" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_i8_float" +4: "bc_shuf_i8_float" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_i8_float" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_i8_float" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_elemtype_mismatch" +4: "bc_shuf_elemtype_mismatch" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_elemtype_mismatch" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_elemtype_mismatch" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_reuse" +4: "bc_shuf_reuse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bc_shuf_reuse" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_reuse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bc_shuf_y_hasoneuse" +4: "bc_shuf_y_hasoneuse" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_y_hasoneuse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "bc_shuf_y_hasoneuse" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_y_hasoneuse" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "bc_shuf_neither_hasoneuse" +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "bc_shuf_neither_hasoneuse" has unsupported operation: builtin.unregistered: llvm.fadd + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-cast-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-cast-inseltpoison.txt new file mode 100644 index 000000000..985cbadce --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-cast-inseltpoison.txt @@ -0,0 +1,60 @@ +1: "trunc_little_endian" +4: "trunc_little_endian" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_big_endian" +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use_v8i16" +5: "use_v8i16" is empty + +1: "trunc_little_endian_extra_use" +4: "trunc_little_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_little_endian_extra_use" has unsupported operation: llvm.call + +4: "trunc_little_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use_v12i11" +5: "use_v12i11" is empty + +1: "trunc_big_endian_extra_use" +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_big_endian_extra_use" has unsupported operation: llvm.call + +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast1" +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast2" +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast3" +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_shuffle" +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-cast.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-cast.txt new file mode 100644 index 000000000..985cbadce --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-cast.txt @@ -0,0 +1,60 @@ +1: "trunc_little_endian" +4: "trunc_little_endian" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_big_endian" +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_big_endian" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use_v8i16" +5: "use_v8i16" is empty + +1: "trunc_little_endian_extra_use" +4: "trunc_little_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_little_endian_extra_use" has unsupported operation: llvm.call + +4: "trunc_little_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use_v12i11" +5: "use_v12i11" is empty + +1: "trunc_big_endian_extra_use" +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_big_endian_extra_use" has unsupported operation: llvm.call + +4: "trunc_big_endian_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast1" +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast2" +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_cast3" +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_cast3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wrong_shuffle" +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "wrong_shuffle" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt new file mode 100644 index 000000000..78e45a3dc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow-inseltpoison.txt @@ -0,0 +1,87 @@ +1: "narrow_shuffle_of_select" +4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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 + +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.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 + +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.shufflevector + +4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.select + +1: "use" +5: "use" is empty + +1: "use_cmp" +5: "use_cmp" is empty + +1: "narrow_shuffle_of_select_use1" +4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "narrow_shuffle_of_select_use2" +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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" +4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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" +4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "narrow_shuffle_of_select_with_widened_ops" +4: "narrow_shuffle_of_select_with_widened_ops" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt new file mode 100644 index 000000000..78e45a3dc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle-select-narrow.txt @@ -0,0 +1,87 @@ +1: "narrow_shuffle_of_select" +4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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 + +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.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 + +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.shufflevector + +4: "narrow_shuffle_of_select_undefs" has unsupported operation: builtin.unregistered: llvm.select + +1: "use" +5: "use" is empty + +1: "use_cmp" +5: "use_cmp" is empty + +1: "narrow_shuffle_of_select_use1" +4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "narrow_shuffle_of_select_use2" +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_use2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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" +4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_mismatch_types1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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" +4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "narrow_shuffle_of_select_mismatch_types2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +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 + +1: "narrow_shuffle_of_select_with_widened_ops" +4: "narrow_shuffle_of_select_with_widened_ops" has unsupported operation: builtin.unregistered: llvm.select + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt new file mode 100644 index 000000000..882a11de4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle_select-inseltpoison.txt @@ -0,0 +1,788 @@ +1: "add" +"add" contains vectors which are unsupported + +1: "add_nuw_nsw" +"add_nuw_nsw" contains vectors which are unsupported + +1: "add_undef_mask_elt" +4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_nuw_nsw_undef_mask_elt" +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub" +4: "sub" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub" has unsupported operation: llvm.mlir.undef + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul" +4: "mul" has unsupported operation: llvm.mlir.undef + +4: "mul" has unsupported operation: llvm.mlir.undef + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl" +"shl" contains vectors which are unsupported + +1: "shl_nsw" +"shl_nsw" contains vectors which are unsupported + +1: "shl_undef_mask_elt" +"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 + +1: "lshr_constant_op0" +"lshr_constant_op0" contains vectors which are unsupported + +1: "lshr_exact_constant_op0" +"lshr_exact_constant_op0" contains vectors which are unsupported + +1: "lshr_undef_mask_elt" +"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 + +1: "lshr_constant_op1" +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr" +"ashr" contains vectors which are unsupported + +1: "and" +4: "and" has unsupported operation: llvm.mlir.undef + +4: "and" has unsupported operation: llvm.mlir.undef + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "use_v4i32" +5: "use_v4i32" is empty + +1: "or" +4: "or" has unsupported operation: llvm.call + +1: "xor" +"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 + +1: "sdiv_exact" +"sdiv_exact" contains vectors which are unsupported + +1: "sdiv_undef_mask_elt" +"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 + +1: "urem" +4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "urem_undef_mask_elt" +4: "urem_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem" +4: "srem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd_maybe_nan" +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_maybe_nan" has unsupported operation: llvm.mlir.undef + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd" +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub" +4: "fsub" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fmul" +4: "fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_constant_op0" +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fdiv_constant_op1" +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem" +4: "frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem" has unsupported operation: llvm.mlir.undef + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_add" +"add_add" contains vectors which are unsupported + +1: "add_add_nsw" +"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 + +4: "add_add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_add_nsw_undef_mask_elt" +4: "add_add_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_sub" +"sub_sub" contains vectors which are unsupported + +1: "sub_sub_nuw" +"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 + +4: "sub_sub_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_sub_nuw_undef_mask_elt" +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_mul" +4: "mul_mul" has unsupported operation: llvm.mlir.undef + +4: "mul_mul" has unsupported operation: llvm.mlir.undef + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_shl" +"shl_shl" contains vectors which are unsupported + +1: "shl_shl_nuw" +"shl_shl_nuw" contains vectors which are unsupported + +1: "shl_shl_undef_mask_elt" +"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 + +1: "lshr_lshr" +"lshr_lshr" contains vectors which are unsupported + +1: "ashr_ashr" +"ashr_ashr" contains vectors which are unsupported + +1: "and_and" +4: "and_and" has unsupported operation: llvm.mlir.undef + +4: "and_and" has unsupported operation: llvm.mlir.undef + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_or" +4: "or_or" has unsupported operation: llvm.call + +1: "xor_xor" +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 + +1: "sdiv_sdiv_exact" +"sdiv_sdiv_exact" contains vectors which are unsupported + +1: "sdiv_sdiv_undef_mask_elt" +"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 + +1: "urem_urem" +"urem_urem" contains vectors which are unsupported + +1: "urem_urem_undef_mask_elt" +"urem_urem_undef_mask_elt" contains vectors which are unsupported + +1: "srem_srem" +"srem_srem" contains vectors which are unsupported + +1: "srem_srem_undef_mask_elt" +"srem_srem_undef_mask_elt" contains vectors which are unsupported + +1: "fadd_fadd" +4: "fadd_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fsub" +4: "fsub_fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub_fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fmul" +4: "fmul_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_fdiv" +4: "fdiv_fdiv" has unsupported operation: llvm.mlir.undef + +4: "fdiv_fdiv" has unsupported operation: llvm.mlir.undef + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem_frem" +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_frem" has unsupported operation: llvm.mlir.undef + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: llvm.mlir.undef + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_2_vars" +4: "add_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars" +4: "sub_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_nsw" +4: "sub_2_vars_nsw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_undef_mask_elt" +4: "sub_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_nsw_undef_mask_elt" +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars" +4: "mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_nuw" +4: "mul_2_vars_nuw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_undef_mask_elt" +4: "mul_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_nuw_undef_mask_elt" +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars" +4: "shl_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_nsw" +4: "shl_2_vars_nsw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_undef_mask_elt" +4: "shl_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_nsw_undef_mask_elt" +4: "shl_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars" +4: "lshr_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_exact" +4: "lshr_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_undef_mask_elt" +4: "lshr_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_exact_undef_mask_elt" +4: "lshr_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr_2_vars" +4: "ashr_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "and_2_vars" +4: "and_2_vars" has unsupported operation: llvm.mlir.undef + +4: "and_2_vars" has unsupported operation: llvm.mlir.undef + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or_2_vars" +4: "or_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "or_2_vars" has unsupported operation: llvm.call + +1: "xor_2_vars" +4: "xor_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "xor_2_vars" has unsupported operation: llvm.call + +4: "xor_2_vars" has unsupported operation: llvm.call + +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" +4: "sdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_exact" +4: "sdiv_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_undef_mask_elt" +4: "sdiv_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_exact_undef_mask_elt" +4: "sdiv_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "urem_2_vars" +4: "urem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem_2_vars" +4: "srem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd_2_vars" +4: "fadd_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fadd_2_vars" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_2_vars" +4: "fsub_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fsub_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_2_vars" +4: "fmul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul_2_vars" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "frem_2_vars" +4: "frem_2_vars" has unsupported operation: llvm.mlir.undef + +4: "frem_2_vars" has unsupported operation: llvm.mlir.undef + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.frem + +1: "fdiv_2_vars" +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_shl" +"mul_shl" contains vectors which are unsupported + +1: "shl_mul" +4: "shl_mul" has unsupported operation: llvm.mlir.undef + +4: "shl_mul" has unsupported operation: llvm.mlir.undef + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_is_nop_shl" +"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 + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_shl_2_vars" +4: "mul_shl_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_mul_2_vars" +4: "shl_mul_2_vars" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_2_vars" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_or" +"add_or" contains vectors which are unsupported + +1: "or_add" +"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 + +4: "or_add_not_enough_masking" has unsupported operation: llvm.mlir.undef + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: llvm.mlir.undef + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_or_2_vars" +4: "add_or_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or_add_2_vars" +4: "or_add_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "PR41419" +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt b/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt new file mode 100644 index 000000000..0b19a780b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shuffle_select.txt @@ -0,0 +1,869 @@ +1: "add" +"add" contains vectors which are unsupported + +1: "add_nuw_nsw" +"add_nuw_nsw" contains vectors which are unsupported + +1: "add_undef_mask_elt" +4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_nuw_nsw_undef_mask_elt" +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_nuw_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub" +4: "sub" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sub" has unsupported operation: llvm.mlir.undef + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul" +4: "mul" has unsupported operation: llvm.mlir.undef + +4: "mul" has unsupported operation: llvm.mlir.undef + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl" +"shl" contains vectors which are unsupported + +1: "shl_nsw" +"shl_nsw" contains vectors which are unsupported + +1: "shl_undef_mask_elt" +"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 + +1: "lshr_constant_op0" +"lshr_constant_op0" contains vectors which are unsupported + +1: "lshr_exact_constant_op0" +"lshr_exact_constant_op0" contains vectors which are unsupported + +1: "lshr_undef_mask_elt" +"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 + +1: "lshr_constant_op1" +4: "lshr_constant_op1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr" +"ashr" contains vectors which are unsupported + +1: "and" +4: "and" has unsupported operation: llvm.mlir.undef + +4: "and" has unsupported operation: llvm.mlir.undef + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "use_v4i32" +5: "use_v4i32" is empty + +1: "or" +4: "or" has unsupported operation: llvm.call + +1: "xor" +"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 + +1: "sdiv_exact" +"sdiv_exact" contains vectors which are unsupported + +1: "sdiv_undef_mask_elt" +"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 + +1: "urem" +4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "urem_undef_mask_elt" +4: "urem_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem" +4: "srem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd_maybe_nan" +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fadd_maybe_nan" has unsupported operation: llvm.mlir.undef + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd_maybe_nan" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd" +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub" +4: "fsub" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fmul" +4: "fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_constant_op0" +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_constant_op0" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_constant_op0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fdiv_constant_op1" +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: llvm.mlir.undef + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_constant_op1" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem" +4: "frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem" has unsupported operation: llvm.mlir.undef + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_add" +"add_add" contains vectors which are unsupported + +1: "add_add_nsw" +"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 + +4: "add_add_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "add_add_nsw_undef_mask_elt" +4: "add_add_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "add_add_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_sub" +"sub_sub" contains vectors which are unsupported + +1: "sub_sub_nuw" +"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 + +4: "sub_sub_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_sub_nuw_undef_mask_elt" +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_sub_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_mul" +4: "mul_mul" has unsupported operation: llvm.mlir.undef + +4: "mul_mul" has unsupported operation: llvm.mlir.undef + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "shl_shl" +"shl_shl" contains vectors which are unsupported + +1: "shl_shl_nuw" +"shl_shl_nuw" contains vectors which are unsupported + +1: "shl_shl_undef_mask_elt" +"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 + +1: "lshr_lshr" +"lshr_lshr" contains vectors which are unsupported + +1: "ashr_ashr" +"ashr_ashr" contains vectors which are unsupported + +1: "and_and" +4: "and_and" has unsupported operation: llvm.mlir.undef + +4: "and_and" has unsupported operation: llvm.mlir.undef + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_and" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "or_or" +4: "or_or" has unsupported operation: llvm.call + +1: "xor_xor" +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 + +1: "sdiv_sdiv_exact" +"sdiv_sdiv_exact" contains vectors which are unsupported + +1: "sdiv_sdiv_undef_mask_elt" +"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 + +1: "urem_urem" +"urem_urem" contains vectors which are unsupported + +1: "urem_urem_undef_mask_elt" +"urem_urem_undef_mask_elt" contains vectors which are unsupported + +1: "srem_srem" +"srem_srem" contains vectors which are unsupported + +1: "srem_srem_undef_mask_elt" +"srem_srem_undef_mask_elt" contains vectors which are unsupported + +1: "fadd_fadd" +4: "fadd_fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_fsub" +4: "fsub_fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub_fsub" has unsupported operation: llvm.mlir.undef + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_fmul" +4: "fmul_fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv_fdiv" +4: "fdiv_fdiv" has unsupported operation: llvm.mlir.undef + +4: "fdiv_fdiv" has unsupported operation: llvm.mlir.undef + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +1: "frem_frem" +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "frem_frem" has unsupported operation: llvm.mlir.undef + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: llvm.mlir.undef + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem_frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_2_vars" +4: "add_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars" +4: "sub_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_nsw" +4: "sub_2_vars_nsw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_undef_mask_elt" +4: "sub_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub_2_vars_nsw_undef_mask_elt" +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars" +4: "mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_nuw" +4: "mul_2_vars_nuw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_undef_mask_elt" +4: "mul_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_2_vars_nuw_undef_mask_elt" +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "mul_2_vars_nuw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars" +4: "shl_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_nsw" +4: "shl_2_vars_nsw" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_undef_mask_elt" +4: "shl_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_2_vars_nsw_undef_mask_elt" +4: "shl_2_vars_nsw_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars" +4: "lshr_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_exact" +4: "lshr_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_undef_mask_elt" +4: "lshr_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr_2_vars_exact_undef_mask_elt" +4: "lshr_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "ashr_2_vars" +4: "ashr_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "and_2_vars" +4: "and_2_vars" has unsupported operation: llvm.mlir.undef + +4: "and_2_vars" has unsupported operation: llvm.mlir.undef + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or_2_vars" +4: "or_2_vars" has unsupported operation: llvm.call + +4: "or_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or_2_vars_undef_mask_elt" +4: "or_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "or_2_vars_undef_mask_elt" has unsupported operation: llvm.mlir.undef + +4: "or_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_2_vars_undef_mask_elt" has unsupported operation: llvm.call + +4: "or_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "xor_2_vars" +4: "xor_2_vars" has unsupported operation: llvm.call + +4: "xor_2_vars" has unsupported operation: llvm.call + +4: "xor_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +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" +4: "sdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_exact" +4: "sdiv_2_vars_exact" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_undef_mask_elt" +4: "sdiv_2_vars_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv_2_vars_exact_undef_mask_elt" +4: "sdiv_2_vars_exact_undef_mask_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "urem_2_vars" +4: "urem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem_2_vars" +4: "srem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd_2_vars" +4: "fadd_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fadd_2_vars" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "fsub_2_vars" +4: "fsub_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fsub_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fsub_2_vars" has unsupported operation: builtin.unregistered: llvm.fsub + +1: "fmul_2_vars" +4: "fmul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul_2_vars" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "frem_2_vars" +4: "frem_2_vars" has unsupported operation: llvm.mlir.undef + +4: "frem_2_vars" has unsupported operation: llvm.mlir.undef + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "frem_2_vars" has unsupported operation: builtin.unregistered: llvm.frem + +1: "fdiv_2_vars" +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "fdiv_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: llvm.mlir.undef + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_shl" +"mul_shl" contains vectors which are unsupported + +1: "shl_mul" +4: "shl_mul" has unsupported operation: llvm.mlir.undef + +4: "shl_mul" has unsupported operation: llvm.mlir.undef + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "mul_is_nop_shl" +"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 + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_not_constant_shift_amount" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_shl_2_vars" +4: "mul_shl_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl_mul_2_vars" +4: "shl_mul_2_vars" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_2_vars" has unsupported operation: llvm.mlir.undef + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shl_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul_neg" +"mul_neg" contains vectors which are unsupported + +1: "neg_mul" +"neg_mul" contains vectors which are unsupported + +1: "mul_neg_2_vars" +4: "mul_neg_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "neg_mul_2_vars" +4: "neg_mul_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_or" +"add_or" contains vectors which are unsupported + +1: "add_or_disjoint" +"add_or_disjoint" contains vectors which are unsupported + +1: "or_add" +"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 + +4: "or_add_not_enough_masking" has unsupported operation: llvm.mlir.undef + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: llvm.mlir.undef + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "or_add_not_enough_masking" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "add_or_2_vars" +4: "add_or_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or_add_2_vars" +4: "or_add_2_vars" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "PR41419" +4: "PR41419" has unsupported operation: llvm.mlir.undef + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "PR41419" has unsupported operation: llvm.mlir.undef + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR41419" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_commute0" +4: "sel_common_op_commute0" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_commute1" +4: "sel_common_op_commute1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_commute2" +4: "sel_common_op_commute2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_commute3" +4: "sel_common_op_commute3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_commute3_poison_mask_elts" +4: "sel_common_op_commute3_poison_mask_elts" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_not_common_op_commute3" +4: "sel_not_common_op_commute3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "sel_not_common_op_commute3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "not_sel_common_op" +4: "not_sel_common_op" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "not_sel_common_op" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sel_common_op_extra_use" +4: "sel_common_op_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "sel_common_op_extra_use" has unsupported operation: llvm.call + +4: "sel_common_op_extra_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "identity_mask" +4: "identity_mask" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "identity_mask" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast-inseltpoison.txt new file mode 100644 index 000000000..f1456389d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast-inseltpoison.txt @@ -0,0 +1,100 @@ +1: "use" +5: "use" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +1: "splat_bitcast_operand" +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_uses" +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_uses" has unsupported operation: llvm.call + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_same_size_src_elt" +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_operand" +4: "shuf_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_change_type" +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_bitcast_operand_wider_src_elt" +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_wider_src_elt_uses" +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: llvm.call + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_operand_wider_src" +4: "shuf_bitcast_operand_wider_src" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_operand_cannot_widen" +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_operand_cannot_widen_undef" +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast.txt b/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast.txt new file mode 100644 index 000000000..103ed1bbd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevec-bitcast.txt @@ -0,0 +1,133 @@ +1: "use" +5: "use" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +1: "splat_bitcast_operand" +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_uses" +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_uses" has unsupported operation: llvm.call + +4: "splat_bitcast_operand_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_same_size_src_elt" +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_same_size_src_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_operand" +4: "shuf_bitcast_operand" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_change_type" +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_change_type" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "splat_bitcast_operand_wider_src_elt" +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_wider_src_elt" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "splat_bitcast_operand_wider_src_elt_uses" +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: llvm.call + +4: "splat_bitcast_operand_wider_src_elt_uses" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_operand_wider_src" +4: "shuf_bitcast_operand_wider_src" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_operand_cannot_widen" +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_operand_cannot_widen" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_operand_cannot_widen_undef" +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_operand_cannot_widen_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_insert" +4: "shuf_bitcast_insert" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_inserti_use1" +4: "shuf_bitcast_inserti_use1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_bitcast_inserti_use1" has unsupported operation: llvm.store + +4: "shuf_bitcast_inserti_use1" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_insert_use2" +4: "shuf_bitcast_insert_use2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_bitcast_insert_use2" has unsupported operation: llvm.store + +4: "shuf_bitcast_insert_use2" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "shuf_bitcast_insert_wrong_index" +4: "shuf_bitcast_insert_wrong_index" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_insert_wrong_index" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_insert_wrong_index" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuf_bitcast_wrong_size" +4: "shuf_bitcast_wrong_size" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuf_bitcast_wrong_size" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "shuf_bitcast_wrong_size" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuf_bitcast_wrong_size" has unsupported operation: builtin.unregistered: llvm.shufflevector + diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt new file mode 100644 index 000000000..6c7119679 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant-inseltpoison.txt @@ -0,0 +1,3 @@ +1: "__inff4" +"__inff4" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevec-constant.txt b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant.txt new file mode 100644 index 000000000..3a95b6886 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevec-constant.txt @@ -0,0 +1,2 @@ +3: shufflevec-constant.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt new file mode 100644 index 000000000..305753708 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem-inseltpoison.txt @@ -0,0 +1,75 @@ +1: "test_srem_orig" +4: "test_srem_orig" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_srem" +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_fdiv" has unsupported operation: llvm.mlir.undef + +4: "test_fdiv" has unsupported operation: llvm.mlir.undef + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_frem" has unsupported operation: llvm.mlir.undef + +4: "test_frem" has unsupported operation: llvm.mlir.undef + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 new file mode 100644 index 000000000..ff0f1c0ba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevector-div-rem.txt @@ -0,0 +1,115 @@ +1: "test_srem_orig" +4: "test_srem_orig" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_srem" +4: "test_srem" has unsupported operation: llvm.mlir.undef + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_srem" has unsupported operation: llvm.mlir.undef + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_srem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_urem" has unsupported operation: llvm.mlir.undef + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_urem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_sdiv" has unsupported operation: llvm.mlir.undef + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_sdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_udiv" has unsupported operation: llvm.mlir.undef + +4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_udiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_fdiv" has unsupported operation: llvm.mlir.undef + +4: "test_fdiv" has unsupported operation: llvm.mlir.undef + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_fdiv" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +4: "test_frem" has unsupported operation: llvm.mlir.undef + +4: "test_frem" has unsupported operation: llvm.mlir.undef + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_frem" has unsupported operation: builtin.unregistered: llvm.insertelement + +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_freezepoison.txt b/SSA/Projects/InstCombine/tests/logs/shufflevector_freezepoison.txt new file mode 100644 index 000000000..6f0be8d37 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/shufflevector_freezepoison.txt @@ -0,0 +1,73 @@ +1: "shuffle_op0_freeze_poison" +4: "shuffle_op0_freeze_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_op0_freeze_poison" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op0_freeze_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_op1_freeze_poison" +4: "shuffle_op1_freeze_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_op1_freeze_poison" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op1_freeze_poison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_op0_freeze_poison_use" +4: "shuffle_op0_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_op0_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op0_freeze_poison_use" has unsupported operation: llvm.call + +4: "shuffle_op0_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_op1_freeze_poison_use" +4: "shuffle_op1_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_op1_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op1_freeze_poison_use" has unsupported operation: llvm.call + +4: "shuffle_op1_freeze_poison_use" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_op0_freeze_undef" +4: "shuffle_op0_freeze_undef" has unsupported operation: llvm.mlir.undef + +4: "shuffle_op0_freeze_undef" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op0_freeze_undef" has unsupported operation: llvm.call + +4: "shuffle_op0_freeze_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_op1_freeze_undef" +4: "shuffle_op1_freeze_undef" has unsupported operation: llvm.mlir.undef + +4: "shuffle_op1_freeze_undef" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_op1_freeze_undef" has unsupported operation: llvm.call + +4: "shuffle_op1_freeze_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_bc1" +4: "shuffle_bc1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_bc1" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_bc1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuffle_bc1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shuffle_bc2" +4: "shuffle_bc2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "shuffle_bc2" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "shuffle_bc2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "shuffle_bc2" has unsupported operation: llvm.call + +4: "shuffle_bc2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sign-bit-test-via-right-shifting-all-other-bits.txt b/SSA/Projects/InstCombine/tests/logs/sign-bit-test-via-right-shifting-all-other-bits.txt new file mode 100644 index 000000000..952017d3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sign-bit-test-via-right-shifting-all-other-bits.txt @@ -0,0 +1,171 @@ +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "highest_bit_test_via_lshr" +4: "highest_bit_test_via_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_lshr_with_truncation" +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.zext + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_ashr" +4: "highest_bit_test_via_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_ashr_with_truncation" +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: builtin.unregistered: llvm.zext + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_with_truncation" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_lshr_ashr" +4: "highest_bit_test_via_lshr_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_lshr_ashe_with_truncation" +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: builtin.unregistered: llvm.zext + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_lshr_ashe_with_truncation" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_ashr_lshr" +4: "highest_bit_test_via_ashr_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "highest_bit_test_via_ashr_lshr_with_truncation" +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.zext + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: llvm.call + +4: "highest_bit_test_via_ashr_lshr_with_truncation" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "unsigned_sign_bit_extract" +4: "unsigned_sign_bit_extract" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "unsigned_sign_bit_extract_extrause" +4: "unsigned_sign_bit_extract_extrause" has unsupported operation: llvm.call + +4: "unsigned_sign_bit_extract_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "unsigned_sign_bit_extract_extrause__ispositive" +4: "unsigned_sign_bit_extract_extrause__ispositive" has unsupported operation: llvm.call + +4: "unsigned_sign_bit_extract_extrause__ispositive" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "signed_sign_bit_extract" +4: "signed_sign_bit_extract" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "signed_sign_bit_extract_extrause" +4: "signed_sign_bit_extract_extrause" has unsupported operation: llvm.call + +4: "signed_sign_bit_extract_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "unsigned_sign_bit_extract_with_trunc" +4: "unsigned_sign_bit_extract_with_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "unsigned_sign_bit_extract_with_trunc_extrause" +4: "unsigned_sign_bit_extract_with_trunc_extrause" has unsupported operation: llvm.call + +4: "unsigned_sign_bit_extract_with_trunc_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "unsigned_sign_bit_extract_with_trunc_extrause" has unsupported operation: llvm.call + +4: "unsigned_sign_bit_extract_with_trunc_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "signed_sign_bit_extract_trunc" +4: "signed_sign_bit_extract_trunc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "signed_sign_bit_extract_trunc_extrause" +4: "signed_sign_bit_extract_trunc_extrause" has unsupported operation: llvm.call + +4: "signed_sign_bit_extract_trunc_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "signed_sign_bit_extract_trunc_extrause" has unsupported operation: llvm.call + +4: "signed_sign_bit_extract_trunc_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt b/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt new file mode 100644 index 000000000..8f7b6945b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sign-test-and-or.txt @@ -0,0 +1,152 @@ +1: "foo" +5: "foo" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1_splat" +4: "test1_splat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1_logical" +4: "test1_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test2_logical" +4: "test2_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test3_logical" +4: "test3_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test4_logical" +4: "test4_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.return + +4: "test5" has unsupported operation: llvm.return + +1: "test5_logical" +4: "test5_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test5_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5_logical" has unsupported operation: llvm.call + +4: "test5_logical" has unsupported operation: llvm.return + +4: "test5_logical" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: llvm.call + +4: "test6" has unsupported operation: llvm.return + +4: "test6" has unsupported operation: llvm.return + +1: "test6_logical" +4: "test6_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6_logical" has unsupported operation: llvm.call + +4: "test6_logical" has unsupported operation: llvm.return + +4: "test6_logical" has unsupported operation: llvm.return + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7" has unsupported operation: llvm.call + +4: "test7" has unsupported operation: llvm.return + +4: "test7" has unsupported operation: llvm.return + +1: "test7_logical" +4: "test7_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test7_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7_logical" has unsupported operation: llvm.call + +4: "test7_logical" has unsupported operation: llvm.return + +4: "test7_logical" has unsupported operation: llvm.return + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: llvm.call + +4: "test8" has unsupported operation: llvm.return + +4: "test8" has unsupported operation: llvm.return + +1: "test8_logical" +4: "test8_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test8_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8_logical" has unsupported operation: llvm.call + +4: "test8_logical" has unsupported operation: llvm.return + +4: "test8_logical" has unsupported operation: llvm.return + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9_logical" +4: "test9_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10_logical" +4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test11_logical" +4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/signbit-lshr-and-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/signbit-lshr-and-icmpeq-zero.txt new file mode 100644 index 000000000..cd824b2ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signbit-lshr-and-icmpeq-zero.txt @@ -0,0 +1,102 @@ +1: "scalar_i8_signbit_lshr_and_eq" +4: "scalar_i8_signbit_lshr_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_signbit_lshr_and_eq" +4: "scalar_i16_signbit_lshr_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq" +4: "scalar_i32_signbit_lshr_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_signbit_lshr_and_eq" +4: "scalar_i64_signbit_lshr_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_ne" +4: "scalar_i32_signbit_lshr_and_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_lshr_and_eq" +4: "vec_4xi32_signbit_lshr_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_lshr_and_eq_undef1" +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_lshr_and_eq_undef2" +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_lshr_and_eq_undef3" +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_lshr_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr" +4: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_extra_use_and" +4: "scalar_i32_signbit_lshr_and_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_lshr_and_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr_and" +4: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_lshr_and_eq_extra_use_lshr_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_X_is_constant1" +4: "scalar_i32_signbit_lshr_and_eq_X_is_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_X_is_constant2" +4: "scalar_i32_signbit_lshr_and_eq_X_is_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_slt" +4: "scalar_i32_signbit_lshr_and_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_lshr_and_eq_nonzero" +4: "scalar_i32_signbit_lshr_and_eq_nonzero" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/signbit-shl-and-icmpeq-zero.txt b/SSA/Projects/InstCombine/tests/logs/signbit-shl-and-icmpeq-zero.txt new file mode 100644 index 000000000..c0eccf1f3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signbit-shl-and-icmpeq-zero.txt @@ -0,0 +1,102 @@ +1: "scalar_i8_signbit_shl_and_eq" +4: "scalar_i8_signbit_shl_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i16_signbit_shl_and_eq" +4: "scalar_i16_signbit_shl_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq" +4: "scalar_i32_signbit_shl_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i64_signbit_shl_and_eq" +4: "scalar_i64_signbit_shl_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_ne" +4: "scalar_i32_signbit_shl_and_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_shl_and_eq" +4: "vec_4xi32_signbit_shl_and_eq" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_shl_and_eq_undef1" +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_shl_and_eq_undef2" +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_4xi32_signbit_shl_and_eq_undef3" +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: llvm.mlir.undef + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "vec_4xi32_signbit_shl_and_eq_undef3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_extra_use_shl" +4: "scalar_i32_signbit_shl_and_eq_extra_use_shl" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_shl_and_eq_extra_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_extra_use_and" +4: "scalar_i32_signbit_shl_and_eq_extra_use_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_shl_and_eq_extra_use_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_extra_use_shl_and" +4: "scalar_i32_signbit_shl_and_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_shl_and_eq_extra_use_shl_and" has unsupported operation: llvm.store + +4: "scalar_i32_signbit_shl_and_eq_extra_use_shl_and" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_X_is_constant1" +4: "scalar_i32_signbit_shl_and_eq_X_is_constant1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_X_is_constant2" +4: "scalar_i32_signbit_shl_and_eq_X_is_constant2" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_slt" +4: "scalar_i32_signbit_shl_and_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "scalar_i32_signbit_shl_and_eq_nonzero" +4: "scalar_i32_signbit_shl_and_eq_nonzero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/signed-comparison.txt b/SSA/Projects/InstCombine/tests/logs/signed-comparison.txt new file mode 100644 index 000000000..2977c986c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signed-comparison.txt @@ -0,0 +1,6 @@ +1: "scalar_zext_slt" +4: "scalar_zext_slt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vector_zext_slt" +4: "vector_zext_slt" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/signed-mul-lack-of-overflow-check-via-mul-sdiv.txt b/SSA/Projects/InstCombine/tests/logs/signed-mul-lack-of-overflow-check-via-mul-sdiv.txt new file mode 100644 index 000000000..1faac5529 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signed-mul-lack-of-overflow-check-via-mul-sdiv.txt @@ -0,0 +1,67 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t2_commutative" has unsupported operation: llvm.extractvalue + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t4_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +5: "use8" is empty + +1: "t5_extrause0" +4: "t5_extrause0" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.call + +1: "t6_extrause1" +4: "t6_extrause1" has unsupported operation: llvm.call + +4: "t6_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_extrause2" +4: "t7_extrause2" has unsupported operation: llvm.call + +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: builtin.unregistered: llvm.icmp + +1: "n9_different_y" +4: "n9_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred" +4: "n10_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/signed-mul-overflow-check-via-mul-sdiv.txt b/SSA/Projects/InstCombine/tests/logs/signed-mul-overflow-check-via-mul-sdiv.txt new file mode 100644 index 000000000..1faac5529 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signed-mul-overflow-check-via-mul-sdiv.txt @@ -0,0 +1,67 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t2_commutative" has unsupported operation: llvm.extractvalue + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t4_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +5: "use8" is empty + +1: "t5_extrause0" +4: "t5_extrause0" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.call + +1: "t6_extrause1" +4: "t6_extrause1" has unsupported operation: llvm.call + +4: "t6_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t7_extrause2" +4: "t7_extrause2" has unsupported operation: llvm.call + +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: builtin.unregistered: llvm.icmp + +1: "n9_different_y" +4: "n9_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred" +4: "n10_wrong_pred" 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 new file mode 100644 index 000000000..b8011942a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signed-truncation-check.txt @@ -0,0 +1,369 @@ +1: "positive_with_signbit" +4: "positive_with_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_signbit_logical" +4: "positive_with_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_mask" +4: "positive_with_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_mask_logical" +4: "positive_with_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_icmp" +4: "positive_with_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_icmp_logical" +4: "positive_with_icmp_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_aggressive_icmp" +4: "positive_with_aggressive_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_aggressive_icmp_logical" +4: "positive_with_aggressive_icmp_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_extra_and" +4: "positive_with_extra_and" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "positive_vec_nonsplat" +4: "positive_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "positive_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison0" +4: "positive_vec_poison0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison1" +4: "positive_vec_poison1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison2" +4: "positive_vec_poison2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison3" +4: "positive_vec_poison3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison4" +4: "positive_vec_poison4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison5" +4: "positive_vec_poison5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_vec_poison6" +4: "positive_vec_poison6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen32" +5: "gen32" is empty + +1: "commutative" +4: "commutative" has unsupported operation: llvm.call + +4: "commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "commutative_logical" +4: "commutative_logical" has unsupported operation: llvm.call + +4: "commutative_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "commutative_with_icmp" +4: "commutative_with_icmp" has unsupported operation: llvm.call + +4: "commutative_with_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "commutative_with_icmp_logical" +4: "commutative_with_icmp_logical" has unsupported operation: llvm.call + +4: "commutative_with_icmp_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_trunc_signbit" +4: "positive_trunc_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_trunc_signbit_logical" +4: "positive_trunc_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_trunc_base" +4: "positive_trunc_base" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_trunc_base_logical" +4: "positive_trunc_base_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_different_trunc_both" +4: "positive_different_trunc_both" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "positive_different_trunc_both" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "positive_different_trunc_both" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_different_trunc_both_logical" +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.trunc + +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 + +1: "use8" +5: "use8" is empty + +1: "use1" +5: "use1" is empty + +1: "oneuse_with_signbit" +4: "oneuse_with_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_signbit" has unsupported operation: llvm.call + +4: "oneuse_with_signbit" has unsupported operation: llvm.call + +4: "oneuse_with_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_signbit" has unsupported operation: llvm.call + +4: "oneuse_with_signbit" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse_with_signbit_logical" +4: "oneuse_with_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_signbit_logical" has unsupported operation: llvm.call + +4: "oneuse_with_signbit_logical" has unsupported operation: llvm.call + +4: "oneuse_with_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_signbit_logical" has unsupported operation: llvm.call + +4: "oneuse_with_signbit_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse_with_mask" +4: "oneuse_with_mask" has unsupported operation: llvm.call + +4: "oneuse_with_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_mask" has unsupported operation: llvm.call + +4: "oneuse_with_mask" has unsupported operation: llvm.call + +4: "oneuse_with_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_mask" has unsupported operation: llvm.call + +4: "oneuse_with_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse_with_mask_logical" +4: "oneuse_with_mask_logical" has unsupported operation: llvm.call + +4: "oneuse_with_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_mask_logical" has unsupported operation: llvm.call + +4: "oneuse_with_mask_logical" has unsupported operation: llvm.call + +4: "oneuse_with_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_with_mask_logical" has unsupported operation: llvm.call + +4: "oneuse_with_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "oneuse_shl_ashr" +4: "oneuse_shl_ashr" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuse_shl_ashr" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_shl_ashr" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_shl_ashr" has unsupported operation: llvm.call + +1: "oneuse_shl_ashr_logical" +4: "oneuse_shl_ashr_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuse_shl_ashr_logical" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_shl_ashr_logical" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr_logical" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr_logical" has unsupported operation: llvm.call + +4: "oneuse_shl_ashr_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "oneuse_trunc_sext" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_trunc_sext" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuse_trunc_sext" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext" has unsupported operation: builtin.unregistered: llvm.sext + +4: "oneuse_trunc_sext" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_trunc_sext" has unsupported operation: llvm.call + +1: "oneuse_trunc_sext_logical" +4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuse_trunc_sext_logical" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "oneuse_trunc_sext_logical" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuse_trunc_sext_logical" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.sext + +4: "oneuse_trunc_sext_logical" has unsupported operation: llvm.call + +4: "oneuse_trunc_sext_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "negative_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_not_arg_logical" +4: "negative_not_arg_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "negative_trunc_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_trunc_not_arg_logical" +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.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 + +4: "positive_with_mask_not_arg" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "positive_with_mask_not_arg_logical" +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.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 + +4: "negative_with_nonuniform_bad_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_with_nonuniform_bad_mask_logical" +4: "negative_with_nonuniform_bad_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative_with_nonuniform_bad_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_with_uniform_bad_mask" +4: "negative_with_uniform_bad_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative_with_uniform_bad_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_with_uniform_bad_mask_logical" +4: "negative_with_uniform_bad_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative_with_uniform_bad_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_with_wrong_mask" +4: "negative_with_wrong_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative_with_wrong_mask" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_with_wrong_mask_logical" +4: "negative_with_wrong_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negative_with_wrong_mask_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_not_less_than" +4: "negative_not_less_than" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "negative_not_less_than" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "negative_not_less_than_logical" +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.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 + +1: "negative_not_power_of_two_logical" +4: "negative_not_power_of_two_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_not_next_power_of_two" +4: "negative_not_next_power_of_two" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "negative_not_next_power_of_two_logical" +4: "negative_not_next_power_of_two_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "two_signed_truncation_checks" +4: "two_signed_truncation_checks" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "two_signed_truncation_checks_logical" +4: "two_signed_truncation_checks_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bad_trunc_stc" +4: "bad_trunc_stc" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bad_trunc_stc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "bad_trunc_stc" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "bad_trunc_stc_logical" +4: "bad_trunc_stc_logical" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "bad_trunc_stc_logical" has unsupported operation: builtin.unregistered: llvm.trunc + +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 new file mode 100644 index 000000000..18cf3b077 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signext.txt @@ -0,0 +1,80 @@ +1: "use" +5: "use" is empty + +1: "sextinreg" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "sextinreg_extra_use" +4: "sextinreg_extra_use" has unsupported operation: llvm.call + +1: "sextinreg_splat" +"sextinreg_splat" contains vectors which are unsupported + +1: "sextinreg_alt" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "sextinreg_alt_splat" +"sextinreg_alt_splat" contains vectors which are unsupported + +1: "sext" +4: "sext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_extra_use" +4: "sext_extra_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_extra_use" has unsupported operation: llvm.call + +4: "sext_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_splat" +4: "sext_splat" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sextinreg2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "sextinreg2_splat" +"sextinreg2_splat" contains vectors which are unsupported + +1: "test5" +7: "test5" is unchanged by InstCombine + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test6_splat_vec" +4: "test6_splat_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "ashr_splat" +"ashr_splat" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/signmask-of-sext-vs-of-shl-of-zext.txt b/SSA/Projects/InstCombine/tests/logs/signmask-of-sext-vs-of-shl-of-zext.txt new file mode 100644 index 000000000..4ec0c4d5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/signmask-of-sext-vs-of-shl-of-zext.txt @@ -0,0 +1,76 @@ +1: "use32" +5: "use32" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "n2" +4: "n2" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "n3" +4: "n3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t5" +4: "t5" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t5" has unsupported operation: llvm.call + +4: "t5" has unsupported operation: builtin.unregistered: llvm.sext + +1: "n6" +4: "n6" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n6" has unsupported operation: llvm.call + +1: "n7" +4: "n7" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n7" has unsupported operation: llvm.call + +4: "n7" has unsupported operation: llvm.call + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t9" +4: "t9" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t10_undef" +4: "t10_undef" has unsupported operation: llvm.mlir.undef + +4: "t10_undef" has unsupported operation: llvm.mlir.undef + +4: "t10_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_undef" has unsupported operation: builtin.unregistered: llvm.zext + +1: "t10_poison" +4: "t10_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t10_poison" has unsupported operation: llvm.mlir.undef + +4: "t10_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "t11" +4: "t11" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t11" has unsupported operation: llvm.mlir.undef + +4: "t11" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t11" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t11" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/simple_phi_condition.txt b/SSA/Projects/InstCombine/tests/logs/simple_phi_condition.txt new file mode 100644 index 000000000..4a08ddd9d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simple_phi_condition.txt @@ -0,0 +1,156 @@ +1: "test_direct_implication" +4: "test_direct_implication" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_direct_implication" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_direct_implication" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_inverted_implication" +4: "test_inverted_implication" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inverted_implication" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inverted_implication" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_edge_dominance" +4: "test_edge_dominance" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_edge_dominance" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_direct_implication_complex_cfg" +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_direct_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_inverted_implication_complex_cfg" +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_inverted_implication_complex_cfg" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_multiple_predecessors" +4: "test_multiple_predecessors" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_predecessors" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_predecessors" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_multiple_predecessors_wrong_value" +4: "test_multiple_predecessors_wrong_value" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_predecessors_wrong_value" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_predecessors_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_multiple_predecessors_no_edge_domination" +4: "test_multiple_predecessors_no_edge_domination" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors_no_edge_domination" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors_no_edge_domination" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test_multiple_predecessors_no_edge_domination" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_multiple_predecessors_no_edge_domination" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch" +4: "test_switch" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_direct_edge" +4: "test_switch_direct_edge" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_direct_edge" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_direct_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_duplicate_direct_edge" +4: "test_switch_duplicate_direct_edge" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_duplicate_direct_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_subset" +4: "test_switch_subset" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_subset" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_subset" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_wrong_value" +4: "test_switch_wrong_value" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_wrong_value" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_inverted" +4: "test_switch_inverted" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_inverted" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_inverted" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_inverted" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_duplicate_edge" +4: "test_switch_duplicate_edge" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_duplicate_edge" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_duplicate_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_default_edge" +4: "test_switch_default_edge" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_default_edge" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_default_edge" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_default_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_default_edge_direct" +4: "test_switch_default_edge_direct" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_default_edge_direct" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_default_edge_direct" has unsupported operation: builtin.unregistered: llvm.br + +1: "test_switch_default_edge_duplicate" +4: "test_switch_default_edge_duplicate" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_switch_default_edge_duplicate" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_default_edge_duplicate" has unsupported operation: builtin.unregistered: llvm.br + +4: "test_switch_default_edge_duplicate" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-demanded-bits-pointer.txt b/SSA/Projects/InstCombine/tests/logs/simplify-demanded-bits-pointer.txt new file mode 100644 index 000000000..d5663d388 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-demanded-bits-pointer.txt @@ -0,0 +1,37 @@ +1: "cse_insn" +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "cse_insn" has unsupported operation: builtin.unregistered: llvm.unreachable + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-demanded-fpclass.txt b/SSA/Projects/InstCombine/tests/logs/simplify-demanded-fpclass.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-erased.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-erased.txt new file mode 100644 index 000000000..fcc25fb98 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-erased.txt @@ -0,0 +1,8 @@ +1: "pow_exp" +4: "pow_exp" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "pow_exp" has unsupported operation: builtin.unregistered: llvm.intr.exp + +1: "exp" +5: "exp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt new file mode 100644 index 000000000..67ad0d883 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-i16.txt @@ -0,0 +1,168 @@ +1: "sprintf" +5: "sprintf" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.getelementptr + +4: "test1" has unsupported operation: llvm.call + +1: "strchr" +5: "strchr" is empty + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.getelementptr + +4: "test2" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.getelementptr + +4: "test3" has unsupported operation: llvm.call + +1: "memcmp" +5: "memcmp" is empty + +1: "PR2341" +4: "PR2341" has unsupported operation: llvm.mlir.addressof + +4: "PR2341" has unsupported operation: llvm.load + +4: "PR2341" has unsupported operation: llvm.call + +4: "PR2341" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR4284" +4: "PR4284" has unsupported operation: llvm.alloca + +4: "PR4284" has unsupported operation: llvm.alloca + +4: "PR4284" has unsupported operation: llvm.store + +4: "PR4284" has unsupported operation: llvm.store + +4: "PR4284" has unsupported operation: llvm.call + +1: "PR4641" +4: "PR4641" has unsupported operation: llvm.mlir.addressof + +4: "PR4641" has unsupported operation: llvm.mlir.addressof + +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 + +1: "fopen" +5: "fopen" is empty + +1: "exit" +5: "exit" is empty + +1: "PR4645" +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR4645" has unsupported operation: llvm.call + +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "MemCpy" +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.alloca + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +1: "strcmp" +5: "strcmp" is empty + +1: "test9" +4: "test9" has unsupported operation: llvm.call + +4: "test9" has unsupported operation: llvm.return + +1: "isdigit" +5: "isdigit" is empty + +1: "isascii" +5: "isascii" is empty + +1: "toascii" +5: "toascii" is empty + +1: "fake_isdigit" +4: "fake_isdigit" has unsupported operation: llvm.call + +1: "fake_isascii" +4: "fake_isascii" has unsupported operation: llvm.call + +1: "fake_toascii" +4: "fake_toascii" has unsupported operation: llvm.call + +1: "pow" +5: "pow" is empty + +1: "exp2" +5: "exp2" is empty + +1: "fake_exp2" +4: "fake_exp2" has unsupported operation: llvm.call + +1: "fake_ldexp" +4: "fake_ldexp" has unsupported operation: llvm.call + +1: "fake_ldexp_16" +4: "fake_ldexp_16" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fake_ldexp_16" has unsupported operation: llvm.call + +1: "snprintf" +5: "snprintf" is empty + +1: "fake_snprintf" +4: "fake_snprintf" has unsupported operation: llvm.call + +1: "strlen" +4: "strlen" has unsupported operation: llvm.call + +1: "__stpncpy_chk" +5: "__stpncpy_chk" is empty + +1: "emit_stpncpy" +4: "emit_stpncpy" has unsupported operation: llvm.mlir.addressof + +4: "emit_stpncpy" has unsupported operation: llvm.mlir.addressof + +4: "emit_stpncpy" has unsupported operation: llvm.call + +1: "ldexp" +5: "ldexp" is empty + +1: "stpncpy" +5: "stpncpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-inreg.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-inreg.txt new file mode 100644 index 000000000..da9350982 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-inreg.txt @@ -0,0 +1,53 @@ +1: "foo" +5: "foo" is empty + +1: "memcmp" +5: "memcmp" is empty + +1: "printf" +5: "printf" is empty + +1: "exp2" +5: "exp2" is empty + +1: "__sprintf_chk" +5: "__sprintf_chk" is empty + +1: "baz" +4: "baz" has unsupported operation: llvm.call + +4: "baz" has unsupported operation: llvm.call + +4: "baz" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "baz" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_fewer_params_than_num_register_parameters" +4: "test_fewer_params_than_num_register_parameters" has unsupported operation: llvm.call + +4: "test_fewer_params_than_num_register_parameters" has unsupported operation: llvm.return + +1: "test_non_int_params" +4: "test_non_int_params" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_non_int_params" has unsupported operation: llvm.call + +1: "test_variadic" +4: "test_variadic" has unsupported operation: llvm.mlir.addressof + +4: "test_variadic" has unsupported operation: llvm.mlir.addressof + +4: "test_variadic" has unsupported operation: llvm.call + +1: "bcmp" +5: "bcmp" is empty + +1: "putchar" +5: "putchar" is empty + +1: "ldexp" +5: "ldexp" is empty + +1: "sprintf" +5: "sprintf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-new.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-new.txt new file mode 100644 index 000000000..de9b842ff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls-new.txt @@ -0,0 +1,2 @@ +3: simplify-libcalls-new.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt new file mode 100644 index 000000000..033900085 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/simplify-libcalls.txt @@ -0,0 +1,159 @@ +1: "sprintf" +5: "sprintf" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.getelementptr + +1: "strchr" +5: "strchr" is empty + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.getelementptr + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.zero + +1: "memcmp" +5: "memcmp" is empty + +1: "PR2341" +4: "PR2341" has unsupported operation: llvm.mlir.addressof + +4: "PR2341" has unsupported operation: llvm.load + +4: "PR2341" has unsupported operation: llvm.call + +4: "PR2341" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "PR4284" +4: "PR4284" has unsupported operation after optimization: llvm.alloca + +4: "PR4284" has unsupported operation after optimization: llvm.alloca + +4: "PR4284" has unsupported operation after optimization: llvm.store + +4: "PR4284" has unsupported operation after optimization: llvm.store + +4: "PR4284" has unsupported operation after optimization: llvm.call + +1: "PR4641" +4: "PR4641" has unsupported operation: llvm.mlir.addressof + +4: "PR4641" has unsupported operation: llvm.mlir.addressof + +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 + +1: "fopen" +5: "fopen" is empty + +1: "exit" +5: "exit" is empty + +1: "PR4645" +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR4645" has unsupported operation: llvm.call + +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.br + +4: "PR4645" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "MemCpy" +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.mlir.addressof + +4: "MemCpy" has unsupported operation after optimization: llvm.alloca + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +4: "MemCpy" has unsupported operation after optimization: builtin.unregistered: llvm.intr.memcpy + +1: "strcmp" +5: "strcmp" is empty + +1: "test9" +4: "test9" has unsupported operation: llvm.return + +1: "isdigit" +5: "isdigit" is empty + +1: "isascii" +5: "isascii" is empty + +1: "toascii" +5: "toascii" is empty + +1: "fake_isdigit" +4: "fake_isdigit" has unsupported operation: llvm.call + +1: "fake_isascii" +4: "fake_isascii" has unsupported operation: llvm.call + +1: "fake_toascii" +4: "fake_toascii" has unsupported operation: llvm.call + +1: "pow" +5: "pow" is empty + +1: "exp2" +5: "exp2" is empty + +1: "fake_exp2" +4: "fake_exp2" has unsupported operation: llvm.call + +1: "fake_ldexp" +4: "fake_ldexp" has unsupported operation: llvm.call + +1: "fake_ldexp_16" +4: "fake_ldexp_16" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fake_ldexp_16" has unsupported operation: llvm.call + +1: "snprintf" +5: "snprintf" is empty + +1: "fake_snprintf" +4: "fake_snprintf" has unsupported operation: llvm.call + +1: "strlen" +4: "strlen" has unsupported operation: llvm.call + +1: "__stpncpy_chk" +5: "__stpncpy_chk" is empty + +1: "emit_stpncpy" +4: "emit_stpncpy" has unsupported operation: llvm.mlir.addressof + +4: "emit_stpncpy" has unsupported operation: llvm.mlir.addressof + +4: "emit_stpncpy" has unsupported operation: llvm.call + +1: "strcpy" +5: "strcpy" is empty + +1: "ldexp" +5: "ldexp" is empty + +1: "stpncpy" +5: "stpncpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sincospi.txt b/SSA/Projects/InstCombine/tests/logs/sincospi.txt new file mode 100644 index 000000000..333d7f8a0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sincospi.txt @@ -0,0 +1,75 @@ +1: "__sinpif" +5: "__sinpif" is empty + +1: "__cospif" +5: "__cospif" is empty + +1: "__sinpi" +5: "__sinpi" is empty + +1: "__cospi" +5: "__cospi" is empty + +1: "test_instbased_f32" +4: "test_instbased_f32" has unsupported operation: llvm.mlir.addressof + +4: "test_instbased_f32" has unsupported operation: llvm.load + +4: "test_instbased_f32" has unsupported operation: llvm.call + +4: "test_instbased_f32" has unsupported operation: llvm.call + +4: "test_instbased_f32" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_instbased_f32_other_user" +4: "test_instbased_f32_other_user" has unsupported operation: llvm.mlir.addressof + +4: "test_instbased_f32_other_user" has unsupported operation: llvm.load + +4: "test_instbased_f32_other_user" has unsupported operation: llvm.store + +4: "test_instbased_f32_other_user" has unsupported operation: llvm.call + +4: "test_instbased_f32_other_user" has unsupported operation: llvm.call + +4: "test_instbased_f32_other_user" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_constant_f32" +4: "test_constant_f32" has unsupported operation: llvm.call + +4: "test_constant_f32" has unsupported operation: llvm.call + +4: "test_constant_f32" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_instbased_f64" +4: "test_instbased_f64" has unsupported operation: llvm.mlir.addressof + +4: "test_instbased_f64" has unsupported operation: llvm.load + +4: "test_instbased_f64" has unsupported operation: llvm.call + +4: "test_instbased_f64" has unsupported operation: llvm.call + +4: "test_instbased_f64" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_constant_f64" +4: "test_constant_f64" has unsupported operation: llvm.call + +4: "test_constant_f64" has unsupported operation: llvm.call + +4: "test_constant_f64" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_fptr" +4: "test_fptr" has unsupported operation: llvm.call + +4: "test_fptr" has unsupported operation: llvm.call + +4: "test_fptr" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test_cospif_used_in_branch_cond" +4: "test_cospif_used_in_branch_cond" has unsupported operation: llvm.call + +4: "test_cospif_used_in_branch_cond" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test_cospif_used_in_branch_cond" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/sink-alloca.txt b/SSA/Projects/InstCombine/tests/logs/sink-alloca.txt new file mode 100644 index 000000000..66bae3e83 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-alloca.txt @@ -0,0 +1,31 @@ +1: "cond" +5: "cond" is empty + +1: "use_and_return" +5: "use_and_return" is empty + +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.stackrestore + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/sink-instruction-introduces-unnecessary-poison-value.txt b/SSA/Projects/InstCombine/tests/logs/sink-instruction-introduces-unnecessary-poison-value.txt new file mode 100644 index 000000000..c4f04564b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-instruction-introduces-unnecessary-poison-value.txt @@ -0,0 +1,29 @@ +1: "?test@@YAHXZ" +4: "?test@@YAHXZ" has unsupported operation: llvm.mlir.addressof + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "?test@@YAHXZ" has unsupported operation: llvm.mlir.addressof + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "?test@@YAHXZ" has unsupported operation: llvm.load + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.switch + +4: "?test@@YAHXZ" has unsupported operation: llvm.load + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.br + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.br + +4: "?test@@YAHXZ" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + diff --git a/SSA/Projects/InstCombine/tests/logs/sink-into-catchswitch.txt b/SSA/Projects/InstCombine/tests/logs/sink-into-catchswitch.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sink-into-ncd.txt b/SSA/Projects/InstCombine/tests/logs/sink-into-ncd.txt new file mode 100644 index 000000000..fa84c0e3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-into-ncd.txt @@ -0,0 +1,45 @@ +1: "use" +5: "use" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: llvm.call + +4: "test1" has unsupported operation: builtin.unregistered: llvm.br + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.zero + +4: "test2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: llvm.call + +4: "test2" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/sink-into-resume-block.txt b/SSA/Projects/InstCombine/tests/logs/sink-into-resume-block.txt new file mode 100644 index 000000000..52ab68e7d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-into-resume-block.txt @@ -0,0 +1,41 @@ +1: "t0_noop" +4: "t0_noop" has unsupported operation: llvm.call + +4: "t0_noop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "t0_noop" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "t0_noop" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "t0_noop" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "t0_noop" has unsupported operation: llvm.call + +4: "t0_noop" has unsupported operation: llvm.call + +4: "t0_noop" has unsupported operation: builtin.unregistered: llvm.resume + +4: "t0_noop" has unsupported operation: llvm.call + +4: "t0_noop" has unsupported operation: llvm.call + +4: "t0_noop" has unsupported operation: llvm.return + +1: "cond" +5: "cond" is empty + +1: "sideeffect" +5: "sideeffect" is empty + +1: "simple_throw" +5: "simple_throw" is empty + +1: "destructor" +5: "destructor" is empty + +1: "consume" +5: "consume" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt b/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt new file mode 100644 index 000000000..6188a8e9c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-and.txt @@ -0,0 +1,79 @@ +1: "use1" +5: "use1" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +7: "n3" is unchanged by InstCombine + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: llvm.call + +1: "n5" +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5" has unsupported operation: llvm.call + +1: "n6" +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: llvm.call + +4: "n6" has unsupported operation: llvm.call + +1: "t7" +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7" has unsupported operation: llvm.call + +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8" has unsupported operation: llvm.call + +1: "t9" +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9" has unsupported operation: llvm.call + +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9" has unsupported operation: llvm.call + +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: llvm.call + +1: "t11" +4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..ed37621ba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-and.txt @@ -0,0 +1,48 @@ +1: "use1" +5: "use1" is empty + +1: "use8" +5: "use8" is empty + +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 + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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 + +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 new file mode 100644 index 000000000..fb3d8bfff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-and.txt @@ -0,0 +1,78 @@ +1: "use1" +5: "use1" is empty + +1: "use8" +5: "use8" is empty + +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 + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..fb3d8bfff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-logical-or.txt @@ -0,0 +1,78 @@ +1: "use1" +5: "use1" is empty + +1: "use8" +5: "use8" is empty + +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 + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t1_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..ed37621ba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-another-hand-of-or.txt @@ -0,0 +1,48 @@ +1: "use1" +5: "use1" is empty + +1: "use8" +5: "use8" is empty + +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 + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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 + +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 new file mode 100644 index 000000000..8d787f153 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-and.txt @@ -0,0 +1,108 @@ +1: "use1" +5: "use1" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: llvm.call + +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 + +4: "t7" has unsupported operation: llvm.call + +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 + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t9" has unsupported operation: llvm.call + +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "PR59704" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "PR59704" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR59704" has unsupported operation: builtin.unregistered: llvm.br + 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 new file mode 100644 index 000000000..8e7854f64 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-logical-or.txt @@ -0,0 +1,101 @@ +1: "use1" +5: "use1" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: llvm.call + +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 + +4: "t7" has unsupported operation: llvm.call + +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 + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "t9" has unsupported operation: llvm.call + +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp + +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 new file mode 100644 index 000000000..6188a8e9c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink-not-into-or.txt @@ -0,0 +1,79 @@ +1: "use1" +5: "use1" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n1" +4: "n1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n2" +4: "n2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n3" +7: "n3" is unchanged by InstCombine + +1: "n4" +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n4" has unsupported operation: llvm.call + +1: "n5" +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5" has unsupported operation: llvm.call + +1: "n6" +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n6" has unsupported operation: llvm.call + +4: "n6" has unsupported operation: llvm.call + +1: "t7" +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t7" has unsupported operation: llvm.call + +4: "t7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t8" +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t8" has unsupported operation: llvm.call + +1: "t9" +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9" has unsupported operation: llvm.call + +4: "t9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t9" has unsupported operation: llvm.call + +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: llvm.call + +1: "t11" +4: "t11" has unsupported operation: builtin.unregistered: llvm.icmp + +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_instruction.txt b/SSA/Projects/InstCombine/tests/logs/sink_instruction.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sink_sideeffecting_instruction.txt b/SSA/Projects/InstCombine/tests/logs/sink_sideeffecting_instruction.txt new file mode 100644 index 000000000..d2b362b91 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sink_sideeffecting_instruction.txt @@ -0,0 +1,183 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: llvm.call + +1: "baz" +5: "baz" is empty + +1: "test" +4: "test" has unsupported operation: llvm.alloca + +4: "test" has unsupported operation: llvm.alloca + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.call + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +1: "unknown" +5: "unknown" is empty + +1: "unknown.as2" +5: "unknown.as2" is empty + +1: "sink_write_to_use" +4: "sink_write_to_use" has unsupported operation: llvm.alloca + +4: "sink_write_to_use" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_write_to_use" has unsupported operation: llvm.call + +1: "sink_readwrite_to_use" +4: "sink_readwrite_to_use" has unsupported operation: llvm.alloca + +4: "sink_readwrite_to_use" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_readwrite_to_use" has unsupported operation: llvm.call + +1: "sink_bitcast" +4: "sink_bitcast" has unsupported operation: llvm.alloca + +4: "sink_bitcast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_bitcast" has unsupported operation: llvm.call + +1: "sink_gep1" +4: "sink_gep1" has unsupported operation: llvm.alloca + +4: "sink_gep1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_gep1" has unsupported operation: llvm.getelementptr + +4: "sink_gep1" has unsupported operation: llvm.call + +1: "sink_gep2" +4: "sink_gep2" has unsupported operation: llvm.alloca + +4: "sink_gep2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_gep2" has unsupported operation: llvm.call + +1: "sink_addrspacecast" +4: "sink_addrspacecast" has unsupported operation: llvm.alloca + +4: "sink_addrspacecast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_addrspacecast" has unsupported operation: builtin.unregistered: llvm.addrspacecast + +4: "sink_addrspacecast" has unsupported operation: llvm.call + +1: "neg_infinite_loop" +4: "neg_infinite_loop" has unsupported operation: llvm.alloca + +4: "neg_infinite_loop" has unsupported operation: llvm.call + +4: "neg_infinite_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "neg_throw" +4: "neg_throw" has unsupported operation: llvm.alloca + +4: "neg_throw" has unsupported operation: llvm.call + +4: "neg_throw" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "neg_unknown_write" +4: "neg_unknown_write" has unsupported operation: llvm.alloca + +4: "neg_unknown_write" has unsupported operation: llvm.call + +4: "neg_unknown_write" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sink_lifetime1" +4: "sink_lifetime1" has unsupported operation: llvm.alloca + +4: "sink_lifetime1" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "sink_lifetime1" has unsupported operation: llvm.call + +4: "sink_lifetime1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_lifetime1" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +1: "sink_lifetime2" +4: "sink_lifetime2" has unsupported operation: llvm.alloca + +4: "sink_lifetime2" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "sink_lifetime2" has unsupported operation: llvm.call + +4: "sink_lifetime2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_lifetime2" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "sink_lifetime2" has unsupported operation: builtin.unregistered: llvm.br + +1: "sink_lifetime3" +4: "sink_lifetime3" has unsupported operation: llvm.alloca + +4: "sink_lifetime3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_lifetime3" has unsupported operation: llvm.call + +1: "sink_lifetime4a" +4: "sink_lifetime4a" has unsupported operation: llvm.alloca + +4: "sink_lifetime4a" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "sink_lifetime4a" has unsupported operation: llvm.call + +4: "sink_lifetime4a" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "sink_lifetime4a" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sink_lifetime4b" +4: "sink_lifetime4b" has unsupported operation: llvm.alloca + +4: "sink_lifetime4b" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.start + +4: "sink_lifetime4b" has unsupported operation: llvm.call + +4: "sink_lifetime4b" has unsupported operation: builtin.unregistered: llvm.intr.lifetime.end + +4: "sink_lifetime4b" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "sink_atomicrmw_to_use" +4: "sink_atomicrmw_to_use" has unsupported operation: llvm.alloca + +4: "sink_atomicrmw_to_use" has unsupported operation: llvm.store + +4: "sink_atomicrmw_to_use" has unsupported operation: builtin.unregistered: llvm.atomicrmw + +4: "sink_atomicrmw_to_use" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "bar" +5: "bar" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sink_to_unreachable.txt b/SSA/Projects/InstCombine/tests/logs/sink_to_unreachable.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/sitofp.txt b/SSA/Projects/InstCombine/tests/logs/sitofp.txt new file mode 100644 index 000000000..740508ed1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sitofp.txt @@ -0,0 +1,156 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test1" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test2" +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test2" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test3" +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test3" has unsupported operation after optimization: builtin.unregistered: llvm.fcmp + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "test6" +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.fadd + +4: "test6" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + +1: "test7" +4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.sitofp + +4: "test7" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "test8" +4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "test8" has unsupported operation after optimization: builtin.unregistered: llvm.fptosi + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "test13" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "test14" +4: "test14" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test15" +4: "test15" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test16" +4: "test16" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test17" +4: "test17" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test17" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "test18" +4: "test18" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test18" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "test19" +4: "test19" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test19" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "masked_input" +4: "masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "max_masked_input" +4: "max_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "max_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "consider_lowbits_masked_input" +4: "consider_lowbits_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "consider_lowbits_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "overflow_masked_input" +4: "overflow_masked_input" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "overflow_masked_input" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "low_masked_input" +4: "low_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.uitofp + +4: "low_masked_input" has unsupported operation after optimization: builtin.unregistered: llvm.fptoui + +1: "s32_half_s11" +4: "s32_half_s11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "s32_half_u11" +4: "s32_half_u11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "u32_half_s11" +4: "u32_half_s11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "u32_half_u11" +4: "u32_half_u11" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "s32_half_s12" +4: "s32_half_s12" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "s32_half_s12" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "s32_half_u12" +4: "s32_half_u12" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "s32_half_u12" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "u32_half_s12" +4: "u32_half_s12" has unsupported operation: builtin.unregistered: llvm.uitofp + +4: "u32_half_s12" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "u32_half_u12" +4: "u32_half_u12" has unsupported operation: builtin.unregistered: llvm.uitofp + +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 + +1: "i8_vec_sitofp_test2" +"i8_vec_sitofp_test2" contains vectors which are unsupported + +1: "i8_vec_sitofp_test3" +"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/skip-opt-void-to-non-void-conversion.txt b/SSA/Projects/InstCombine/tests/logs/skip-opt-void-to-non-void-conversion.txt new file mode 100644 index 000000000..a7fcc6542 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/skip-opt-void-to-non-void-conversion.txt @@ -0,0 +1,13 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.return + +1: "bar" +4: "bar" has unsupported operation: llvm.mlir.addressof + +4: "bar" has unsupported operation: llvm.call + +1: "goo" +4: "goo" has unsupported operation: llvm.call + +4: "goo" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/smax-icmp.txt b/SSA/Projects/InstCombine/tests/logs/smax-icmp.txt new file mode 100644 index 000000000..0066dc592 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/smax-icmp.txt @@ -0,0 +1,534 @@ +1: "eq_smax1" +4: "eq_smax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smax2" +4: "eq_smax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smax3" +4: "eq_smax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smax4" +4: "eq_smax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_smax1" +4: "sle_smax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_smax2" +4: "sle_smax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_smax3" +4: "sle_smax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sle_smax4" +4: "sle_smax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smax1" +4: "ne_smax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smax2" +4: "ne_smax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smax3" +4: "ne_smax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smax4" +4: "ne_smax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_smax1" +4: "sgt_smax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_smax2" +4: "sgt_smax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_smax3" +4: "sgt_smax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_smax4" +4: "sgt_smax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "eq_smax_contextual" +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual" has unsupported operation: llvm.call + +4: "eq_smax_contextual" has unsupported operation: llvm.return + +4: "eq_smax_contextual" has unsupported operation: llvm.return + +1: "eq_smax_contextual_commuted" +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.return + +4: "eq_smax_contextual_commuted" has unsupported operation: llvm.return + +1: "slt_smax_contextual" +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual" has unsupported operation: llvm.call + +4: "slt_smax_contextual" has unsupported operation: llvm.return + +4: "slt_smax_contextual" has unsupported operation: llvm.return + +1: "slt_smax_contextual_commuted" +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.return + +4: "slt_smax_contextual_commuted" has unsupported operation: llvm.return + +1: "sle_smax_contextual" +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual" has unsupported operation: llvm.call + +4: "sle_smax_contextual" has unsupported operation: llvm.return + +4: "sle_smax_contextual" has unsupported operation: llvm.return + +1: "sle_smax_contextual_commuted" +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.return + +4: "sle_smax_contextual_commuted" has unsupported operation: llvm.return + +1: "sgt_smax_contextual" +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.call + +4: "sgt_smax_contextual" has unsupported operation: llvm.return + +4: "sgt_smax_contextual" has unsupported operation: llvm.return + +1: "sgt_smax_contextual_commuted" +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.return + +4: "sgt_smax_contextual_commuted" has unsupported operation: llvm.return + +1: "sge_smax_contextual" +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual" has unsupported operation: llvm.call + +4: "sge_smax_contextual" has unsupported operation: llvm.return + +4: "sge_smax_contextual" has unsupported operation: llvm.return + +1: "sge_smax_contextual_commuted" +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.return + +4: "sge_smax_contextual_commuted" has unsupported operation: llvm.return + +1: "test_smax_ugt" +4: "test_smax_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_smax_ugt_neg1" +4: "test_smax_ugt_neg1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smax + +4: "test_smax_ugt_neg1" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_smax_ugt_neg2" +4: "test_smax_ugt_neg2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test_smax_ugt_neg2" 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 new file mode 100644 index 000000000..be5aea2be --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/smin-icmp.txt @@ -0,0 +1,890 @@ +1: "eq_smin1" +4: "eq_smin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smin2" +4: "eq_smin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smin3" +4: "eq_smin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smin4" +4: "eq_smin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_smin1" +4: "sge_smin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_smin2" +4: "sge_smin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_smin3" +4: "sge_smin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sge_smin4" +4: "sge_smin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smin1" +4: "ne_smin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smin2" +4: "ne_smin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smin3" +4: "ne_smin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_smin4" +4: "ne_smin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_smin1" +4: "slt_smin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_smin2" +4: "slt_smin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_smin3" +4: "slt_smin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_smin4" +4: "slt_smin4" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +5: "use" is empty + +1: "eq_smin_contextual" +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual" has unsupported operation: llvm.call + +4: "eq_smin_contextual" has unsupported operation: llvm.return + +4: "eq_smin_contextual" has unsupported operation: llvm.return + +1: "eq_smin_contextual_commuted" +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.return + +4: "eq_smin_contextual_commuted" has unsupported operation: llvm.return + +1: "slt_smin_contextual" +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.call + +4: "slt_smin_contextual" has unsupported operation: llvm.return + +4: "slt_smin_contextual" has unsupported operation: llvm.return + +1: "slt_smin_contextual_commuted" +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.return + +4: "slt_smin_contextual_commuted" has unsupported operation: llvm.return + +1: "sle_smin_contextual" +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual" has unsupported operation: llvm.call + +4: "sle_smin_contextual" has unsupported operation: llvm.return + +4: "sle_smin_contextual" has unsupported operation: llvm.return + +1: "sle_smin_contextual_commuted" +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.return + +4: "sle_smin_contextual_commuted" has unsupported operation: llvm.return + +1: "sgt_smin_contextual" +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual" has unsupported operation: llvm.call + +4: "sgt_smin_contextual" has unsupported operation: llvm.return + +4: "sgt_smin_contextual" has unsupported operation: llvm.return + +1: "sgt_smin_contextual_commuted" +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.return + +4: "sgt_smin_contextual_commuted" has unsupported operation: llvm.return + +1: "sge_smin_contextual" +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual" has unsupported operation: llvm.call + +4: "sge_smin_contextual" has unsupported operation: llvm.return + +4: "sge_smin_contextual" has unsupported operation: llvm.return + +1: "sge_smin_contextual_commuted" +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.call + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.return + +4: "sge_smin_contextual_commuted" has unsupported operation: llvm.return + +1: "use_v2i1" +5: "use_v2i1" is empty + +1: "eq_smin_v2i32" +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32" has unsupported operation: llvm.call + +4: "eq_smin_v2i32" has unsupported operation: llvm.return + +1: "eq_smin_v2i32_constant" +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "eq_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "slt_smin_v2i32_constant" +4: "slt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "slt_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "sle_smin_v2i32_constant" +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sle_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "sgt_smin_v2i32_constant" +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sgt_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "sge_smin_v2i32_constant" +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "sge_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "unknown_smin_v2i32_constant" +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.call + +4: "unknown_smin_v2i32_constant" has unsupported operation: llvm.return + +1: "smin_or_bitwise" +4: "smin_or_bitwise" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_or_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "smin_and_bitwise" +4: "smin_and_bitwise" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smin_and_bitwise" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_smin_nofold" +4: "eq_smin_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_smin_nofold" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "eq_smin_nofold" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "eq_smin_nofold" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/smulo.txt b/SSA/Projects/InstCombine/tests/logs/smulo.txt new file mode 100644 index 000000000..7e164c12b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/smulo.txt @@ -0,0 +1,65 @@ +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "test_generic" has unsupported operation: llvm.extractvalue + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "test_constant1" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i1_res" +4: "i1_res" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "i1_res" has unsupported operation after optimization: llvm.extractvalue + +1: "v2i1_res" +"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 + +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 + +1: "i1_ov" +4: "i1_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "i1_ov" has unsupported operation after optimization: llvm.extractvalue + +1: "v2i1_ov" +"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 + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/snprintf-2.txt b/SSA/Projects/InstCombine/tests/logs/snprintf-2.txt new file mode 100644 index 000000000..2cc401ee6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/snprintf-2.txt @@ -0,0 +1,103 @@ +1: "snprintf" +5: "snprintf" is empty + +1: "fold_snprintf_fmt" +4: "fold_snprintf_fmt" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.load + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.store + +4: "fold_snprintf_fmt" has unsupported operation: llvm.return + +1: "call_snprintf_fmt_ximax" +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_fmt_ximax" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/snprintf-3.txt b/SSA/Projects/InstCombine/tests/logs/snprintf-3.txt new file mode 100644 index 000000000..f4937a6cb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/snprintf-3.txt @@ -0,0 +1,105 @@ +1: "snprintf" +5: "snprintf" is empty + +1: "fold_snprintf_pcnt_s" +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_s" has unsupported operation: llvm.return + +1: "call_snprintf_pcnt_s_ximax" +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_pcnt_s_ximax" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/snprintf-4.txt b/SSA/Projects/InstCombine/tests/logs/snprintf-4.txt new file mode 100644 index 000000000..3ea4d0d0f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/snprintf-4.txt @@ -0,0 +1,121 @@ +1: "snprintf" +5: "snprintf" is empty + +1: "fold_snprintf_pcnt_c" +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.load + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.store + +4: "fold_snprintf_pcnt_c" has unsupported operation: llvm.return + +1: "call_snprintf_pcnt_c_ximax" +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.mlir.addressof + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.getelementptr + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.load + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.call + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.store + +4: "call_snprintf_pcnt_c_ximax" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/snprintf.txt b/SSA/Projects/InstCombine/tests/logs/snprintf.txt new file mode 100644 index 000000000..bbcbaf49a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/snprintf.txt @@ -0,0 +1,97 @@ +1: "snprintf" +5: "snprintf" is empty + +1: "test_not_const_fmt" +4: "test_not_const_fmt" has unsupported operation: llvm.call + +4: "test_not_const_fmt" has unsupported operation: llvm.return + +1: "test_not_const_fmt_zero_size_return_value" +4: "test_not_const_fmt_zero_size_return_value" has unsupported operation: llvm.call + +4: "test_not_const_fmt_zero_size_return_value" has unsupported operation: llvm.return + +1: "test_not_const_size" +4: "test_not_const_size" has unsupported operation: llvm.mlir.addressof + +4: "test_not_const_size" has unsupported operation: llvm.call + +4: "test_not_const_size" has unsupported operation: llvm.return + +1: "test_return_value" +4: "test_return_value" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_return_value" has unsupported operation after optimization: llvm.call + +1: "test_percentage" +4: "test_percentage" has unsupported operation: llvm.mlir.addressof + +4: "test_percentage" has unsupported operation: llvm.call + +4: "test_percentage" has unsupported operation: llvm.return + +1: "test_null_buf_return_value" +4: "test_null_buf_return_value" has unsupported operation after optimization: llvm.mlir.zero + +4: "test_null_buf_return_value" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_null_buf_return_value" has unsupported operation after optimization: llvm.call + +1: "test_percentage_return_value" +4: "test_percentage_return_value" has unsupported operation: llvm.mlir.zero + +4: "test_percentage_return_value" has unsupported operation: llvm.mlir.addressof + +4: "test_percentage_return_value" has unsupported operation: llvm.call + +1: "test_correct_copy" +4: "test_correct_copy" has unsupported operation: llvm.store + +4: "test_correct_copy" has unsupported operation: llvm.return + +1: "test_char_zero_size" +4: "test_char_zero_size" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_char_zero_size" has unsupported operation after optimization: llvm.call + +1: "test_char_small_size" +4: "test_char_small_size" has unsupported operation: llvm.store + +1: "test_char_ok_size" +4: "test_char_ok_size" has unsupported operation: llvm.store + +4: "test_char_ok_size" has unsupported operation: llvm.getelementptr + +4: "test_char_ok_size" has unsupported operation: llvm.store + +1: "test_str_zero_size" +4: "test_str_zero_size" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_str_zero_size" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_str_zero_size" has unsupported operation after optimization: llvm.call + +1: "test_str_small_size" +4: "test_str_small_size" has unsupported operation: llvm.store + +1: "test_str_ok_size" +4: "test_str_ok_size" has unsupported operation: llvm.store + +1: "test_str_ok_size_tail" +4: "test_str_ok_size_tail" has unsupported operation: llvm.store + +1: "test_str_ok_size_musttail" +4: "test_str_ok_size_musttail" has unsupported operation: llvm.mlir.addressof + +4: "test_str_ok_size_musttail" has unsupported operation: llvm.call + +1: "test_str_ok_size_tail2" +4: "test_str_ok_size_tail2" has unsupported operation: llvm.store + +1: "test_str_ok_size_musttail2" +4: "test_str_ok_size_musttail2" has unsupported operation: llvm.mlir.addressof + +4: "test_str_ok_size_musttail2" has unsupported operation: llvm.mlir.addressof + +4: "test_str_ok_size_musttail2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/sprintf-1.txt b/SSA/Projects/InstCombine/tests/logs/sprintf-1.txt new file mode 100644 index 000000000..f5edb3429 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sprintf-1.txt @@ -0,0 +1,85 @@ +1: "sprintf" +5: "sprintf" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.store + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.store + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.store + +4: "test_simplify4" has unsupported operation: llvm.getelementptr + +4: "test_simplify4" has unsupported operation: llvm.store + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.call + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.call + +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: llvm.call + +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.call + +4: "test_no_simplify2" has unsupported operation: llvm.return + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.call + +4: "test_no_simplify3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "test_no_simplify3" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "strcpy" +5: "strcpy" is empty + +1: "stpcpy" +5: "stpcpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sprintf-2.txt b/SSA/Projects/InstCombine/tests/logs/sprintf-2.txt new file mode 100644 index 000000000..7e27aa8ce --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sprintf-2.txt @@ -0,0 +1,2 @@ +3: sprintf-2.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/sprintf-3.txt b/SSA/Projects/InstCombine/tests/logs/sprintf-3.txt new file mode 100644 index 000000000..fd5cfb174 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sprintf-3.txt @@ -0,0 +1,15 @@ +1: "sprintf" +5: "sprintf" is empty + +1: "PR51200" +4: "PR51200" has unsupported operation: llvm.call + +4: "PR51200" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "PR51200" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "PR51200" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "stpcpy" +5: "stpcpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sprintf-void.txt b/SSA/Projects/InstCombine/tests/logs/sprintf-void.txt new file mode 100644 index 000000000..37cc9a4ba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sprintf-void.txt @@ -0,0 +1,10 @@ +1: "sprintf" +5: "sprintf" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/sqrt-nofast.txt b/SSA/Projects/InstCombine/tests/logs/sqrt-nofast.txt new file mode 100644 index 000000000..8ef2521d9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sqrt-nofast.txt @@ -0,0 +1,13 @@ +1: "mysqrt" +4: "mysqrt" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "mysqrt" has unsupported operation: builtin.unregistered: llvm.intr.sqrt + +1: "fake_sqrt" +4: "fake_sqrt" has unsupported operation: builtin.unregistered: llvm.fmul + +4: "fake_sqrt" has unsupported operation: llvm.call + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sqrt.txt b/SSA/Projects/InstCombine/tests/logs/sqrt.txt new file mode 100644 index 000000000..b9550108c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sqrt.txt @@ -0,0 +1,2 @@ +3: sqrt.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt b/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt new file mode 100644 index 000000000..3b9eb326a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/srem-canonicalize.txt @@ -0,0 +1,19 @@ +1: "test_srem_canonicalize_op0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.srem +2: llvm.return + +1: "test_srem_canonicalize_op1" +7: "test_srem_canonicalize_op1" is unchanged by InstCombine + +1: "test_srem_canonicalize_nonsw" +7: "test_srem_canonicalize_nonsw" is unchanged by InstCombine + +1: "test_srem_canonicalize_vec" +"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/srem-simplify-bug.txt b/SSA/Projects/InstCombine/tests/logs/srem-simplify-bug.txt new file mode 100644 index 000000000..4219a0824 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/srem-simplify-bug.txt @@ -0,0 +1,3 @@ +1: "f" +4: "f" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/srem-via-sdiv-mul-sub.txt b/SSA/Projects/InstCombine/tests/logs/srem-via-sdiv-mul-sub.txt new file mode 100644 index 000000000..98710f8b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/srem-via-sdiv-mul-sub.txt @@ -0,0 +1,31 @@ +1: "use8" +5: "use8" is empty + +1: "use2xi8" +5: "use2xi8" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +1: "t1_vector" +4: "t1_vector" has unsupported operation: llvm.call + +1: "t4_extrause" +4: "t4_extrause" has unsupported operation: llvm.call + +4: "t4_extrause" has unsupported operation: llvm.call + +1: "gen8" +5: "gen8" is empty + +1: "t5_commutative" +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: llvm.call + +1: "n6_different_x" +4: "n6_different_x" has unsupported operation: llvm.call + +1: "n6_different_y" +4: "n6_different_y" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/srem1.txt b/SSA/Projects/InstCombine/tests/logs/srem1.txt new file mode 100644 index 000000000..720d818c2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/srem1.txt @@ -0,0 +1,12 @@ +1: "func_56" +4: "func_56" has unsupported operation: llvm.mlir.addressof + +4: "func_56" has unsupported operation: llvm.mlir.undef + +4: "func_56" has unsupported operation: llvm.call + +4: "func_56" has unsupported operation: llvm.store + +1: "rshift_s_s" +5: "rshift_s_s" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/ssub-with-overflow.txt b/SSA/Projects/InstCombine/tests/logs/ssub-with-overflow.txt new file mode 100644 index 000000000..27c377fa2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ssub-with-overflow.txt @@ -0,0 +1,2 @@ +3: ssub-with-overflow.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/ssubo.txt b/SSA/Projects/InstCombine/tests/logs/ssubo.txt new file mode 100644 index 000000000..92e8930b1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/ssubo.txt @@ -0,0 +1,74 @@ +1: "use" +5: "use" is empty + +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "test_generic" has unsupported operation: llvm.extractvalue + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq0" +4: "sub_eq0" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "sub_eq0" has unsupported operation: llvm.extractvalue + +4: "sub_eq0" has unsupported operation: llvm.call + +4: "sub_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ne0" +4: "sub_ne0" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "sub_ne0" has unsupported operation: llvm.extractvalue + +4: "sub_ne0" has unsupported operation: llvm.call + +4: "sub_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq1" +4: "sub_eq1" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "sub_eq1" has unsupported operation: llvm.extractvalue + +4: "sub_eq1" has unsupported operation: llvm.call + +4: "sub_eq1" has unsupported operation: llvm.extractvalue + +4: "sub_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_sgt0" +4: "sub_sgt0" has unsupported operation: builtin.unregistered: llvm.intr.ssub.with.overflow + +4: "sub_sgt0" has unsupported operation: llvm.extractvalue + +4: "sub_sgt0" has unsupported operation: llvm.call + +4: "sub_sgt0" has unsupported operation: llvm.extractvalue + +4: "sub_sgt0" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/stack-overalign.txt b/SSA/Projects/InstCombine/tests/logs/stack-overalign.txt new file mode 100644 index 000000000..167032fab --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stack-overalign.txt @@ -0,0 +1,14 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: llvm.return + +1: "frob" +5: "frob" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/stacksave-debuginfo.txt b/SSA/Projects/InstCombine/tests/logs/stacksave-debuginfo.txt new file mode 100644 index 000000000..4d6357f54 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stacksave-debuginfo.txt @@ -0,0 +1,11 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation: llvm.alloca + +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + diff --git a/SSA/Projects/InstCombine/tests/logs/stacksaverestore.txt b/SSA/Projects/InstCombine/tests/logs/stacksaverestore.txt new file mode 100644 index 000000000..f396c74f4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stacksaverestore.txt @@ -0,0 +1,91 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test1" has unsupported operation: llvm.alloca + +1: "test2" +4: "test2" has unsupported operation: llvm.return + +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.getelementptr + +4: "foo" has unsupported operation: llvm.store + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +4: "foo" has unsupported operation: llvm.alloca + +4: "foo" has unsupported operation: llvm.call + +4: "foo" has unsupported operation: builtin.unregistered: llvm.intr.stackrestore + +4: "foo" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: llvm.return + +1: "bar" +5: "bar" is empty + +1: "inalloca_callee" +5: "inalloca_callee" is empty + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.stacksave + +4: "test3" has unsupported operation: llvm.alloca + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: llvm.call + +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.stackrestore + +4: "test3" has unsupported operation: llvm.store + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: llvm.return + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: llvm.load + +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/statepoint-cleanup.txt b/SSA/Projects/InstCombine/tests/logs/statepoint-cleanup.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/statepoint-iter.txt b/SSA/Projects/InstCombine/tests/logs/statepoint-iter.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/statepoint.txt b/SSA/Projects/InstCombine/tests/logs/statepoint.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/stdio-custom-dl.txt b/SSA/Projects/InstCombine/tests/logs/stdio-custom-dl.txt new file mode 100644 index 000000000..b9fb90df5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stdio-custom-dl.txt @@ -0,0 +1,22 @@ +1: "fputs_test_custom_dl" +4: "fputs_test_custom_dl" has unsupported operation: llvm.mlir.addressof + +4: "fputs_test_custom_dl" has unsupported operation: llvm.mlir.addressof + +4: "fputs_test_custom_dl" has unsupported operation: llvm.mlir.addressof + +4: "fputs_test_custom_dl" has unsupported operation: llvm.call + +4: "fputs_test_custom_dl" has unsupported operation: llvm.call + +4: "fputs_test_custom_dl" has unsupported operation: llvm.return + +1: "fopen" +5: "fopen" is empty + +1: "fputs" +5: "fputs" is empty + +1: "fwrite" +5: "fwrite" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/stdiocall-bad-sig.txt b/SSA/Projects/InstCombine/tests/logs/stdiocall-bad-sig.txt new file mode 100644 index 000000000..8dbec5907 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stdiocall-bad-sig.txt @@ -0,0 +1,45 @@ +1: "fwrite" +5: "fwrite" is empty + +1: "fputc" +5: "fputc" is empty + +1: "printf" +5: "printf" is empty + +1: "fprintf" +5: "fprintf" is empty + +1: "sprintf" +5: "sprintf" is empty + +1: "call_fwrite" +4: "call_fwrite" has unsupported operation: llvm.mlir.addressof + +4: "call_fwrite" has unsupported operation: llvm.call + +4: "call_fwrite" has unsupported operation: llvm.return + +1: "call_printf" +4: "call_printf" has unsupported operation: llvm.mlir.addressof + +4: "call_printf" has unsupported operation: llvm.mlir.addressof + +4: "call_printf" has unsupported operation: llvm.call + +4: "call_printf" has unsupported operation: llvm.return + +1: "call_fprintf" +4: "call_fprintf" has unsupported operation: llvm.mlir.addressof + +4: "call_fprintf" has unsupported operation: llvm.mlir.addressof + +4: "call_fprintf" has unsupported operation: llvm.call + +1: "call_sprintf" +4: "call_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "call_sprintf" has unsupported operation: llvm.mlir.addressof + +4: "call_sprintf" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/store-load-unaliased-gep.txt b/SSA/Projects/InstCombine/tests/logs/store-load-unaliased-gep.txt new file mode 100644 index 000000000..8f3037c07 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/store-load-unaliased-gep.txt @@ -0,0 +1,11 @@ +1: "test1" +4: "test1" has unsupported operation after optimization: llvm.alloca + +4: "test1" has unsupported operation after optimization: llvm.getelementptr + +4: "test1" has unsupported operation after optimization: llvm.store + +4: "test1" has unsupported operation after optimization: llvm.store + +4: "test1" has unsupported operation after optimization: llvm.load + diff --git a/SSA/Projects/InstCombine/tests/logs/store.txt b/SSA/Projects/InstCombine/tests/logs/store.txt new file mode 100644 index 000000000..de7216322 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/store.txt @@ -0,0 +1,160 @@ +1: "store_of_undef" +4: "store_of_undef" has unsupported operation: llvm.return + +1: "store_of_poison" +4: "store_of_poison" has unsupported operation: llvm.return + +1: "store_into_undef" +4: "store_into_undef" has unsupported operation: llvm.mlir.undef + +4: "store_into_undef" has unsupported operation: llvm.store + +4: "store_into_undef" has unsupported operation: llvm.return + +1: "store_into_null" +4: "store_into_null" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "store_into_null" has unsupported operation: llvm.mlir.zero + +4: "store_into_null" has unsupported operation: llvm.store + +4: "store_into_null" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.return + +1: "store_at_gep_off_null_inbounds" +4: "store_at_gep_off_null_inbounds" has unsupported operation: llvm.mlir.zero + +4: "store_at_gep_off_null_inbounds" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "store_at_gep_off_null_inbounds" has unsupported operation: llvm.getelementptr + +4: "store_at_gep_off_null_inbounds" has unsupported operation: llvm.store + +4: "store_at_gep_off_null_inbounds" has unsupported operation: llvm.return + +1: "store_at_gep_off_null_not_inbounds" +4: "store_at_gep_off_null_not_inbounds" has unsupported operation: llvm.mlir.zero + +4: "store_at_gep_off_null_not_inbounds" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "store_at_gep_off_null_not_inbounds" has unsupported operation: llvm.getelementptr + +4: "store_at_gep_off_null_not_inbounds" has unsupported operation: llvm.store + +4: "store_at_gep_off_null_not_inbounds" has unsupported operation: llvm.return + +1: "store_at_gep_off_no_null_opt" +4: "store_at_gep_off_no_null_opt" has unsupported operation: llvm.mlir.zero + +4: "store_at_gep_off_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "store_at_gep_off_no_null_opt" has unsupported operation: llvm.store + +4: "store_at_gep_off_no_null_opt" has unsupported operation: llvm.return + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.br + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.br + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.br + +4: "test5" has unsupported operation: llvm.store + +4: "test5" has unsupported operation: llvm.return + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: llvm.store + +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test6" has unsupported operation: llvm.getelementptr + +4: "test6" has unsupported operation: llvm.store + +4: "test6" has unsupported operation: llvm.load + +4: "test6" has unsupported operation: builtin.unregistered: llvm.br + +4: "test6" has unsupported operation: llvm.return + +1: "dse1" +4: "dse1" has unsupported operation: llvm.store + +4: "dse1" has unsupported operation: llvm.return + +1: "dse2" +4: "dse2" has unsupported operation: llvm.store + +4: "dse2" has unsupported operation: llvm.return + +1: "dse3" +4: "dse3" has unsupported operation: llvm.store + +4: "dse3" has unsupported operation: llvm.return + +1: "dse4" +4: "dse4" has unsupported operation: llvm.store + +4: "dse4" has unsupported operation: llvm.return + +1: "dse5" +4: "dse5" has unsupported operation: llvm.store + +4: "dse5" has unsupported operation: llvm.store + +4: "dse5" has unsupported operation: llvm.return + +1: "write_back1" +4: "write_back1" has unsupported operation: llvm.return + +1: "write_back2" +4: "write_back2" has unsupported operation: llvm.return + +1: "write_back3" +4: "write_back3" has unsupported operation: llvm.return + +1: "write_back4" +4: "write_back4" has unsupported operation: llvm.return + +1: "write_back5" +4: "write_back5" has unsupported operation: llvm.load + +4: "write_back5" has unsupported operation: llvm.store + +4: "write_back5" has unsupported operation: llvm.return + +1: "write_back6" +4: "write_back6" has unsupported operation: llvm.load + +4: "write_back6" has unsupported operation: llvm.return + +1: "write_back7" +4: "write_back7" has unsupported operation: llvm.load + +4: "write_back7" has unsupported operation: llvm.return + +1: "store_to_constant" +4: "store_to_constant" has unsupported operation: llvm.return + +1: "store_to_readonly_noalias" +4: "store_to_readonly_noalias" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/storemerge-dbg.txt b/SSA/Projects/InstCombine/tests/logs/storemerge-dbg.txt new file mode 100644 index 000000000..4c91be374 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/storemerge-dbg.txt @@ -0,0 +1,12 @@ +1: "escape" +5: "escape" is empty + +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + +4: "foo" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/stpcpy-1.txt b/SSA/Projects/InstCombine/tests/logs/stpcpy-1.txt new file mode 100644 index 000000000..84b87f849 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stpcpy-1.txt @@ -0,0 +1,51 @@ +1: "stpcpy" +5: "stpcpy" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.getelementptr + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.getelementptr + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.getelementptr + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "strlen" +5: "strlen" is empty + +1: "strcpy" +5: "strcpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/stpcpy-2.txt b/SSA/Projects/InstCombine/tests/logs/stpcpy-2.txt new file mode 100644 index 000000000..8af3bfaea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stpcpy-2.txt @@ -0,0 +1,12 @@ +1: "stpcpy" +5: "stpcpy" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/stpcpy_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/stpcpy_chk-1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/stpcpy_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/stpcpy_chk-2.txt new file mode 100644 index 000000000..5d29eae49 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stpcpy_chk-2.txt @@ -0,0 +1,12 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__strcpy_chk" +5: "__strcpy_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/stpncpy-1.txt b/SSA/Projects/InstCombine/tests/logs/stpncpy-1.txt new file mode 100644 index 000000000..442f2e227 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/stpncpy-1.txt @@ -0,0 +1,229 @@ +1: "stpncpy" +5: "stpncpy" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_stpncpy_overlap" +4: "fold_stpncpy_overlap" has unsupported operation: llvm.call + +4: "fold_stpncpy_overlap" has unsupported operation: llvm.load + +4: "fold_stpncpy_overlap" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_stpncpy_overlap" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_stpncpy_overlap" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_overlap" has unsupported operation: llvm.call + +4: "fold_stpncpy_overlap" has unsupported operation: llvm.return + +1: "call_stpncpy_overlap" +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.call + +4: "call_stpncpy_overlap" has unsupported operation: llvm.return + +1: "fold_stpncpy_s0" +4: "fold_stpncpy_s0" has unsupported operation: llvm.call + +4: "fold_stpncpy_s0" has unsupported operation: llvm.store + +4: "fold_stpncpy_s0" has unsupported operation: llvm.call + +4: "fold_stpncpy_s0" has unsupported operation: llvm.store + +4: "fold_stpncpy_s0" has unsupported operation: llvm.call + +4: "fold_stpncpy_s0" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "fold_stpncpy_s0" has unsupported operation: llvm.call + +4: "fold_stpncpy_s0" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "fold_stpncpy_s0" has unsupported operation: llvm.call + +4: "fold_stpncpy_s0" has unsupported operation: llvm.return + +1: "fold_stpncpy_s1" +4: "fold_stpncpy_s1" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_s1" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_s1" has unsupported operation: llvm.call + +4: "fold_stpncpy_s1" has unsupported operation: llvm.store + +4: "fold_stpncpy_s1" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s1" has unsupported operation: llvm.call + +4: "fold_stpncpy_s1" has unsupported operation: llvm.store + +4: "fold_stpncpy_s1" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s1" has unsupported operation: llvm.call + +4: "fold_stpncpy_s1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_s1" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s1" has unsupported operation: llvm.call + +4: "fold_stpncpy_s1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_s1" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s1" has unsupported operation: llvm.call + +4: "fold_stpncpy_s1" has unsupported operation: llvm.return + +1: "fold_stpncpy_s4" +4: "fold_stpncpy_s4" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_s4" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: llvm.store + +4: "fold_stpncpy_s4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: llvm.store + +4: "fold_stpncpy_s4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_s4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: llvm.store + +4: "fold_stpncpy_s4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_s4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s4" has unsupported operation: llvm.call + +4: "fold_stpncpy_s4" has unsupported operation: llvm.return + +1: "call_stpncpy_xx_n" +4: "call_stpncpy_xx_n" has unsupported operation: llvm.mlir.addressof + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.getelementptr + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.mlir.addressof + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.getelementptr + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.call + +4: "call_stpncpy_xx_n" has unsupported operation: llvm.return + +1: "fold_stpncpy_a4" +4: "fold_stpncpy_a4" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_a4" has unsupported operation: llvm.mlir.addressof + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: llvm.store + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: llvm.store + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: llvm.store + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_stpncpy_a4" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_a4" has unsupported operation: llvm.call + +4: "fold_stpncpy_a4" has unsupported operation: llvm.return + +1: "fold_stpncpy_s" +4: "fold_stpncpy_s" has unsupported operation: llvm.call + +4: "fold_stpncpy_s" has unsupported operation: llvm.load + +4: "fold_stpncpy_s" has unsupported operation: llvm.store + +4: "fold_stpncpy_s" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_stpncpy_s" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_stpncpy_s" has unsupported operation: llvm.getelementptr + +4: "fold_stpncpy_s" has unsupported operation: llvm.call + +4: "fold_stpncpy_s" has unsupported operation: llvm.return + +1: "call_stpncpy_s" +4: "call_stpncpy_s" has unsupported operation: llvm.call + +4: "call_stpncpy_s" has unsupported operation: llvm.call + +4: "call_stpncpy_s" has unsupported operation: llvm.call + +4: "call_stpncpy_s" has unsupported operation: llvm.call + +4: "call_stpncpy_s" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/str-int-2.txt b/SSA/Projects/InstCombine/tests/logs/str-int-2.txt new file mode 100644 index 000000000..db69b9564 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/str-int-2.txt @@ -0,0 +1,99 @@ +1: "strtol" +5: "strtol" is empty + +1: "atoi" +5: "atoi" is empty + +1: "atol" +5: "atol" is empty + +1: "atoll" +5: "atoll" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtol_dec" +4: "strtol_dec" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_dec" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_dec" has unsupported operation after optimization: llvm.call + +1: "strtol_base_zero" +4: "strtol_base_zero" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_base_zero" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_base_zero" has unsupported operation after optimization: llvm.call + +1: "strtol_hex" +4: "strtol_hex" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_hex" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_hex" has unsupported operation after optimization: llvm.call + +1: "strtol_endptr_not_null" +4: "strtol_endptr_not_null" has unsupported operation: llvm.mlir.addressof + +4: "strtol_endptr_not_null" has unsupported operation: llvm.getelementptr + +4: "strtol_endptr_not_null" has unsupported operation: llvm.store + +1: "strtol_endptr_maybe_null" +4: "strtol_endptr_maybe_null" has unsupported operation: llvm.mlir.addressof + +4: "strtol_endptr_maybe_null" has unsupported operation: llvm.call + +1: "atoi_test" +4: "atoi_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atoi_test" has unsupported operation after optimization: llvm.call + +1: "strtol_not_const_str" +4: "strtol_not_const_str" has unsupported operation: llvm.mlir.zero + +4: "strtol_not_const_str" has unsupported operation: llvm.call + +1: "atoi_not_const_str" +4: "atoi_not_const_str" has unsupported operation: llvm.call + +1: "strtol_not_const_base" +4: "strtol_not_const_base" has unsupported operation: llvm.mlir.addressof + +4: "strtol_not_const_base" has unsupported operation: llvm.mlir.zero + +4: "strtol_not_const_base" has unsupported operation: llvm.call + +1: "strtol_long_int" +4: "strtol_long_int" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_long_int" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_long_int" has unsupported operation after optimization: llvm.call + +1: "strtol_big_overflow" +4: "strtol_big_overflow" has unsupported operation: llvm.mlir.addressof + +4: "strtol_big_overflow" has unsupported operation: llvm.mlir.zero + +4: "strtol_big_overflow" has unsupported operation: llvm.call + +1: "atol_test" +4: "atol_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atol_test" has unsupported operation after optimization: llvm.call + +1: "atoll_test" +4: "atoll_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atoll_test" has unsupported operation after optimization: llvm.call + +1: "strtoll_test" +4: "strtoll_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtoll_test" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtoll_test" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/str-int-3.txt b/SSA/Projects/InstCombine/tests/logs/str-int-3.txt new file mode 100644 index 000000000..457b66fa8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/str-int-3.txt @@ -0,0 +1,2 @@ +3: str-int-3.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/str-int-4.txt b/SSA/Projects/InstCombine/tests/logs/str-int-4.txt new file mode 100644 index 000000000..7eea5c363 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/str-int-4.txt @@ -0,0 +1,351 @@ +1: "strtol" +5: "strtol" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "fold_strtol" +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.getelementptr + +4: "fold_strtol" has unsupported operation: llvm.store + +4: "fold_strtol" has unsupported operation: llvm.return + +1: "call_strtol" +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.call + +4: "call_strtol" has unsupported operation: llvm.getelementptr + +4: "call_strtol" has unsupported operation: llvm.store + +4: "call_strtol" has unsupported operation: llvm.return + +1: "fold_strtoll" +4: "fold_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.getelementptr + +4: "fold_strtoll" has unsupported operation: llvm.store + +4: "fold_strtoll" has unsupported operation: llvm.return + +1: "call_strtoll" +4: "call_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoll" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoll" has unsupported operation: llvm.getelementptr + +4: "call_strtoll" has unsupported operation: llvm.call + +4: "call_strtoll" has unsupported operation: llvm.store + +4: "call_strtoll" has unsupported operation: llvm.call + +4: "call_strtoll" has unsupported operation: llvm.getelementptr + +4: "call_strtoll" has unsupported operation: llvm.store + +4: "call_strtoll" has unsupported operation: llvm.call + +4: "call_strtoll" has unsupported operation: llvm.getelementptr + +4: "call_strtoll" has unsupported operation: llvm.store + +4: "call_strtoll" has unsupported operation: llvm.call + +4: "call_strtoll" has unsupported operation: llvm.getelementptr + +4: "call_strtoll" has unsupported operation: llvm.store + +4: "call_strtoll" has unsupported operation: llvm.return + +1: "call_strtol_trailing_space" +4: "call_strtol_trailing_space" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol_trailing_space" has unsupported operation: llvm.mlir.addressof + +4: "call_strtol_trailing_space" has unsupported operation: llvm.getelementptr + +4: "call_strtol_trailing_space" has unsupported operation: llvm.getelementptr + +4: "call_strtol_trailing_space" has unsupported operation: llvm.call + +4: "call_strtol_trailing_space" has unsupported operation: llvm.getelementptr + +4: "call_strtol_trailing_space" has unsupported operation: llvm.store + +4: "call_strtol_trailing_space" has unsupported operation: llvm.call + +4: "call_strtol_trailing_space" has unsupported operation: llvm.getelementptr + +4: "call_strtol_trailing_space" has unsupported operation: llvm.store + +4: "call_strtol_trailing_space" has unsupported operation: llvm.call + +4: "call_strtol_trailing_space" has unsupported operation: llvm.getelementptr + +4: "call_strtol_trailing_space" has unsupported operation: llvm.store + +4: "call_strtol_trailing_space" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/str-int-5.txt b/SSA/Projects/InstCombine/tests/logs/str-int-5.txt new file mode 100644 index 000000000..7caaecf7f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/str-int-5.txt @@ -0,0 +1,306 @@ +1: "strtoul" +5: "strtoul" is empty + +1: "strtoull" +5: "strtoull" is empty + +1: "fold_strtoul" +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.getelementptr + +4: "fold_strtoul" has unsupported operation: llvm.store + +4: "fold_strtoul" has unsupported operation: llvm.return + +1: "call_strtoul" +4: "call_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoul" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoul" has unsupported operation: llvm.getelementptr + +4: "call_strtoul" has unsupported operation: llvm.call + +4: "call_strtoul" has unsupported operation: llvm.store + +4: "call_strtoul" has unsupported operation: llvm.call + +4: "call_strtoul" has unsupported operation: llvm.getelementptr + +4: "call_strtoul" has unsupported operation: llvm.store + +4: "call_strtoul" has unsupported operation: llvm.call + +4: "call_strtoul" has unsupported operation: llvm.getelementptr + +4: "call_strtoul" has unsupported operation: llvm.store + +4: "call_strtoul" has unsupported operation: llvm.call + +4: "call_strtoul" has unsupported operation: llvm.getelementptr + +4: "call_strtoul" has unsupported operation: llvm.store + +4: "call_strtoul" has unsupported operation: llvm.return + +1: "fold_strtoull" +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.getelementptr + +4: "fold_strtoull" has unsupported operation: llvm.store + +4: "fold_strtoull" has unsupported operation: llvm.return + +1: "call_strtoull" +4: "call_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoull" has unsupported operation: llvm.mlir.addressof + +4: "call_strtoull" has unsupported operation: llvm.getelementptr + +4: "call_strtoull" has unsupported operation: llvm.call + +4: "call_strtoull" has unsupported operation: llvm.getelementptr + +4: "call_strtoull" has unsupported operation: llvm.store + +4: "call_strtoull" has unsupported operation: llvm.call + +4: "call_strtoull" has unsupported operation: llvm.getelementptr + +4: "call_strtoull" has unsupported operation: llvm.store + +4: "call_strtoull" has unsupported operation: llvm.call + +4: "call_strtoull" has unsupported operation: llvm.getelementptr + +4: "call_strtoull" has unsupported operation: llvm.store + +4: "call_strtoull" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/str-int.txt b/SSA/Projects/InstCombine/tests/logs/str-int.txt new file mode 100644 index 000000000..054dd4d34 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/str-int.txt @@ -0,0 +1,101 @@ +1: "strtol" +5: "strtol" is empty + +1: "atoi" +5: "atoi" is empty + +1: "atol" +5: "atol" is empty + +1: "atoll" +5: "atoll" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtol_dec" +4: "strtol_dec" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_dec" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_dec" has unsupported operation after optimization: llvm.call + +1: "strtol_base_zero" +4: "strtol_base_zero" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_base_zero" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_base_zero" has unsupported operation after optimization: llvm.call + +1: "strtol_hex" +4: "strtol_hex" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtol_hex" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtol_hex" has unsupported operation after optimization: llvm.call + +1: "strtol_endptr_not_null" +4: "strtol_endptr_not_null" has unsupported operation: llvm.mlir.addressof + +4: "strtol_endptr_not_null" has unsupported operation: llvm.getelementptr + +4: "strtol_endptr_not_null" has unsupported operation: llvm.getelementptr + +4: "strtol_endptr_not_null" has unsupported operation: llvm.store + +1: "strtol_endptr_maybe_null" +4: "strtol_endptr_maybe_null" has unsupported operation: llvm.mlir.addressof + +4: "strtol_endptr_maybe_null" has unsupported operation: llvm.call + +1: "atoi_test" +4: "atoi_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atoi_test" has unsupported operation after optimization: llvm.call + +1: "strtol_not_const_str" +4: "strtol_not_const_str" has unsupported operation: llvm.mlir.zero + +4: "strtol_not_const_str" has unsupported operation: llvm.call + +1: "atoi_not_const_str" +4: "atoi_not_const_str" has unsupported operation: llvm.call + +1: "strtol_not_const_base" +4: "strtol_not_const_base" has unsupported operation: llvm.mlir.addressof + +4: "strtol_not_const_base" has unsupported operation: llvm.mlir.zero + +4: "strtol_not_const_base" has unsupported operation: llvm.call + +1: "strtol_long_int" +4: "strtol_long_int" has unsupported operation: llvm.mlir.addressof + +4: "strtol_long_int" has unsupported operation: llvm.mlir.zero + +4: "strtol_long_int" has unsupported operation: llvm.call + +1: "strtol_big_overflow" +4: "strtol_big_overflow" has unsupported operation: llvm.mlir.addressof + +4: "strtol_big_overflow" has unsupported operation: llvm.mlir.zero + +4: "strtol_big_overflow" has unsupported operation: llvm.call + +1: "atol_test" +4: "atol_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atol_test" has unsupported operation after optimization: llvm.call + +1: "atoll_test" +4: "atoll_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "atoll_test" has unsupported operation after optimization: llvm.call + +1: "strtoll_test" +4: "strtoll_test" has unsupported operation after optimization: llvm.mlir.addressof + +4: "strtoll_test" has unsupported operation after optimization: llvm.mlir.zero + +4: "strtoll_test" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strcall-bad-sig.txt b/SSA/Projects/InstCombine/tests/logs/strcall-bad-sig.txt new file mode 100644 index 000000000..8d6fc01b1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcall-bad-sig.txt @@ -0,0 +1,127 @@ +1: "atoi" +5: "atoi" is empty + +1: "atol" +5: "atol" is empty + +1: "atoll" +5: "atoll" is empty + +1: "call_bad_ato" +4: "call_bad_ato" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_ato" has unsupported operation: llvm.call + +4: "call_bad_ato" has unsupported operation: llvm.store + +4: "call_bad_ato" has unsupported operation: llvm.call + +4: "call_bad_ato" has unsupported operation: llvm.getelementptr + +4: "call_bad_ato" has unsupported operation: llvm.store + +4: "call_bad_ato" has unsupported operation: llvm.call + +4: "call_bad_ato" has unsupported operation: llvm.getelementptr + +4: "call_bad_ato" has unsupported operation: llvm.store + +4: "call_bad_ato" has unsupported operation: llvm.return + +1: "strncasecmp" +5: "strncasecmp" is empty + +1: "call_bad_strncasecmp" +4: "call_bad_strncasecmp" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strncasecmp" has unsupported operation: llvm.getelementptr + +4: "call_bad_strncasecmp" has unsupported operation: llvm.call + +1: "strcoll" +5: "strcoll" is empty + +1: "call_bad_strcoll" +4: "call_bad_strcoll" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strcoll" has unsupported operation: llvm.getelementptr + +4: "call_bad_strcoll" has unsupported operation: llvm.call + +1: "strndup" +5: "strndup" is empty + +1: "call_bad_strndup" +4: "call_bad_strndup" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strndup" has unsupported operation: llvm.call + +1: "strtok" +5: "strtok" is empty + +1: "call_bad_strtok" +4: "call_bad_strtok" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strtok" has unsupported operation: llvm.getelementptr + +4: "call_bad_strtok" has unsupported operation: llvm.call + +1: "strtok_r" +5: "strtok_r" is empty + +1: "call_bad_strtok_r" +4: "call_bad_strtok_r" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strtok_r" has unsupported operation: llvm.getelementptr + +4: "call_bad_strtok_r" has unsupported operation: llvm.call + +1: "strtol" +5: "strtol" is empty + +1: "strtoul" +5: "strtoul" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtoull" +5: "strtoull" is empty + +1: "call_bad_strto" +4: "call_bad_strto" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strto" has unsupported operation: llvm.mlir.zero + +4: "call_bad_strto" has unsupported operation: llvm.call + +4: "call_bad_strto" has unsupported operation: llvm.store + +4: "call_bad_strto" has unsupported operation: llvm.call + +4: "call_bad_strto" has unsupported operation: llvm.getelementptr + +4: "call_bad_strto" has unsupported operation: llvm.store + +4: "call_bad_strto" has unsupported operation: llvm.call + +4: "call_bad_strto" has unsupported operation: llvm.store + +4: "call_bad_strto" has unsupported operation: llvm.call + +4: "call_bad_strto" has unsupported operation: llvm.getelementptr + +4: "call_bad_strto" has unsupported operation: llvm.store + +4: "call_bad_strto" has unsupported operation: llvm.return + +1: "strxfrm" +5: "strxfrm" is empty + +1: "call_bad_strxfrm" +4: "call_bad_strxfrm" has unsupported operation: llvm.mlir.addressof + +4: "call_bad_strxfrm" has unsupported operation: llvm.getelementptr + +4: "call_bad_strxfrm" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strcall-no-nul.txt b/SSA/Projects/InstCombine/tests/logs/strcall-no-nul.txt new file mode 100644 index 000000000..753c34369 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcall-no-nul.txt @@ -0,0 +1,243 @@ +1: "strchr" +5: "strchr" is empty + +1: "strrchr" +5: "strrchr" is empty + +1: "strcmp" +5: "strcmp" is empty + +1: "strncmp" +5: "strncmp" is empty + +1: "strstr" +5: "strstr" is empty + +1: "stpcpy" +5: "stpcpy" is empty + +1: "strcpy" +5: "strcpy" is empty + +1: "stpncpy" +5: "stpncpy" is empty + +1: "strncpy" +5: "strncpy" is empty + +1: "strlen" +5: "strlen" is empty + +1: "strnlen" +5: "strnlen" is empty + +1: "strpbrk" +5: "strpbrk" is empty + +1: "strspn" +5: "strspn" is empty + +1: "strcspn" +5: "strcspn" is empty + +1: "atoi" +5: "atoi" is empty + +1: "atol" +5: "atol" is empty + +1: "atoll" +5: "atoll" is empty + +1: "strtol" +5: "strtol" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtoul" +5: "strtoul" is empty + +1: "strtoull" +5: "strtoull" is empty + +1: "sprintf" +5: "sprintf" is empty + +1: "snprintf" +5: "snprintf" is empty + +1: "fold_strchr_past_end" +4: "fold_strchr_past_end" has unsupported operation: llvm.mlir.addressof + +4: "fold_strchr_past_end" has unsupported operation: llvm.getelementptr + +1: "fold_strcmp_past_end" +4: "fold_strcmp_past_end" has unsupported operation: llvm.store + +4: "fold_strcmp_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strcmp_past_end" has unsupported operation: llvm.store + +4: "fold_strcmp_past_end" has unsupported operation: llvm.return + +1: "fold_strncmp_past_end" +4: "fold_strncmp_past_end" has unsupported operation: llvm.store + +4: "fold_strncmp_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_past_end" has unsupported operation: llvm.store + +4: "fold_strncmp_past_end" has unsupported operation: llvm.return + +1: "fold_strrchr_past_end" +4: "fold_strrchr_past_end" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +1: "fold_strstr_past_end" +4: "fold_strstr_past_end" has unsupported operation: llvm.mlir.addressof + +4: "fold_strstr_past_end" has unsupported operation: llvm.mlir.zero + +4: "fold_strstr_past_end" has unsupported operation: llvm.store + +4: "fold_strstr_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strstr_past_end" has unsupported operation: llvm.store + +4: "fold_strstr_past_end" has unsupported operation: llvm.return + +1: "fold_strlen_past_end" +4: "fold_strlen_past_end" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_past_end" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strlen_past_end" has unsupported operation after optimization: llvm.call + +1: "fold_stpcpy_past_end" +4: "fold_stpcpy_past_end" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_stpcpy_past_end" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_stpcpy_past_end" has unsupported operation after optimization: llvm.call + +1: "fold_strcpy_past_end" +4: "fold_strcpy_past_end" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcpy_past_end" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcpy_past_end" has unsupported operation after optimization: llvm.call + +1: "fold_stpncpy_past_end" +4: "fold_stpncpy_past_end" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "fold_strncpy_past_end" +4: "fold_strncpy_past_end" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "fold_strpbrk_past_end" +4: "fold_strpbrk_past_end" has unsupported operation: llvm.mlir.zero + +4: "fold_strpbrk_past_end" has unsupported operation: llvm.store + +4: "fold_strpbrk_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strpbrk_past_end" has unsupported operation: llvm.store + +4: "fold_strpbrk_past_end" has unsupported operation: llvm.return + +1: "fold_strspn_past_end" +4: "fold_strspn_past_end" has unsupported operation: llvm.store + +4: "fold_strspn_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strspn_past_end" has unsupported operation: llvm.store + +4: "fold_strspn_past_end" has unsupported operation: llvm.return + +1: "fold_strcspn_past_end" +4: "fold_strcspn_past_end" has unsupported operation: llvm.store + +4: "fold_strcspn_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_strcspn_past_end" has unsupported operation: llvm.store + +4: "fold_strcspn_past_end" has unsupported operation: llvm.return + +1: "fold_atoi_past_end" +4: "fold_atoi_past_end" has unsupported operation: llvm.mlir.addressof + +4: "fold_atoi_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atoi_past_end" has unsupported operation: llvm.call + +1: "fold_atol_strtol_past_end" +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.mlir.addressof + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.mlir.zero + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.call + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.store + +4: "fold_atol_strtol_past_end" has unsupported operation: llvm.return + +1: "fold_sprintf_past_end" +4: "fold_sprintf_past_end" has unsupported operation: llvm.store + +4: "fold_sprintf_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_sprintf_past_end" has unsupported operation: llvm.store + +4: "fold_sprintf_past_end" has unsupported operation: llvm.return + +1: "fold_snprintf_past_end" +4: "fold_snprintf_past_end" has unsupported operation: llvm.mlir.addressof + +4: "fold_snprintf_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_past_end" has unsupported operation: llvm.call + +4: "fold_snprintf_past_end" has unsupported operation: llvm.store + +4: "fold_snprintf_past_end" has unsupported operation: llvm.call + +4: "fold_snprintf_past_end" has unsupported operation: llvm.getelementptr + +4: "fold_snprintf_past_end" has unsupported operation: llvm.store + +4: "fold_snprintf_past_end" has unsupported operation: llvm.return + +1: "memrchr" +5: "memrchr" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcat-1.txt b/SSA/Projects/InstCombine/tests/logs/strcat-1.txt new file mode 100644 index 000000000..e8f297ed5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcat-1.txt @@ -0,0 +1,24 @@ +1: "strcat" +5: "strcat" is empty + +1: "puts" +5: "puts" is empty + +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "main" has unsupported operation: llvm.call + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcat-2.txt b/SSA/Projects/InstCombine/tests/logs/strcat-2.txt new file mode 100644 index 000000000..a2c8e753f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcat-2.txt @@ -0,0 +1,22 @@ +1: "strcat" +5: "strcat" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.getelementptr + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.return + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcat-3.txt b/SSA/Projects/InstCombine/tests/logs/strcat-3.txt new file mode 100644 index 000000000..9f79602df --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcat-3.txt @@ -0,0 +1,12 @@ +1: "strcat" +5: "strcat" is empty + +1: "test_nosimplify1" +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.call + +4: "test_nosimplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strchr-1.txt b/SSA/Projects/InstCombine/tests/logs/strchr-1.txt new file mode 100644 index 000000000..e80530dde --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strchr-1.txt @@ -0,0 +1,88 @@ +1: "strchr" +5: "strchr" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.getelementptr + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.store + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.zero + +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.store + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.getelementptr + +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.store + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.call + +4: "test_simplify4" has unsupported operation: llvm.store + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: llvm.getelementptr + +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: llvm.store + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: llvm.call + +4: "test_simplify6" has unsupported operation: llvm.getelementptr + +4: "test_simplify6" has unsupported operation: llvm.store + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "memchr" +5: "memchr" is empty + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strchr-2.txt b/SSA/Projects/InstCombine/tests/logs/strchr-2.txt new file mode 100644 index 000000000..151614db8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strchr-2.txt @@ -0,0 +1,14 @@ +1: "strchr" +5: "strchr" is empty + +1: "test_nosimplify1" +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.call + +4: "test_nosimplify1" has unsupported operation: llvm.store + +4: "test_nosimplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strchr-3.txt b/SSA/Projects/InstCombine/tests/logs/strchr-3.txt new file mode 100644 index 000000000..63c4b8686 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strchr-3.txt @@ -0,0 +1,109 @@ +1: "strchr" +5: "strchr" is empty + +1: "fold_strchr_s1_C" +4: "fold_strchr_s1_C" has unsupported operation: llvm.mlir.addressof + +4: "fold_strchr_s1_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s1_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s1_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_strchr_s11_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s11_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s11_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_strchr_s111_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s111_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s111_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_strchr_s000_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s000_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "xform_strchr_s21111_C" has unsupported operation: llvm.call + +1: "fold_strchr_s21111p1_C" +4: "fold_strchr_s21111p1_C" has unsupported operation: llvm.mlir.addressof + +4: "fold_strchr_s21111p1_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s21111p1_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s21111p1_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s21111p1_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "fold_strchr_s11102_C" has unsupported operation: llvm.getelementptr + +4: "fold_strchr_s11102_C" has unsupported operation: llvm.mlir.zero + +4: "fold_strchr_s11102_C" has unsupported operation: builtin.unregistered: llvm.trunc + +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/strchr-4.txt b/SSA/Projects/InstCombine/tests/logs/strchr-4.txt new file mode 100644 index 000000000..9b3fa50d4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strchr-4.txt @@ -0,0 +1,36 @@ +1: "strchr" +5: "strchr" is empty + +1: "fold_strchr_s_c_eq_s" +4: "fold_strchr_s_c_eq_s" has unsupported operation: llvm.load + +4: "fold_strchr_s_c_eq_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_strchr_s_c_eq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strchr_s_c_neq_s" +4: "fold_strchr_s_c_neq_s" has unsupported operation: llvm.load + +4: "fold_strchr_s_c_neq_s" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_strchr_s_c_neq_s" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strchr_s_nul_eqz" +4: "fold_strchr_s_nul_eqz" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_strchr_s_nul_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_strchr_s_nul_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_strchr_s_nul_nez" +4: "fold_strchr_s_nul_nez" has unsupported operation after optimization: llvm.mlir.zero + +4: "fold_strchr_s_nul_nez" has unsupported operation after optimization: llvm.call + +4: "fold_strchr_s_nul_nez" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_strchr_a_c_eq_a" +4: "fold_strchr_a_c_eq_a" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "fold_strchr_a_c_eq_a" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt new file mode 100644 index 000000000..ecc49447e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-1.txt @@ -0,0 +1,57 @@ +1: "strcmp" +5: "strcmp" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test3" has unsupported operation after optimization: llvm.call + +1: "test4" +4: "test4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test4" has unsupported operation after optimization: llvm.call + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.addressof + +4: "test5" has unsupported operation: llvm.mlir.addressof + +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" +4: "test6" has unsupported operation after optimization: llvm.call + +1: "test7" +4: "test7" has unsupported operation: llvm.mlir.addressof + +4: "test7" has unsupported operation: llvm.mlir.addressof + +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 + +1: "memcmp" +5: "memcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-2.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-2.txt new file mode 100644 index 000000000..5ad89a6f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-2.txt @@ -0,0 +1,10 @@ +1: "strcmp" +5: "strcmp" is empty + +1: "test_nosimplify" +4: "test_nosimplify" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-3.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-3.txt new file mode 100644 index 000000000..ec404b681 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-3.txt @@ -0,0 +1,61 @@ +1: "strcmp" +5: "strcmp" is empty + +1: "fold_strcmp_a5i0_a5i1_to_0" +4: "fold_strcmp_a5i0_a5i1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcmp_a5i0_a5i1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i0_a5i1_to_0" has unsupported operation after optimization: llvm.call + +1: "call_strcmp_a5i0_a5iI" +4: "call_strcmp_a5i0_a5iI" has unsupported operation: llvm.mlir.addressof + +4: "call_strcmp_a5i0_a5iI" has unsupported operation: llvm.getelementptr + +4: "call_strcmp_a5i0_a5iI" has unsupported operation: llvm.call + +1: "call_strcmp_a5iI_a5i0" +4: "call_strcmp_a5iI_a5i0" has unsupported operation: llvm.mlir.addressof + +4: "call_strcmp_a5iI_a5i0" has unsupported operation: llvm.getelementptr + +4: "call_strcmp_a5iI_a5i0" has unsupported operation: llvm.call + +1: "fold_strcmp_a5i0_a5i1_p1_to_0" +4: "fold_strcmp_a5i0_a5i1_p1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcmp_a5i0_a5i1_p1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i0_a5i1_p1_to_0" has unsupported operation after optimization: llvm.call + +1: "call_strcmp_a5i0_a5i1_pI" +4: "call_strcmp_a5i0_a5i1_pI" has unsupported operation: llvm.mlir.addressof + +4: "call_strcmp_a5i0_a5i1_pI" has unsupported operation: llvm.getelementptr + +4: "call_strcmp_a5i0_a5i1_pI" has unsupported operation: llvm.call + +1: "fold_strcmp_a5i0_p1_a5i1_to_0" +4: "fold_strcmp_a5i0_p1_a5i1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcmp_a5i0_p1_a5i1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i0_p1_a5i1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i0_p1_a5i1_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_strcmp_a5i0_a5i2_to_0" +4: "fold_strcmp_a5i0_a5i2_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcmp_a5i0_a5i2_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i0_a5i2_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_strcmp_a5i2_a5i0_to_m1" +4: "fold_strcmp_a5i2_a5i0_to_m1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strcmp_a5i2_a5i0_to_m1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strcmp_a5i2_a5i0_to_m1" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt new file mode 100644 index 000000000..5a3fe282f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-4.txt @@ -0,0 +1,14 @@ +1: "strcmp" +5: "strcmp" is empty + +1: "fold_strcmp_s3_x_s4_s3" +4: "fold_strcmp_s3_x_s4_s3" has unsupported operation: llvm.mlir.addressof + +4: "fold_strcmp_s3_x_s4_s3" has unsupported operation: llvm.getelementptr + +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/strcmp-memcmp.txt b/SSA/Projects/InstCombine/tests/logs/strcmp-memcmp.txt new file mode 100644 index 000000000..24d9f418a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcmp-memcmp.txt @@ -0,0 +1,327 @@ +1: "use" +5: "use" is empty + +1: "strcmp_memcmp" +4: "strcmp_memcmp" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp" has unsupported operation: llvm.call + +4: "strcmp_memcmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp" +5: "strcmp" is empty + +1: "strcmp_memcmp2" +4: "strcmp_memcmp2" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp2" has unsupported operation: llvm.call + +4: "strcmp_memcmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp3" +4: "strcmp_memcmp3" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp3" has unsupported operation: llvm.call + +4: "strcmp_memcmp3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp4" +4: "strcmp_memcmp4" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp4" has unsupported operation: llvm.call + +4: "strcmp_memcmp4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp5" +4: "strcmp_memcmp5" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp5" has unsupported operation: llvm.call + +4: "strcmp_memcmp5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp6" +4: "strcmp_memcmp6" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp6" has unsupported operation: llvm.call + +4: "strcmp_memcmp6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp7" +4: "strcmp_memcmp7" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp7" has unsupported operation: llvm.call + +1: "strcmp_memcmp8" +4: "strcmp_memcmp8" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp8" has unsupported operation: llvm.call + +4: "strcmp_memcmp8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp9" +4: "strcmp_memcmp9" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp9" has unsupported operation: llvm.call + +4: "strcmp_memcmp9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp9" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp" +4: "strncmp_memcmp" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp" has unsupported operation: llvm.call + +4: "strncmp_memcmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp" +5: "strncmp" is empty + +1: "strncmp_memcmp2" +4: "strncmp_memcmp2" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp2" has unsupported operation: llvm.call + +4: "strncmp_memcmp2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp3" +4: "strncmp_memcmp3" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp3" has unsupported operation: llvm.call + +4: "strncmp_memcmp3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp4" +4: "strncmp_memcmp4" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp4" has unsupported operation: llvm.call + +4: "strncmp_memcmp4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp5" +4: "strncmp_memcmp5" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp5" has unsupported operation: llvm.call + +4: "strncmp_memcmp5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp6" +4: "strncmp_memcmp6" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp6" has unsupported operation: llvm.call + +4: "strncmp_memcmp6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp7" +4: "strncmp_memcmp7" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp7" has unsupported operation: llvm.call + +4: "strncmp_memcmp7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp8" +4: "strncmp_memcmp8" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp8" has unsupported operation: llvm.call + +4: "strncmp_memcmp8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp9" +4: "strncmp_memcmp9" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp9" has unsupported operation: llvm.call + +4: "strncmp_memcmp9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp9" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp10" +4: "strncmp_memcmp10" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp10" has unsupported operation: llvm.call + +1: "strncmp_memcmp11" +4: "strncmp_memcmp11" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp11" has unsupported operation: llvm.call + +4: "strncmp_memcmp11" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp11" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp12" +4: "strncmp_memcmp12" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp12" has unsupported operation: llvm.call + +4: "strncmp_memcmp12" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp12" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp13" +4: "strncmp_memcmp13" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp13" has unsupported operation: llvm.call + +4: "strncmp_memcmp13" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp13" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp14" +4: "strncmp_memcmp14" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp14" has unsupported operation: llvm.call + +4: "strncmp_memcmp14" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp14" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad" +4: "strcmp_memcmp_bad" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad2" +4: "strcmp_memcmp_bad2" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad2" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad3" +4: "strcmp_memcmp_bad3" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad3" has unsupported operation: llvm.call + +1: "strcmp_memcmp_bad4" +4: "strcmp_memcmp_bad4" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad4" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad4" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad5" +4: "strcmp_memcmp_bad5" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad5" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad5" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad6" +4: "strcmp_memcmp_bad6" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad7" +4: "strcmp_memcmp_bad7" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad7" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_bad7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strcmp_memcmp_bad8" +4: "strcmp_memcmp_bad8" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_bad8" has unsupported operation: llvm.call + +4: "strcmp_memcmp_bad8" has unsupported operation: llvm.call + +1: "strncmp_memcmp_bad" +4: "strncmp_memcmp_bad" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp_bad" has unsupported operation: llvm.call + +4: "strncmp_memcmp_bad" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp_bad" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp_bad1" +4: "strncmp_memcmp_bad1" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp_bad1" has unsupported operation: llvm.call + +4: "strncmp_memcmp_bad1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp_bad1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp_bad2" +4: "strncmp_memcmp_bad2" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp_bad2" has unsupported operation: llvm.call + +4: "strncmp_memcmp_bad2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp_bad2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp_bad3" +4: "strncmp_memcmp_bad3" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp_bad3" has unsupported operation: llvm.call + +4: "strncmp_memcmp_bad3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strncmp_memcmp_bad3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "strncmp_memcmp_bad4" +4: "strncmp_memcmp_bad4" has unsupported operation: llvm.mlir.addressof + +4: "strncmp_memcmp_bad4" has unsupported operation: llvm.call + +4: "strncmp_memcmp_bad4" has unsupported operation: llvm.call + +1: "strcmp_memcmp_msan" +4: "strcmp_memcmp_msan" has unsupported operation: llvm.mlir.addressof + +4: "strcmp_memcmp_msan" has unsupported operation: llvm.call + +4: "strcmp_memcmp_msan" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "strcmp_memcmp_msan" has unsupported operation: builtin.unregistered: llvm.zext + +1: "memcmp" +5: "memcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy-1.txt b/SSA/Projects/InstCombine/tests/logs/strcpy-1.txt new file mode 100644 index 000000000..120d9cb29 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcpy-1.txt @@ -0,0 +1,41 @@ +1: "strcpy" +5: "strcpy" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_no_incompatible_attr" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy-2.txt b/SSA/Projects/InstCombine/tests/logs/strcpy-2.txt new file mode 100644 index 000000000..ce5e0743d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcpy-2.txt @@ -0,0 +1,12 @@ +1: "strcpy" +5: "strcpy" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy-nonzero-as.txt b/SSA/Projects/InstCombine/tests/logs/strcpy-nonzero-as.txt new file mode 100644 index 000000000..26314e2e2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcpy-nonzero-as.txt @@ -0,0 +1,45 @@ +1: "strcpy" +5: "strcpy" is empty + +1: "stpcpy" +5: "stpcpy" is empty + +1: "strncpy" +5: "strncpy" is empty + +1: "stpncpy" +5: "stpncpy" is empty + +1: "test_strcpy_to_memcpy" +4: "test_strcpy_to_memcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_strcpy_to_memcpy" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_strcpy_to_memcpy" has unsupported operation: llvm.return + +1: "test_stpcpy_to_memcpy" +4: "test_stpcpy_to_memcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_stpcpy_to_memcpy" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_stpcpy_to_memcpy" has unsupported operation: llvm.return + +1: "test_stpcpy_to_strcpy" +4: "test_stpcpy_to_strcpy" has unsupported operation: llvm.call + +4: "test_stpcpy_to_strcpy" has unsupported operation: llvm.return + +1: "test_strncpy_to_memcpy" +4: "test_strncpy_to_memcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_strncpy_to_memcpy" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_strncpy_to_memcpy" has unsupported operation: llvm.return + +1: "test_stpncpy_to_memcpy" +4: "test_stpncpy_to_memcpy" has unsupported operation: llvm.mlir.addressof + +4: "test_stpncpy_to_memcpy" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_stpncpy_to_memcpy" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/strcpy_chk-1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/strcpy_chk-2.txt new file mode 100644 index 000000000..5d29eae49 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcpy_chk-2.txt @@ -0,0 +1,12 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__strcpy_chk" +5: "__strcpy_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcpy_chk-64.txt b/SSA/Projects/InstCombine/tests/logs/strcpy_chk-64.txt new file mode 100644 index 000000000..ffe014681 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcpy_chk-64.txt @@ -0,0 +1,24 @@ +1: "func" +4: "func" has unsupported operation: llvm.alloca + +4: "func" has unsupported operation: llvm.call + +4: "func" has unsupported operation: llvm.call + +4: "func" has unsupported operation: llvm.return + +1: "func_no_null_opt" +4: "func_no_null_opt" has unsupported operation: llvm.alloca + +4: "func_no_null_opt" has unsupported operation: llvm.call + +4: "func_no_null_opt" has unsupported operation: llvm.call + +4: "func_no_null_opt" has unsupported operation: llvm.return + +1: "__strcpy_chk" +5: "__strcpy_chk" is empty + +1: "func2" +5: "func2" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcspn-1.txt b/SSA/Projects/InstCombine/tests/logs/strcspn-1.txt new file mode 100644 index 000000000..85ec2d263 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcspn-1.txt @@ -0,0 +1,24 @@ +1: "strcspn" +5: "strcspn" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strcspn-2.txt b/SSA/Projects/InstCombine/tests/logs/strcspn-2.txt new file mode 100644 index 000000000..1807a92aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strcspn-2.txt @@ -0,0 +1,8 @@ +1: "strcspn" +5: "strcspn" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strict-sub-underflow-check-to-comparison-of-sub-operands.txt b/SSA/Projects/InstCombine/tests/logs/strict-sub-underflow-check-to-comparison-of-sub-operands.txt new file mode 100644 index 000000000..0eb4df2f4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strict-sub-underflow-check-to-comparison-of-sub-operands.txt @@ -0,0 +1,60 @@ +1: "gen8" +5: "gen8" is empty + +1: "use8" +5: "use8" is empty + +1: "t0" +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t0" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1" +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t1" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t1" has unsupported operation: llvm.call + +4: "t1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2" +4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t2" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t2" has unsupported operation: llvm.call + +4: "t2" has unsupported operation: llvm.call + +4: "t2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3" +4: "t3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "t3" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "t3" has unsupported operation: llvm.call + +4: "t3" has unsupported operation: llvm.call + +4: "t3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_maybezero" +4: "n4_maybezero" has unsupported operation: llvm.call + +4: "n4_maybezero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n5_wrongnonzero" +4: "n5_wrongnonzero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n5_wrongnonzero" has unsupported operation: builtin.unregistered: llvm.intr.assume + +4: "n5_wrongnonzero" has unsupported operation: llvm.call + +4: "n5_wrongnonzero" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/strlcpy-1.txt b/SSA/Projects/InstCombine/tests/logs/strlcpy-1.txt new file mode 100644 index 000000000..df9d1bcba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlcpy-1.txt @@ -0,0 +1,183 @@ +1: "strlcpy" +5: "strlcpy" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_strlcpy_s0" +4: "fold_strlcpy_s0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s0" has unsupported operation: llvm.store + +4: "fold_strlcpy_s0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s0" has unsupported operation: llvm.store + +4: "fold_strlcpy_s0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s0" has unsupported operation: llvm.return + +1: "fold_strlcpy_s1" +4: "fold_strlcpy_s1" has unsupported operation: llvm.call + +4: "fold_strlcpy_s1" has unsupported operation: llvm.store + +4: "fold_strlcpy_s1" has unsupported operation: llvm.call + +4: "fold_strlcpy_s1" has unsupported operation: llvm.store + +4: "fold_strlcpy_s1" has unsupported operation: llvm.call + +4: "fold_strlcpy_s1" has unsupported operation: llvm.store + +4: "fold_strlcpy_s1" has unsupported operation: llvm.call + +4: "fold_strlcpy_s1" has unsupported operation: llvm.store + +4: "fold_strlcpy_s1" has unsupported operation: llvm.call + +4: "fold_strlcpy_s1" has unsupported operation: llvm.return + +1: "fold_strlcpy_s5" +4: "fold_strlcpy_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_s5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_s5" has unsupported operation: llvm.store + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_s5" has unsupported operation: llvm.call + +4: "fold_strlcpy_s5" has unsupported operation: llvm.return + +1: "fold_strlcpy_s_0" +4: "fold_strlcpy_s_0" has unsupported operation: llvm.store + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.call + +4: "fold_strlcpy_s_0" has unsupported operation: llvm.return + +1: "call_strlcpy_s0_n" +4: "call_strlcpy_s0_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.getelementptr + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.getelementptr + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.call + +4: "call_strlcpy_s0_n" has unsupported operation: llvm.return + +1: "fold_strlcpy_a5" +4: "fold_strlcpy_a5" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_a5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fold_strlcpy_a5" has unsupported operation: llvm.getelementptr + +4: "fold_strlcpy_a5" has unsupported operation: llvm.store + +4: "fold_strlcpy_a5" has unsupported operation: llvm.call + +4: "fold_strlcpy_a5" has unsupported operation: llvm.return + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-1.txt b/SSA/Projects/InstCombine/tests/logs/strlen-1.txt new file mode 100644 index 000000000..186fe072f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-1.txt @@ -0,0 +1,138 @@ +1: "strlen" +5: "strlen" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +4: "test_simplify5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.load + +4: "test_simplify6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify7" has unsupported operation after optimization: llvm.call + +4: "test_simplify7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.load + +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_simplify10_inbounds" +4: "test_simplify10_inbounds" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify10_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "test_simplify10_inbounds" has unsupported operation after optimization: llvm.call + +1: "test_simplify10_no_inbounds" +4: "test_simplify10_no_inbounds" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify10_no_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "test_simplify10_no_inbounds" has unsupported operation after optimization: llvm.call + +1: "test_simplify11" +4: "test_simplify11" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify11" has unsupported operation after optimization: llvm.getelementptr + +4: "test_simplify11" has unsupported operation after optimization: llvm.call + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_simplify2_no_null_opt" +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.call + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify3_on_null_opt" +4: "test_no_simplify3_on_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3_on_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify3_on_null_opt" has unsupported operation: llvm.call + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "strlen0_after_write_to_first_byte_global" +4: "strlen0_after_write_to_first_byte_global" has unsupported operation: llvm.mlir.addressof + +4: "strlen0_after_write_to_first_byte_global" has unsupported operation: llvm.store + +1: "strlen0_after_write_to_second_byte_global" +4: "strlen0_after_write_to_second_byte_global" has unsupported operation: llvm.mlir.addressof + +4: "strlen0_after_write_to_second_byte_global" has unsupported operation: llvm.getelementptr + +4: "strlen0_after_write_to_second_byte_global" has unsupported operation: llvm.store + +4: "strlen0_after_write_to_second_byte_global" has unsupported operation: llvm.load + +4: "strlen0_after_write_to_second_byte_global" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "strlen0_after_write_to_first_byte" +4: "strlen0_after_write_to_first_byte" has unsupported operation: llvm.store + +1: "strlen0_after_write_to_second_byte" +4: "strlen0_after_write_to_second_byte" has unsupported operation: llvm.getelementptr + +4: "strlen0_after_write_to_second_byte" has unsupported operation: llvm.store + +4: "strlen0_after_write_to_second_byte" has unsupported operation: llvm.load + +4: "strlen0_after_write_to_second_byte" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-2.txt b/SSA/Projects/InstCombine/tests/logs/strlen-2.txt new file mode 100644 index 000000000..df315fde3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-2.txt @@ -0,0 +1,8 @@ +1: "strlen" +5: "strlen" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-3.txt b/SSA/Projects/InstCombine/tests/logs/strlen-3.txt new file mode 100644 index 000000000..739cd1733 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-3.txt @@ -0,0 +1,3 @@ +1: "strlen" +4: "strlen" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-4.txt b/SSA/Projects/InstCombine/tests/logs/strlen-4.txt new file mode 100644 index 000000000..ac7bf2ad3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-4.txt @@ -0,0 +1,118 @@ +1: "strlen" +5: "strlen" is empty + +1: "fold_strlen_s3_pi_s5" +4: "fold_strlen_s3_pi_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_pi_s5" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_pi_p1_s5" has unsupported operation: llvm.getelementptr + +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" +4: "call_strlen_s5_3_pi_s5" has unsupported operation: llvm.mlir.addressof + +4: "call_strlen_s5_3_pi_s5" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_strlen_s5_3_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "call_strlen_s5_3_s5_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strlen_s3_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_s5_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_strlen_s3_s5_3_pj" has unsupported operation: llvm.mlir.addressof + +4: "call_strlen_s3_s5_3_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_pi_s5_pj" has unsupported operation: llvm.getelementptr + +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" +4: "fold_strlen_s3_s5_s7" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_s5_s7" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_s3_s5_s7" has unsupported operation: llvm.mlir.addressof + +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.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" +4: "call_strlen_sx_s5_s7" has unsupported operation: llvm.mlir.addressof + +4: "call_strlen_sx_s5_s7" has unsupported operation: llvm.mlir.addressof + +4: "call_strlen_sx_s5_s7" has unsupported operation: llvm.mlir.addressof + +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.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/strlen-5.txt b/SSA/Projects/InstCombine/tests/logs/strlen-5.txt new file mode 100644 index 000000000..94023ee47 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-5.txt @@ -0,0 +1,141 @@ +1: "strlen" +5: "strlen" is empty + +1: "fold_a5_4_i0_to_3" +4: "fold_a5_4_i0_to_3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i0_to_3" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i0_p1_to_2" +4: "fold_a5_4_i0_p1_to_2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i0_p1_to_2" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i0_p1_to_2" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i0_p2_to_1" +4: "fold_a5_4_i0_p2_to_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i0_p2_to_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i0_p2_to_1" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i0_p3_to_0" +4: "fold_a5_4_i0_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i0_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i0_p3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i1_to_2" +4: "fold_a5_4_i1_to_2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i1_to_2" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i1_to_2" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i1_p1_to_1" +4: "fold_a5_4_i1_p1_to_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i1_p1_to_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i1_p1_to_1" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i1_p2_to_0" +4: "fold_a5_4_i1_p2_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i1_p2_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i1_p2_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i1_p3_to_0" +4: "fold_a5_4_i1_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i1_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i1_p3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i2_to_1" +4: "fold_a5_4_i2_to_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i2_to_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i2_to_1" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i2_p1_to_0" +4: "fold_a5_4_i2_p1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i2_p1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i2_p1_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i2_p2_to_0" +4: "fold_a5_4_i2_p2_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i2_p2_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i2_p2_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i2_p3_to_0" +4: "fold_a5_4_i2_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i2_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i2_p3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i3_to_0" +4: "fold_a5_4_i3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i3_p1_to_0" +4: "fold_a5_4_i3_p1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i3_p1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i3_p1_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i3_p2_to_0" +4: "fold_a5_4_i3_p2_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i3_p2_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i3_p2_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_3_i4_p3_to_0" +4: "fold_a5_3_i4_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_3_i4_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_3_i4_p3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i4_to_0" +4: "fold_a5_4_i4_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i4_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i4_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i4_p1_to_0" +4: "fold_a5_4_i4_p1_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i4_p1_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i4_p1_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i4_p2_to_0" +4: "fold_a5_4_i4_p2_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i4_p2_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i4_p2_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_a5_4_i4_p3_to_0" +4: "fold_a5_4_i4_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_a5_4_i4_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_a5_4_i4_p3_to_0" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-6.txt b/SSA/Projects/InstCombine/tests/logs/strlen-6.txt new file mode 100644 index 000000000..a1a0578b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-6.txt @@ -0,0 +1,133 @@ +1: "strlen" +5: "strlen" is empty + +1: "fold_strlen_a_S3_to_3" +4: "fold_strlen_a_S3_to_3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_to_3" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_S3_p1_to_2" +4: "fold_strlen_a_S3_p1_to_2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_p1_to_2" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strlen_a_S3_p1_to_2" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_S3_p2_to_1" +4: "fold_strlen_a_S3_p2_to_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_p2_to_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strlen_a_S3_p2_to_1" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_S3_p3_to_0" +4: "fold_strlen_a_S3_p3_to_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_p3_to_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strlen_a_S3_p3_to_0" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_S3_s4_to_3" +4: "fold_strlen_a_S3_s4_to_3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_s4_to_3" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_S3_p2_s4_to_1" +4: "fold_strlen_a_S3_p2_s4_to_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strlen_a_S3_p2_s4_to_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strlen_a_S3_p2_s4_to_1" has unsupported operation after optimization: llvm.call + +1: "fold_strlen_a_s3_S4_to_4" +4: "fold_strlen_a_s3_S4_to_4" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_S4_to_4" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_S4_to_4" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_S4_to_4" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_S4_to_4" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_S4_p1_to_3" +4: "fold_strlen_a_s3_S4_p1_to_3" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_S4_p1_to_3" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_S4_p1_to_3" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_S4_p1_to_3" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_S4_p1_to_3" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_i32_S4_to_4" +4: "fold_strlen_a_s3_i32_S4_to_4" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_i32_S4_to_4" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_i32_S4_to_4" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_to_4" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_to_4" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_i32_S4_p1_to_3" +4: "fold_strlen_a_s3_i32_S4_p1_to_3" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_i32_S4_p1_to_3" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_i32_S4_p1_to_3" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p1_to_3" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p1_to_3" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_i32_S4_p2_to_2" +4: "fold_strlen_a_s3_i32_S4_p2_to_2" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_i32_S4_p2_to_2" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_i32_S4_p2_to_2" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p2_to_2" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p2_to_2" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_i32_S4_p3_to_1" +4: "fold_strlen_a_s3_i32_S4_p3_to_1" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_i32_S4_p3_to_1" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_i32_S4_p3_to_1" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p3_to_1" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p3_to_1" has unsupported operation: llvm.return + +1: "fold_strlen_a_s3_i32_S4_p4_to_0" +4: "fold_strlen_a_s3_i32_S4_p4_to_0" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_a_s3_i32_S4_p4_to_0" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_a_s3_i32_S4_p4_to_0" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p4_to_0" has unsupported operation: llvm.store + +4: "fold_strlen_a_s3_i32_S4_p4_to_0" has unsupported operation: llvm.return + +1: "fold_strlen_ax_s" +4: "fold_strlen_ax_s" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_ax_s" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_ax_s" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_ax_s" has unsupported operation: llvm.store + +4: "fold_strlen_ax_s" has unsupported operation: llvm.store + +4: "fold_strlen_ax_s" has unsupported operation: llvm.store + +4: "fold_strlen_ax_s" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-7.txt b/SSA/Projects/InstCombine/tests/logs/strlen-7.txt new file mode 100644 index 000000000..182803154 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-7.txt @@ -0,0 +1,2 @@ +3: strlen-7.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-8.txt b/SSA/Projects/InstCombine/tests/logs/strlen-8.txt new file mode 100644 index 000000000..0cf86e5ff --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-8.txt @@ -0,0 +1,38 @@ +1: "strlen" +5: "strlen" is empty + +1: "fold_a5_4_i0_pI" +4: "fold_a5_4_i0_pI" has unsupported operation: llvm.mlir.addressof + +4: "fold_a5_4_i0_pI" has unsupported operation: llvm.getelementptr + +4: "fold_a5_4_i0_pI" has unsupported operation: llvm.call + +1: "fold_a5_4_i1_pI" +4: "fold_a5_4_i1_pI" has unsupported operation: llvm.mlir.addressof + +4: "fold_a5_4_i1_pI" has unsupported operation: llvm.getelementptr + +4: "fold_a5_4_i1_pI" has unsupported operation: llvm.call + +1: "fold_a5_4_i2_pI" +4: "fold_a5_4_i2_pI" has unsupported operation: llvm.mlir.addressof + +4: "fold_a5_4_i2_pI" has unsupported operation: llvm.getelementptr + +4: "fold_a5_4_i2_pI" has unsupported operation: llvm.call + +1: "fold_a5_4_i3_pI_to_0" +4: "fold_a5_4_i3_pI_to_0" has unsupported operation: llvm.mlir.addressof + +4: "fold_a5_4_i3_pI_to_0" has unsupported operation: llvm.getelementptr + +4: "fold_a5_4_i3_pI_to_0" has unsupported operation: llvm.call + +1: "fold_a5_4_i4_pI_to_0" +4: "fold_a5_4_i4_pI_to_0" has unsupported operation: llvm.mlir.addressof + +4: "fold_a5_4_i4_pI_to_0" has unsupported operation: llvm.getelementptr + +4: "fold_a5_4_i4_pI_to_0" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen-9.txt b/SSA/Projects/InstCombine/tests/logs/strlen-9.txt new file mode 100644 index 000000000..99dd4229e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen-9.txt @@ -0,0 +1,48 @@ +1: "strlen" +5: "strlen" is empty + +1: "fold_strlen_no_nul" +4: "fold_strlen_no_nul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_no_nul" has unsupported operation: llvm.mlir.addressof + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.call + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.call + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: llvm.getelementptr + +4: "fold_strlen_no_nul" has unsupported operation: llvm.store + +4: "fold_strlen_no_nul" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strlen_chk.txt b/SSA/Projects/InstCombine/tests/logs/strlen_chk.txt new file mode 100644 index 000000000..cd71bed76 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strlen_chk.txt @@ -0,0 +1,27 @@ +1: "__strlen_chk" +5: "__strlen_chk" is empty + +1: "unknown_str_known_object_size" +4: "unknown_str_known_object_size" has unsupported operation: llvm.call + +1: "known_str_known_object_size" +4: "known_str_known_object_size" has unsupported operation after optimization: llvm.mlir.addressof + +4: "known_str_known_object_size" has unsupported operation after optimization: llvm.call + +1: "known_str_too_small_object_size" +4: "known_str_too_small_object_size" has unsupported operation: llvm.mlir.addressof + +4: "known_str_too_small_object_size" has unsupported operation: llvm.call + +1: "known_str_no_nul" +4: "known_str_no_nul" has unsupported operation: llvm.mlir.addressof + +4: "known_str_no_nul" has unsupported operation: llvm.call + +1: "unknown_str_unknown_object_size" +4: "unknown_str_unknown_object_size" has unsupported operation: llvm.call + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncat-1.txt b/SSA/Projects/InstCombine/tests/logs/strncat-1.txt new file mode 100644 index 000000000..bdc180e93 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncat-1.txt @@ -0,0 +1,24 @@ +1: "strncat" +5: "strncat" is empty + +1: "puts" +5: "puts" is empty + +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.alloca + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: llvm.getelementptr + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "main" has unsupported operation: llvm.call + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncat-2.txt b/SSA/Projects/InstCombine/tests/logs/strncat-2.txt new file mode 100644 index 000000000..8b48ba2bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncat-2.txt @@ -0,0 +1,55 @@ +1: "strncat" +5: "strncat" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.getelementptr + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_nosimplify1" +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.call + +4: "test_nosimplify1" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation after optimization: llvm.call + +1: "test3" +4: "test3" has unsupported operation: llvm.call + +1: "test4" +4: "test4" has unsupported operation: llvm.call + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.addressof + +4: "test5" has unsupported operation: llvm.call + +4: "test5" has unsupported operation: llvm.getelementptr + +4: "test5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "strlen" +5: "strlen" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncat-3.txt b/SSA/Projects/InstCombine/tests/logs/strncat-3.txt new file mode 100644 index 000000000..a50e97d5c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncat-3.txt @@ -0,0 +1,12 @@ +1: "strncat" +5: "strncat" is empty + +1: "test_nosimplify1" +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.call + +4: "test_nosimplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-1.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-1.txt new file mode 100644 index 000000000..c969e0f87 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-1.txt @@ -0,0 +1,64 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: llvm.load + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +4: "test3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test3" has unsupported operation after optimization: llvm.call + +1: "test4" +4: "test4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test4" has unsupported operation after optimization: llvm.call + +1: "test5" +4: "test5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test5" has unsupported operation after optimization: llvm.call + +1: "test6" +4: "test6" has unsupported operation: llvm.load + +4: "test6" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test6" has unsupported operation: llvm.load + +4: "test6" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test7" +4: "test7" has unsupported operation after optimization: llvm.call + +1: "test8" +4: "test8" has unsupported operation after optimization: llvm.call + +1: "test9" +4: "test9" has unsupported operation: llvm.call + +1: "test10" +4: "test10" has unsupported operation after optimization: llvm.call + +1: "test11" +4: "test11" has unsupported operation: llvm.call + +1: "test12" +4: "test12" has unsupported operation: llvm.call + +1: "memcmp" +5: "memcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-2.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-2.txt new file mode 100644 index 000000000..c1dbaf760 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-2.txt @@ -0,0 +1,10 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "test_nosimplify" +4: "test_nosimplify" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-3.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-3.txt new file mode 100644 index 000000000..2754468a7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-3.txt @@ -0,0 +1,31 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "call_strncmp_ax_bx_uimax_p1" +4: "call_strncmp_ax_bx_uimax_p1" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_ax_bx_uimax_p1" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_ax_bx_uimax_p1" has unsupported operation: llvm.call + +1: "call_strncmp_ax_bx_uimax_p2" +4: "call_strncmp_ax_bx_uimax_p2" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_ax_bx_uimax_p2" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_ax_bx_uimax_p2" has unsupported operation: llvm.call + +1: "fold_strncmp_a12345_2_uimax_p2" +4: "fold_strncmp_a12345_2_uimax_p2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strncmp_a12345_2_uimax_p2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strncmp_a12345_2_uimax_p2" has unsupported operation after optimization: llvm.call + +1: "fold_strncmp_a12345_2_uimax_p3" +4: "fold_strncmp_a12345_2_uimax_p3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strncmp_a12345_2_uimax_p3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strncmp_a12345_2_uimax_p3" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-4.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-4.txt new file mode 100644 index 000000000..416ce77fa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-4.txt @@ -0,0 +1,72 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "fold_strncmp_Aa_b" +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.store + +4: "fold_strncmp_Aa_b" has unsupported operation: llvm.return + +1: "fold_strncmp_Ab_a" +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.store + +4: "fold_strncmp_Ab_a" has unsupported operation: llvm.return + +1: "memcmp" +5: "memcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-5.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-5.txt new file mode 100644 index 000000000..2b651c84f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-5.txt @@ -0,0 +1,199 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "fold_strncmp_a_b_n" +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_b_n" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_b_n" has unsupported operation: llvm.return + +1: "call_strncmp_a_ax_n" +4: "call_strncmp_a_ax_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_a_ax_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strncmp_a_ax_n" has unsupported operation: llvm.call + +4: "call_strncmp_a_ax_n" has unsupported operation: llvm.store + +4: "call_strncmp_a_ax_n" has unsupported operation: llvm.return + +1: "fold_strncmp_a_c_n" +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_c_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_c_n" has unsupported operation: llvm.return + +1: "fold_strncmp_a_d_n" +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_a_d_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_n" has unsupported operation: llvm.return + +1: "fold_strncmp_a_d_nz" +4: "fold_strncmp_a_d_nz" has unsupported operation: llvm.store + +4: "fold_strncmp_a_d_nz" has unsupported operation: llvm.return + +1: "fold_strncmp_d_e_n" +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.store + +4: "fold_strncmp_d_e_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_d_e_n" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.store + +4: "fold_strncmp_d_e_n" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_d_e_n" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.store + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.store + +4: "fold_strncmp_d_e_n" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-6.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-6.txt new file mode 100644 index 000000000..1ee2fd39a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-6.txt @@ -0,0 +1,56 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "fold_strncmp_cst_cst" +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_cst" has unsupported operation: llvm.return + +1: "fold_strncmp_cst_var" +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.sext + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strncmp_cst_var" has unsupported operation: builtin.unregistered: llvm.zext + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.getelementptr + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.store + +4: "fold_strncmp_cst_var" has unsupported operation: llvm.return + +1: "memcmp" +5: "memcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncmp-wrong-datalayout.txt b/SSA/Projects/InstCombine/tests/logs/strncmp-wrong-datalayout.txt new file mode 100644 index 000000000..0d40870da --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncmp-wrong-datalayout.txt @@ -0,0 +1,6 @@ +1: "strncmp" +5: "strncmp" is empty + +1: "test6" +4: "test6" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy-1.txt b/SSA/Projects/InstCombine/tests/logs/strncpy-1.txt new file mode 100644 index 000000000..11adbc517 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy-1.txt @@ -0,0 +1,104 @@ +1: "strncpy" +5: "strncpy" is empty + +1: "puts" +5: "puts" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.alloca + +4: "test_simplify1" has unsupported operation: llvm.store + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "test_simplify1" has unsupported operation: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify6" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "test_simplify7" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.intr.memset + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.store + +4: "test_no_simplify2" has unsupported operation: llvm.return + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify4" +4: "test_no_simplify4" has unsupported operation: llvm.call + +1: "test_no_incompatible_attr" +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: llvm.mlir.addressof + +4: "test_no_incompatible_attr" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "test_no_incompatible_attr" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy-2.txt b/SSA/Projects/InstCombine/tests/logs/strncpy-2.txt new file mode 100644 index 000000000..cc1db17e3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy-2.txt @@ -0,0 +1,12 @@ +1: "strncpy" +5: "strncpy" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy-3.txt b/SSA/Projects/InstCombine/tests/logs/strncpy-3.txt new file mode 100644 index 000000000..e3b0c467e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy-3.txt @@ -0,0 +1,32 @@ +1: "strncpy" +5: "strncpy" is empty + +1: "fill_with_zeros" +4: "fill_with_zeros" has unsupported operation: llvm.store + +4: "fill_with_zeros" has unsupported operation: llvm.return + +1: "fill_with_zeros2" +4: "fill_with_zeros2" has unsupported operation: llvm.store + +4: "fill_with_zeros2" has unsupported operation: llvm.return + +1: "fill_with_zeros3" +4: "fill_with_zeros3" has unsupported operation: llvm.store + +4: "fill_with_zeros3" has unsupported operation: llvm.return + +1: "fill_with_zeros4" +4: "fill_with_zeros4" has unsupported operation: llvm.mlir.addressof + +4: "fill_with_zeros4" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +4: "fill_with_zeros4" has unsupported operation: llvm.return + +1: "no_simplify" +4: "no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "no_simplify" has unsupported operation: llvm.call + +4: "no_simplify" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy-4.txt b/SSA/Projects/InstCombine/tests/logs/strncpy-4.txt new file mode 100644 index 000000000..16a565dcd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy-4.txt @@ -0,0 +1,75 @@ +1: "strncpy" +5: "strncpy" is empty + +1: "sink" +5: "sink" is empty + +1: "fold_strncpy_overlap" +4: "fold_strncpy_overlap" has unsupported operation: llvm.call + +4: "fold_strncpy_overlap" has unsupported operation: llvm.call + +4: "fold_strncpy_overlap" has unsupported operation: llvm.return + +1: "call_strncpy_overlap" +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.call + +4: "call_strncpy_overlap" has unsupported operation: llvm.return + +1: "fold_strncpy_s0" +4: "fold_strncpy_s0" has unsupported operation: llvm.call + +4: "fold_strncpy_s0" has unsupported operation: llvm.store + +4: "fold_strncpy_s0" has unsupported operation: llvm.call + +4: "fold_strncpy_s0" has unsupported operation: llvm.store + +4: "fold_strncpy_s0" has unsupported operation: llvm.call + +4: "fold_strncpy_s0" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "fold_strncpy_s0" has unsupported operation: llvm.call + +4: "fold_strncpy_s0" has unsupported operation: builtin.unregistered: llvm.intr.memset + +4: "fold_strncpy_s0" has unsupported operation: llvm.call + +4: "fold_strncpy_s0" has unsupported operation: llvm.return + +1: "fold_strncpy_s" +4: "fold_strncpy_s" has unsupported operation: llvm.call + +4: "fold_strncpy_s" has unsupported operation: llvm.load + +4: "fold_strncpy_s" has unsupported operation: llvm.store + +4: "fold_strncpy_s" has unsupported operation: llvm.call + +4: "fold_strncpy_s" has unsupported operation: llvm.return + +1: "call_strncpy_s" +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.call + +4: "call_strncpy_s" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy_chk-1.txt b/SSA/Projects/InstCombine/tests/logs/strncpy_chk-1.txt new file mode 100644 index 000000000..6d88e269a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy_chk-1.txt @@ -0,0 +1,41 @@ +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: builtin.unregistered: llvm.intr.memcpy + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "__strncpy_chk" +5: "__strncpy_chk" is empty + +1: "strncpy" +5: "strncpy" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strncpy_chk-2.txt b/SSA/Projects/InstCombine/tests/logs/strncpy_chk-2.txt new file mode 100644 index 000000000..f1b631fd3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strncpy_chk-2.txt @@ -0,0 +1,12 @@ +1: "test_no_simplify" +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify" has unsupported operation: llvm.call + +4: "test_no_simplify" has unsupported operation: llvm.return + +1: "__strncpy_chk" +5: "__strncpy_chk" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strndup.txt b/SSA/Projects/InstCombine/tests/logs/strndup.txt new file mode 100644 index 000000000..7c7dff5a9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strndup.txt @@ -0,0 +1,36 @@ +1: "strndup" +5: "strndup" is empty + +1: "test1" +4: "test1" has unsupported operation: llvm.mlir.addressof + +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: llvm.mlir.addressof + +4: "test3" has unsupported operation: llvm.call + +1: "test4" +4: "test4" has unsupported operation: llvm.mlir.addressof + +4: "test4" has unsupported operation: llvm.call + +1: "test5" +4: "test5" has unsupported operation: llvm.mlir.addressof + +4: "test5" has unsupported operation: llvm.call + +1: "test6" +4: "test6" has unsupported operation: llvm.mlir.addressof + +4: "test6" has unsupported operation: llvm.call + +1: "strdup" +5: "strdup" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strnlen-1.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-1.txt new file mode 100644 index 000000000..3d1946201 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-1.txt @@ -0,0 +1,74 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "no_access_strnlen_p_n" +4: "no_access_strnlen_p_n" has unsupported operation: llvm.call + +1: "access_strnlen_p_2" +4: "access_strnlen_p_2" has unsupported operation: llvm.call + +1: "access_strnlen_p_nz" +4: "access_strnlen_p_nz" has unsupported operation: llvm.call + +1: "fold_strnlen_ax_0" +4: "fold_strnlen_ax_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_ax_0" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_ax_1" +4: "fold_strnlen_ax_1" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_1" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_strnlen_ax_1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_strnlen_s5_0" +4: "fold_strnlen_s5_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_0" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_4" +4: "fold_strnlen_s5_4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_4" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_5" +4: "fold_strnlen_s5_5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_5" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_m1" +4: "fold_strnlen_s5_m1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_m1" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_3_p4_5" +4: "fold_strnlen_s5_3_p4_5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_3_p4_5" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_s5_3_p4_5" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_3_p5_5" +4: "fold_strnlen_s5_3_p5_5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_3_p5_5" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_s5_3_p5_5" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_3_p6_3" +4: "fold_strnlen_s5_3_p6_3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_3_p6_3" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_s5_3_p6_3" has unsupported operation after optimization: llvm.call + +1: "call_strnlen_s5_3_p6_4" +4: "call_strnlen_s5_3_p6_4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "call_strnlen_s5_3_p6_4" has unsupported operation after optimization: llvm.getelementptr + +4: "call_strnlen_s5_3_p6_4" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt new file mode 100644 index 000000000..699fe99ef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-2.txt @@ -0,0 +1,121 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "fold_strnlen_s3_s5_0" +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: 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" +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: 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" +4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: llvm.mlir.addressof + +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 + +4: "fold_strnlen_s3_s5_1_asan" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_strnlen_s3_s5_3" +4: "fold_strnlen_s3_s5_3" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strnlen_s3_s5_4" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strnlen_s3_s5_5" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strnlen_s5_6" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_4" has unsupported operation: llvm.mlir.addressof + +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.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" +4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_6" has unsupported operation: llvm.mlir.addressof + +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.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" +4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_s5_s7_8" has unsupported operation: llvm.mlir.addressof + +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.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-3.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-3.txt new file mode 100644 index 000000000..45e32a21b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-3.txt @@ -0,0 +1,98 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "fold_strnlen_sx_pi_0" +4: "fold_strnlen_sx_pi_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_sx_pi_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_sx_pi_0" has unsupported operation after optimization: llvm.call + +1: "call_strnlen_sx_pi_n" +4: "call_strnlen_sx_pi_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_sx_pi_n" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_sx_pi_n" has unsupported operation: llvm.call + +1: "call_strnlen_a3_pi_2" +4: "call_strnlen_a3_pi_2" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_a3_pi_2" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_a3_pi_2" has unsupported operation: llvm.call + +1: "call_strnlen_a3_pi_3" +4: "call_strnlen_a3_pi_3" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_a3_pi_3" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_a3_pi_3" has unsupported operation: llvm.call + +1: "fold_strnlen_s3_pi_0" +4: "fold_strnlen_s3_pi_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s3_pi_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_s3_pi_0" has unsupported operation after optimization: llvm.call + +1: "call_strnlen_s5_pi_0" +4: "call_strnlen_s5_pi_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "call_strnlen_s5_pi_0" has unsupported operation after optimization: llvm.call + +1: "fold_strnlen_s5_3_pi_0" +4: "fold_strnlen_s5_3_pi_0" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_s5_3_pi_0" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_strnlen_s5_3_pi_0" has unsupported operation after optimization: llvm.call + +1: "call_strnlen_s5_3_pi_n" +4: "call_strnlen_s5_3_pi_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_s5_3_pi_n" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_s5_3_pi_n" has unsupported operation: llvm.call + +1: "fold_strnlen_a3_n" +4: "fold_strnlen_a3_n" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "fold_strnlen_s3_n" +4: "fold_strnlen_s3_n" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "fold_strnlen_a3_pi_2" +4: "fold_strnlen_a3_pi_2" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_a3_pi_2" has unsupported operation: llvm.getelementptr + +4: "fold_strnlen_a3_pi_2" has unsupported operation: llvm.call + +1: "fold_strnlen_s3_pi_2" +4: "fold_strnlen_s3_pi_2" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_pi_2" has unsupported operation: llvm.getelementptr + +4: "fold_strnlen_s3_pi_2" has unsupported operation: llvm.call + +1: "fold_strnlen_s3_pi_3" +4: "fold_strnlen_s3_pi_3" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_pi_3" has unsupported operation: llvm.getelementptr + +4: "fold_strnlen_s3_pi_3" has unsupported operation: llvm.call + +1: "fold_strnlen_s3_pi_n" +4: "fold_strnlen_s3_pi_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_pi_n" has unsupported operation: llvm.getelementptr + +4: "fold_strnlen_s3_pi_n" has unsupported operation: llvm.call + +1: "call_strnlen_s5_3_pi_2" +4: "call_strnlen_s5_3_pi_2" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_s5_3_pi_2" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_s5_3_pi_2" 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 new file mode 100644 index 000000000..39408ad1b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-4.txt @@ -0,0 +1,45 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "fold_strnlen_s3_pi_s5_n" +4: "fold_strnlen_s3_pi_s5_n" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_s3_pi_s5_n" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_strnlen_s3_pi_xbounds_s5_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_s3_pi_xbounds_s5_n" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_strnlen_s3_pi_sx_n" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_s3_pi_sx_n" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_strnlen_s3_s5_pi_n" has unsupported operation: llvm.mlir.addressof + +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/strnlen-5.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-5.txt new file mode 100644 index 000000000..e47040786 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-5.txt @@ -0,0 +1,94 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "fold_strnlen_ax_0_eqz" +4: "fold_strnlen_ax_0_eqz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_ax_0_eqz" has unsupported operation after optimization: llvm.call + +4: "fold_strnlen_ax_0_eqz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_0_gtz" +4: "fold_strnlen_ax_0_gtz" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_strnlen_ax_0_gtz" has unsupported operation after optimization: llvm.call + +4: "fold_strnlen_ax_0_gtz" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_1_eqz" +4: "fold_strnlen_ax_1_eqz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_1_eqz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_1_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_1_lt1" +4: "fold_strnlen_ax_1_lt1" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_1_lt1" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_1_lt1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_1_neqz" +4: "fold_strnlen_ax_1_neqz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_1_neqz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_1_neqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_1_gtz" +4: "fold_strnlen_ax_1_gtz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_1_gtz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_1_gtz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_9_eqz" +4: "fold_strnlen_ax_9_eqz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_9_eqz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_9_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_strnlen_ax_n_eqz" +4: "call_strnlen_ax_n_eqz" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_ax_n_eqz" has unsupported operation: llvm.call + +4: "call_strnlen_ax_n_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_nz_eqz" +4: "fold_strnlen_ax_nz_eqz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_nz_eqz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_nz_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_ax_nz_gtz" +4: "fold_strnlen_ax_nz_gtz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_ax_nz_gtz" has unsupported operation: llvm.load + +4: "fold_strnlen_ax_nz_gtz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_a5_pi_nz_eqz" +4: "fold_strnlen_a5_pi_nz_eqz" has unsupported operation: llvm.mlir.addressof + +4: "fold_strnlen_a5_pi_nz_eqz" has unsupported operation: llvm.getelementptr + +4: "fold_strnlen_a5_pi_nz_eqz" has unsupported operation: llvm.load + +4: "fold_strnlen_a5_pi_nz_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "fold_strnlen_s5_pi_nz_eqz" +4: "fold_strnlen_s5_pi_nz_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "call_strnlen_s5_pi_n_eqz" +4: "call_strnlen_s5_pi_n_eqz" has unsupported operation: llvm.mlir.addressof + +4: "call_strnlen_s5_pi_n_eqz" has unsupported operation: llvm.getelementptr + +4: "call_strnlen_s5_pi_n_eqz" has unsupported operation: llvm.call + +4: "call_strnlen_s5_pi_n_eqz" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/strnlen-6.txt b/SSA/Projects/InstCombine/tests/logs/strnlen-6.txt new file mode 100644 index 000000000..929b742fe --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strnlen-6.txt @@ -0,0 +1,24 @@ +1: "strnlen" +5: "strnlen" is empty + +1: "deref_strnlen_ecp_3" +4: "deref_strnlen_ecp_3" has unsupported operation: llvm.mlir.addressof + +4: "deref_strnlen_ecp_3" has unsupported operation: llvm.load + +4: "deref_strnlen_ecp_3" has unsupported operation: llvm.call + +1: "deref_strnlen_ecp_nz" +4: "deref_strnlen_ecp_nz" has unsupported operation: llvm.mlir.addressof + +4: "deref_strnlen_ecp_nz" has unsupported operation: llvm.load + +4: "deref_strnlen_ecp_nz" has unsupported operation: llvm.call + +1: "noderef_strnlen_ecp_n" +4: "noderef_strnlen_ecp_n" has unsupported operation: llvm.mlir.addressof + +4: "noderef_strnlen_ecp_n" has unsupported operation: llvm.load + +4: "noderef_strnlen_ecp_n" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strpbrk-1.txt b/SSA/Projects/InstCombine/tests/logs/strpbrk-1.txt new file mode 100644 index 000000000..dd3e78176 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strpbrk-1.txt @@ -0,0 +1,23 @@ +1: "strpbrk" +5: "strpbrk" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.zero + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.zero + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.getelementptr + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.call + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "strchr" +5: "strchr" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strpbrk-2.txt b/SSA/Projects/InstCombine/tests/logs/strpbrk-2.txt new file mode 100644 index 000000000..99b4a94b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strpbrk-2.txt @@ -0,0 +1,10 @@ +1: "strpbrk" +5: "strpbrk" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strrchr-1.txt b/SSA/Projects/InstCombine/tests/logs/strrchr-1.txt new file mode 100644 index 000000000..f0862db33 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strrchr-1.txt @@ -0,0 +1,65 @@ +1: "strrchr" +5: "strrchr" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.getelementptr + +4: "test_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation: llvm.store + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.zero + +4: "test_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation: llvm.store + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.getelementptr + +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.store + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.getelementptr + +4: "test_simplify4" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation: llvm.store + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_xform_to_memrchr" +4: "test_xform_to_memrchr" has unsupported operation: llvm.mlir.addressof + +4: "test_xform_to_memrchr" has unsupported operation: llvm.mlir.addressof + +4: "test_xform_to_memrchr" has unsupported operation: llvm.call + +4: "test_xform_to_memrchr" has unsupported operation: llvm.store + +4: "test_xform_to_memrchr" has unsupported operation: llvm.return + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "memrchr" +5: "memrchr" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strrchr-2.txt b/SSA/Projects/InstCombine/tests/logs/strrchr-2.txt new file mode 100644 index 000000000..cb8fb7e62 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strrchr-2.txt @@ -0,0 +1,14 @@ +1: "strrchr" +5: "strrchr" is empty + +1: "test_nosimplify1" +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_nosimplify1" has unsupported operation: llvm.call + +4: "test_nosimplify1" has unsupported operation: llvm.store + +4: "test_nosimplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt b/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt new file mode 100644 index 000000000..6d3ecbfdf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strrchr-3.txt @@ -0,0 +1,40 @@ +1: "strrchr" +5: "strrchr" is empty + +1: "fold_strrchr_sp10_x" +4: "fold_strrchr_sp10_x" has unsupported operation: llvm.mlir.addressof + +4: "fold_strrchr_sp10_x" has unsupported operation: llvm.getelementptr + +4: "fold_strrchr_sp10_x" has unsupported operation: llvm.mlir.zero + +4: "fold_strrchr_sp10_x" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +4: "call_strrchr_sp9_x" has unsupported operation: llvm.getelementptr + +4: "call_strrchr_sp9_x" has unsupported operation: llvm.call + +1: "call_strrchr_sp2_x" +4: "call_strrchr_sp2_x" has unsupported operation: llvm.mlir.addressof + +4: "call_strrchr_sp2_x" has unsupported operation: llvm.getelementptr + +4: "call_strrchr_sp2_x" has unsupported operation: llvm.call + +1: "call_strrchr_sp1_x" +4: "call_strrchr_sp1_x" has unsupported operation: llvm.mlir.addressof + +4: "call_strrchr_sp1_x" has unsupported operation: llvm.getelementptr + +4: "call_strrchr_sp1_x" has unsupported operation: llvm.call + +1: "memrchr" +5: "memrchr" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strspn-1.txt b/SSA/Projects/InstCombine/tests/logs/strspn-1.txt new file mode 100644 index 000000000..2ab6f72ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strspn-1.txt @@ -0,0 +1,23 @@ +1: "strspn" +5: "strspn" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strstr-1.txt b/SSA/Projects/InstCombine/tests/logs/strstr-1.txt new file mode 100644 index 000000000..8ca89e2da --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strstr-1.txt @@ -0,0 +1,41 @@ +1: "strstr" +5: "strstr" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation: llvm.getelementptr + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1" +4: "test1" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: llvm.call + +1: "strchr" +5: "strchr" is empty + +1: "strlen" +5: "strlen" is empty + +1: "strncmp" +5: "strncmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/strstr-2.txt b/SSA/Projects/InstCombine/tests/logs/strstr-2.txt new file mode 100644 index 000000000..d0d2607d1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strstr-2.txt @@ -0,0 +1,8 @@ +1: "strstr" +5: "strstr" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/strto-1.txt b/SSA/Projects/InstCombine/tests/logs/strto-1.txt new file mode 100644 index 000000000..621b2c2e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/strto-1.txt @@ -0,0 +1,75 @@ +1: "strtol" +5: "strtol" is empty + +1: "strtod" +5: "strtod" is empty + +1: "strtof" +5: "strtof" is empty + +1: "strtoul" +5: "strtoul" is empty + +1: "strtoll" +5: "strtoll" is empty + +1: "strtold" +5: "strtold" is empty + +1: "strtoull" +5: "strtoull" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation: llvm.mlir.zero + +4: "test_simplify1" has unsupported operation: llvm.call + +4: "test_simplify1" has unsupported operation: llvm.return + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation: llvm.mlir.zero + +4: "test_simplify2" has unsupported operation: llvm.call + +4: "test_simplify2" has unsupported operation: llvm.return + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation: llvm.mlir.zero + +4: "test_simplify3" has unsupported operation: llvm.call + +4: "test_simplify3" has unsupported operation: llvm.return + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation: llvm.mlir.zero + +4: "test_simplify4" has unsupported operation: llvm.call + +4: "test_simplify4" has unsupported operation: llvm.return + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation: llvm.mlir.zero + +4: "test_simplify5" has unsupported operation: llvm.call + +4: "test_simplify5" has unsupported operation: llvm.return + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.mlir.zero + +4: "test_simplify6" has unsupported operation: llvm.call + +4: "test_simplify6" has unsupported operation: llvm.return + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation: llvm.mlir.zero + +4: "test_simplify7" has unsupported operation: llvm.call + +4: "test_simplify7" has unsupported operation: llvm.return + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.call + +4: "test_no_simplify1" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-2.txt b/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-2.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-new.txt b/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa-new.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa.txt b/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa.txt new file mode 100644 index 000000000..361584f05 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/struct-assign-tbaa.txt @@ -0,0 +1,33 @@ +1: "test1" +4: "test1" has unsupported operation: llvm.load + +4: "test1" has unsupported operation: llvm.store + +4: "test1" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2" has unsupported operation: llvm.store + +1: "test3_multiple_fields" +4: "test3_multiple_fields" has unsupported operation: llvm.load + +4: "test3_multiple_fields" has unsupported operation: llvm.store + +4: "test3_multiple_fields" has unsupported operation: llvm.return + +1: "test4_multiple_copy_first_field" +4: "test4_multiple_copy_first_field" has unsupported operation: llvm.load + +4: "test4_multiple_copy_first_field" has unsupported operation: llvm.store + +4: "test4_multiple_copy_first_field" has unsupported operation: llvm.return + +1: "test5_multiple_copy_more_than_first_field" +4: "test5_multiple_copy_more_than_first_field" has unsupported operation: llvm.load + +4: "test5_multiple_copy_more_than_first_field" has unsupported operation: llvm.store + +4: "test5_multiple_copy_more_than_first_field" has unsupported operation: llvm.return + 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 new file mode 100644 index 000000000..be4a7d56f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-and-or-neg-xor.txt @@ -0,0 +1,41 @@ +1: "use" +5: "use" is empty + +1: "sub_to_xor" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_extra_use_sub" +4: "sub_to_xor_extra_use_sub" has unsupported operation: llvm.call + +1: "sub_to_xor_extra_use_and" +4: "sub_to_xor_extra_use_and" has unsupported operation: llvm.call + +1: "sub_to_xor_extra_use_or" +4: "sub_to_xor_extra_use_or" has unsupported operation: llvm.call + +1: "sub_to_xor_or_commuted" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_and_commuted" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_vec" +"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 + +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 new file mode 100644 index 000000000..3d2c65655 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-ashr-and-to-icmp-select.txt @@ -0,0 +1,79 @@ +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" +4: "sub_ashr_and_i32_extra_use_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_ashr_and_i32_extra_use_ashr" has unsupported operation: builtin.unregistered: llvm.sext + +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 new file mode 100644 index 000000000..5e04a088b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-ashr-or-to-icmp-select.txt @@ -0,0 +1,131 @@ +1: "clamp255_i32" +4: "clamp255_i32" has unsupported operation: builtin.unregistered: llvm.intr.smin + +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 + +4: "neg_or_ashr_i32" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "neg_or_ashr_i32_commute" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "neg_or_ashr_i32_vec" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +4: "neg_or_ashr_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sub_ashr_or_i32_extra_use_sub" +4: "sub_ashr_or_i32_extra_use_sub" has unsupported operation: llvm.store + +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" +4: "neg_extra_use_or_ashr_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_extra_use_or_ashr_i32" has unsupported operation: builtin.unregistered: llvm.sext + +4: "neg_extra_use_or_ashr_i32" has unsupported operation: llvm.store + +1: "sub_ashr_or_i32_extra_use_ashr" +4: "sub_ashr_or_i32_extra_use_ashr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_ashr_or_i32_extra_use_ashr" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sub_ashr_or_i32_extra_use_ashr" has unsupported operation: llvm.store + +1: "sub_ashr_or_i32_no_nsw_nuw" +7: "sub_ashr_or_i32_no_nsw_nuw" is unchanged by InstCombine + +1: "neg_or_extra_use_ashr_i32" +4: "neg_or_extra_use_ashr_i32" has unsupported operation: llvm.store + +1: "sub_ashr_or_i32_vec_undef1" +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: llvm.mlir.undef + +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef1" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_ashr_or_i32_vec_undef2" +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: llvm.mlir.undef + +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "sub_ashr_or_i32_vec_undef2" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "sub_ashr_or_i32_shift_wrong_bit" +7: "sub_ashr_or_i32_shift_wrong_bit" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-from-sub.txt b/SSA/Projects/InstCombine/tests/logs/sub-from-sub.txt new file mode 100644 index 000000000..4a2a40d6d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-from-sub.txt @@ -0,0 +1,130 @@ +1: "use8" +5: "use8" is empty + +1: "t0" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_nuw_only" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_sub_nsw_sub" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_nuw_first" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_nuw_second" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_nuw_nsw_first" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t1_flags_nuw_nsw_second" +2: llvm.func +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +1: "t3_c0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t4_c1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t5_c2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t6_c0_extrause" +4: "t6_c0_extrause" has unsupported operation: llvm.call + +1: "t7_c1_extrause" +4: "t7_c1_extrause" has unsupported operation: llvm.call + +1: "t8_c2_extrause" +4: "t8_c2_extrause" has unsupported operation: llvm.call + +1: "t9_c0_c2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t10_c1_c2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "t11_c0_c2_extrause" +4: "t11_c0_c2_extrause" has unsupported operation: llvm.call + +1: "t12_c1_c2_exrause" +4: "t12_c1_c2_exrause" has unsupported operation: llvm.call + +1: "constantexpr0" +4: "constantexpr0" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr0" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "constantexpr1" +4: "constantexpr1" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr1" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "constantexpr2" +4: "constantexpr2" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "constantexpr2" has unsupported operation: llvm.mlir.addressof + +4: "constantexpr2" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "pr49870" +4: "pr49870" has unsupported operation: llvm.mlir.addressof + +4: "pr49870" has unsupported operation: builtin.unregistered: llvm.ptrtoint + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-gep.txt b/SSA/Projects/InstCombine/tests/logs/sub-gep.txt new file mode 100644 index 000000000..f9f442ce3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-gep.txt @@ -0,0 +1,264 @@ +1: "test_inbounds" +4: "test_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_partial_inbounds1" +4: "test_partial_inbounds1" has unsupported operation after optimization: llvm.getelementptr + +4: "test_partial_inbounds1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_partial_inbounds1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_partial_inbounds2" +4: "test_partial_inbounds2" has unsupported operation after optimization: llvm.getelementptr + +4: "test_partial_inbounds2" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_partial_inbounds2" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_nuw" +4: "test_inbounds_nuw" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_nuw" +4: "test_nuw" has unsupported operation after optimization: llvm.getelementptr + +4: "test_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_nuw" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_nuw_trunc" +4: "test_inbounds_nuw_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test_inbounds_nuw_swapped" +4: "test_inbounds_nuw_swapped" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds1_nuw_swapped" +4: "test_inbounds1_nuw_swapped" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds1_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds1_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds2_nuw_swapped" +4: "test_inbounds2_nuw_swapped" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds2_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds2_nuw_swapped" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_two_gep" +4: "test_inbounds_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_nsw_two_gep" +4: "test_inbounds_nsw_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nsw_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nsw_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_nsw_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_nuw_two_gep" +4: "test_inbounds_nuw_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nuw_two_gep" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nuw_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_nuw_two_gep" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test_inbounds_nuw_multi_index" +4: "test_inbounds_nuw_multi_index" has unsupported operation after optimization: llvm.getelementptr + +4: "test_inbounds_nuw_multi_index" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test_inbounds_nuw_multi_index" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test23" +4: "test23" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test23_as1" +4: "test23_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test24" +4: "test24" has unsupported operation after optimization: llvm.getelementptr + +4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test24" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test24_as1" +4: "test24_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test24_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test24_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test24a" +4: "test24a" has unsupported operation after optimization: llvm.getelementptr + +4: "test24a" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test24a" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test24a_as1" +4: "test24a_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test24a_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test24a_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test24b" +4: "test24b" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test24b" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test24b" has unsupported operation after optimization: llvm.getelementptr + +4: "test24b" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test25" +4: "test25" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test25" has unsupported operation after optimization: llvm.getelementptr + +4: "test25" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test25" has unsupported operation after optimization: llvm.getelementptr + +4: "test25" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test25_as1" +4: "test25_as1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test30" +4: "test30" has unsupported operation after optimization: llvm.getelementptr + +4: "test30" has unsupported operation after optimization: llvm.getelementptr + +4: "test30" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test30" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "test30_as1" +4: "test30_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test30_as1" has unsupported operation after optimization: llvm.getelementptr + +4: "test30_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "test30_as1" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "gep_diff_both_inbounds" +4: "gep_diff_both_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_both_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_both_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "gep_diff_both_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "gep_diff_first_inbounds" +4: "gep_diff_first_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_first_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_first_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "gep_diff_first_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "gep_diff_second_inbounds" +4: "gep_diff_second_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_second_inbounds" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_second_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "gep_diff_second_inbounds" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "gep_diff_with_bitcast" +4: "gep_diff_with_bitcast" has unsupported operation after optimization: llvm.getelementptr + +4: "gep_diff_with_bitcast" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "gep_diff_with_bitcast" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +1: "sub_scalable" +4: "sub_scalable" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "sub_scalable2" +4: "sub_scalable2" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "sub_scalable2" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "nullptrtoint_scalable_c" +4: "nullptrtoint_scalable_c" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "nullptrtoint_scalable_x" +4: "nullptrtoint_scalable_x" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "_gep_phi1" +4: "_gep_phi1" has unsupported operation: llvm.mlir.zero + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi1" has unsupported operation: llvm.load + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi1" has unsupported operation: llvm.getelementptr + +4: "_gep_phi1" has unsupported operation: llvm.load + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi1" has unsupported operation: builtin.unregistered: llvm.br + +1: "_gep_phi2" +4: "_gep_phi2" has unsupported operation: llvm.mlir.zero + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi2" has unsupported operation: llvm.load + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi2" has unsupported operation: llvm.getelementptr + +4: "_gep_phi2" has unsupported operation: llvm.load + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.br + +4: "_gep_phi2" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-lshr-or-to-icmp-select.txt b/SSA/Projects/InstCombine/tests/logs/sub-lshr-or-to-icmp-select.txt new file mode 100644 index 000000000..6ae970a09 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-lshr-or-to-icmp-select.txt @@ -0,0 +1,30 @@ +1: "neg_or_lshr_i32" +4: "neg_or_lshr_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_or_lshr_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_or_lshr_i32_commute" +4: "neg_or_lshr_i32_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_or_lshr_i32_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_or_lshr_i32_vec" +4: "neg_or_lshr_i32_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_or_lshr_i32_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_or_lshr_i32_vec_commute" +4: "neg_or_lshr_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_or_lshr_i32_vec_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "neg_extra_use_or_lshr_i32" +4: "neg_extra_use_or_lshr_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_extra_use_or_lshr_i32" has unsupported operation: builtin.unregistered: llvm.zext + +4: "neg_extra_use_or_lshr_i32" has unsupported operation: llvm.store + +1: "neg_or_extra_use_lshr_i32" +4: "neg_or_extra_use_lshr_i32" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-minmax.txt b/SSA/Projects/InstCombine/tests/logs/sub-minmax.txt new file mode 100644 index 000000000..0bf477724 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-minmax.txt @@ -0,0 +1,338 @@ +1: "max_na_b_minux_na" +4: "max_na_b_minux_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "na_minus_max_na_b" +4: "na_minus_max_na_b" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_umin" +4: "sub_umin" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_umin_commute_vec" +4: "sub_umin_commute_vec" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_umin_uses" +4: "sub_umin_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "sub_umin_uses" has unsupported operation: llvm.store + +1: "sub_umin_no_common_op" +4: "sub_umin_no_common_op" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "max_b_na_minus_na" +4: "max_b_na_minus_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "na_minus_max_b_na" +4: "na_minus_max_b_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_na_bi_minux_na" +4: "max_na_bi_minux_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "na_minus_max_na_bi" +4: "na_minus_max_na_bi" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_bi_na_minus_na" +4: "max_bi_na_minus_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "na_minus_max_bi_na" +4: "na_minus_max_bi_na" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_na_bi_minux_na_use" +4: "max_na_bi_minux_na_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "max_na_bi_minux_na_use" has unsupported operation: llvm.call + +1: "na_minus_max_na_bi_use" +4: "na_minus_max_na_bi_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "na_minus_max_na_bi_use" has unsupported operation: llvm.call + +1: "max_bi_na_minus_na_use" +4: "max_bi_na_minus_na_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "max_bi_na_minus_na_use" has unsupported operation: llvm.call + +1: "na_minus_max_bi_na_use" +4: "na_minus_max_bi_na_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "na_minus_max_bi_na_use" has unsupported operation: llvm.call + +1: "max_na_bi_minux_na_use2" +4: "max_na_bi_minux_na_use2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "max_na_bi_minux_na_use2" has unsupported operation: llvm.call + +4: "max_na_bi_minux_na_use2" has unsupported operation: llvm.call + +1: "na_minus_max_na_bi_use2" +4: "na_minus_max_na_bi_use2" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "na_minus_max_na_bi_use2" has unsupported operation: llvm.call + +4: "na_minus_max_na_bi_use2" has unsupported operation: llvm.call + +1: "max_bi_na_minus_na_use2" +4: "max_bi_na_minus_na_use2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "max_bi_na_minus_na_use2" has unsupported operation: llvm.call + +4: "max_bi_na_minus_na_use2" has unsupported operation: llvm.call + +1: "na_minus_max_bi_na_use2" +4: "na_minus_max_bi_na_use2" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "na_minus_max_bi_na_use2" has unsupported operation: llvm.call + +4: "na_minus_max_bi_na_use2" has unsupported operation: llvm.call + +1: "umin_not_sub" +4: "umin_not_sub" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin_not_sub" has unsupported operation: llvm.call + +4: "umin_not_sub" has unsupported operation: llvm.call + +1: "umin_not_sub_rev" +4: "umin_not_sub_rev" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin_not_sub_rev" has unsupported operation: llvm.call + +4: "umin_not_sub_rev" has unsupported operation: llvm.call + +1: "umin3_not_all_ops_extra_uses_invert_subs" +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: llvm.call + +4: "umin3_not_all_ops_extra_uses_invert_subs" has unsupported operation: llvm.return + +1: "umin_not_sub_intrinsic_commute0" +4: "umin_not_sub_intrinsic_commute0" has unsupported operation: llvm.call + +4: "umin_not_sub_intrinsic_commute0" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umin_not_sub_intrinsic_commute0" has unsupported operation: llvm.call + +1: "umax_not_sub_intrinsic_commute1" +4: "umax_not_sub_intrinsic_commute1" has unsupported operation: llvm.call + +4: "umax_not_sub_intrinsic_commute1" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umax_not_sub_intrinsic_commute1" has unsupported operation: llvm.call + +1: "smin_not_sub_intrinsic_commute2" +4: "smin_not_sub_intrinsic_commute2" has unsupported operation: llvm.call + +4: "smin_not_sub_intrinsic_commute2" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "smin_not_sub_intrinsic_commute2" has unsupported operation: llvm.call + +1: "smax_not_sub_intrinsic_commute3" +4: "smax_not_sub_intrinsic_commute3" has unsupported operation: llvm.call + +4: "smax_not_sub_intrinsic_commute3" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "smax_not_sub_intrinsic_commute3" has unsupported operation: llvm.call + +1: "umin_not_sub_intrinsic_uses" +4: "umin_not_sub_intrinsic_uses" has unsupported operation: llvm.call + +4: "umin_not_sub_intrinsic_uses" has unsupported operation: llvm.call + +4: "umin_not_sub_intrinsic_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_not_sub_intrinsic_uses" has unsupported operation: llvm.call + +1: "umax_sub_op0" +4: "umax_sub_op0" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umax_sub_op0_vec_commute" +4: "umax_sub_op0_vec_commute" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umax_sub_op0_use" +4: "umax_sub_op0_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sub_op0_use" has unsupported operation: llvm.call + +1: "umax_sub_op1" +4: "umax_sub_op1" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umax_sub_op1_vec_commute" +4: "umax_sub_op1_vec_commute" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umax_sub_op1_use" +4: "umax_sub_op1_use" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "umax_sub_op1_use" has unsupported operation: llvm.call + +1: "umin_sub_op1" +4: "umin_sub_op1" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umin_sub_op1_commute" +4: "umin_sub_op1_commute" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umin_sub_op0" +4: "umin_sub_op0" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umin_sub_op0_commute" +4: "umin_sub_op0_commute" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "umin_sub_op1_use" +4: "umin_sub_op1_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sub_op1_use" has unsupported operation: llvm.call + +1: "umin_sub_op0_use" +4: "umin_sub_op0_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "umin_sub_op0_use" has unsupported operation: llvm.call + +1: "diff_add_smin" +4: "diff_add_smin" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "diff_add_smax" +4: "diff_add_smax" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "diff_add_umin" +4: "diff_add_umin" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "diff_add_umax" +4: "diff_add_umax" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "diff_add_smin_use" +4: "diff_add_smin_use" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "diff_add_smin_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "diff_add_smin_use" has unsupported operation: llvm.call + +1: "diff_add_use_smax" +4: "diff_add_use_smax" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "diff_add_use_smax" has unsupported operation: llvm.call + +1: "diff_add_use_umin_use" +4: "diff_add_use_umin_use" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "diff_add_use_umin_use" has unsupported operation: llvm.call + +4: "diff_add_use_umin_use" has unsupported operation: llvm.call + +1: "sub_add_umin" +4: "sub_add_umin" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_add_umin_commute_umin" +4: "sub_add_umin_commute_umin" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_add_umin_commute_add" +4: "sub_add_umin_commute_add" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_add_umin_commute_add_umin" +4: "sub_add_umin_commute_add_umin" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_add_umin_vec" +4: "sub_add_umin_vec" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "sub_add_umin_mismatch" +4: "sub_add_umin_mismatch" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "sub_add_umin_use_a" +4: "sub_add_umin_use_a" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "sub_add_umin_use_a" has unsupported operation: llvm.call + +1: "sub_add_umin_use_m" +4: "sub_add_umin_use_m" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "sub_add_umin_use_m" has unsupported operation: llvm.call + +1: "sub_smax0_sub_nsw" +4: "sub_smax0_sub_nsw" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "sub_smax0_sub_nsw_use" +4: "sub_smax0_sub_nsw_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sub_smax0_sub_nsw_use" has unsupported operation: llvm.call + +4: "sub_smax0_sub_nsw_use" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "sub_smax0_sub" +4: "sub_smax0_sub" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_smax0_sub_commute" +4: "sub_smax0_sub_commute" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_smin0_sub_nsw_use" +4: "sub_smin0_sub_nsw_use" has unsupported operation: llvm.call + +4: "sub_smin0_sub_nsw_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_smin0_sub_nsw" +4: "sub_smin0_sub_nsw" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "sub_smin0_sub" +4: "sub_smin0_sub" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "sub_smin0_sub_nsw_commute" +4: "sub_smin0_sub_nsw_commute" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "sub_max_min_nsw" +4: "sub_max_min_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_nuw" +4: "sub_max_min_nuw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_nsw_commute" +4: "sub_max_min_nsw_commute" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_nuw_commute" +4: "sub_max_min_nuw_commute" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_vec_nsw" +4: "sub_max_min_vec_nsw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_vec_nuw" +4: "sub_max_min_vec_nuw" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_vec_nsw_commute" +4: "sub_max_min_vec_nsw_commute" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_vec_nuw_commute" +4: "sub_max_min_vec_nuw_commute" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "sub_max_min_multi_use" +4: "sub_max_min_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sub_max_min_multi_use" has unsupported operation: llvm.call + +4: "sub_max_min_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sub_max_min_multi_use" has unsupported operation: llvm.call + +1: "sub_max_min_vec_multi_use" +4: "sub_max_min_vec_multi_use" has unsupported operation: llvm.mlir.addressof + +4: "sub_max_min_vec_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "sub_max_min_vec_multi_use" has unsupported operation: llvm.call + +4: "sub_max_min_vec_multi_use" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "sub_max_min_vec_multi_use" has unsupported operation: llvm.call + +1: "use8" +5: "use8" is empty + +1: "use32" +5: "use32" is empty + +1: "use8v2" +5: "use8v2" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-not.txt b/SSA/Projects/InstCombine/tests/logs/sub-not.txt new file mode 100644 index 000000000..697ff95a1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-not.txt @@ -0,0 +1,55 @@ +1: "use" +5: "use" is empty + +1: "sub_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.return + +1: "sub_not_extra_use" +4: "sub_not_extra_use" has unsupported operation: llvm.call + +1: "sub_not_vec" +"sub_not_vec" contains vectors which are unsupported + +1: "dec_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.add +2: llvm.return + +1: "dec_sub_extra_use" +4: "dec_sub_extra_use" has unsupported operation: llvm.call + +1: "dec_sub_vec" +"dec_sub_vec" contains vectors which are unsupported + +1: "sub_inc" +2: llvm.func +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "sub_inc_extra_use" +4: "sub_inc_extra_use" has unsupported operation: llvm.call + +1: "sub_inc_vec" +"sub_inc_vec" contains vectors which are unsupported + +1: "sub_dec" +2: llvm.func +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "sub_dec_extra_use" +4: "sub_dec_extra_use" has unsupported operation: llvm.call + +1: "sub_dec_vec" +"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 new file mode 100644 index 000000000..1498ad7e8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible-inseltpoison.txt @@ -0,0 +1,479 @@ +1: "use4" +5: "use4" is empty + +1: "use8" +5: "use8" is empty + +1: "use_v2i4" +5: "use_v2i4" is empty + +1: "use32gen1" +5: "use32gen1" is empty + +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.return + +1: "t1" +4: "t1" has unsupported operation: llvm.call + +1: "t2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +1: "t3" +4: "t3" has unsupported operation: llvm.call + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: llvm.call + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "n10" +4: "n10" has unsupported operation: llvm.call + +1: "neg_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "neg_of_sub_from_constant_multi_use" +4: "neg_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_constant_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_from_constant_of_sub_from_constant_multi_use" +4: "sub_from_constant_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_variable_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_from_variable_of_sub_from_constant_multi_use" +4: "sub_from_variable_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "t12" +4: "t12" has unsupported operation: llvm.call + +4: "t12" has unsupported operation: llvm.call + +1: "n13" +4: "n13" has unsupported operation: llvm.call + +1: "n14" +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +1: "neg_of_add_with_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "neg_of_add_with_constant_multi_use" +4: "neg_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_constant_of_add_with_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "sub_from_constant_of_add_with_constant_multi_use" +4: "sub_from_constant_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_variable_of_add_with_constant" +7: "sub_from_variable_of_add_with_constant" is unchanged by InstCombine + +1: "sub_from_variable_of_add_with_constant_multi_use" +4: "sub_from_variable_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "t15" +4: "t15" has unsupported operation: llvm.call + +1: "n16" +4: "n16" has unsupported operation: llvm.call + +4: "n16" has unsupported operation: llvm.call + +1: "t16" +4: "t16" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "t16" has unsupported operation: builtin.unregistered: llvm.br + +4: "t16" has unsupported operation: builtin.unregistered: llvm.br + +1: "n17" +4: "n17" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n17" has unsupported operation: builtin.unregistered: llvm.br + +4: "n17" has unsupported operation: builtin.unregistered: llvm.br + +4: "n17" has unsupported operation: llvm.call + +1: "n19" +4: "n19" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n19" has unsupported operation: builtin.unregistered: llvm.br + +4: "n19" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_with_duplicate_incoming_basic_blocks" +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.switch + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: llvm.call + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: llvm.return + +1: "t20" +4: "t20" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n21" +4: "n21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n21" has unsupported operation: llvm.call + +1: "negate_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "negate_xor_vec" +"negate_xor_vec" contains vectors which are unsupported + +1: "negate_xor_use" +4: "negate_xor_use" has unsupported operation: llvm.call + +1: "negate_shl_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "negate_shl_not_uses" +4: "negate_shl_not_uses" has unsupported operation: llvm.call + +1: "negate_mul_not_uses_vec" +4: "negate_mul_not_uses_vec" has unsupported operation: llvm.call + +1: "negate_sdiv" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sub +2: llvm.return + +1: "negate_sdiv_extrause" +4: "negate_sdiv_extrause" has unsupported operation: llvm.call + +1: "negate_sdiv_extrause2" +4: "negate_sdiv_extrause2" has unsupported operation: llvm.call + +1: "negate_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.sub +2: llvm.return + +1: "negate_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "negate_ashr_extrause" +4: "negate_ashr_extrause" has unsupported operation: llvm.call + +1: "negate_lshr_extrause" +4: "negate_lshr_extrause" has unsupported operation: llvm.call + +1: "negate_ashr_wrongshift" +7: "negate_ashr_wrongshift" is unchanged by InstCombine + +1: "negate_lshr_wrongshift" +7: "negate_lshr_wrongshift" is unchanged by InstCombine + +1: "negate_sext" +4: "negate_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negate_zext" +4: "negate_zext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negate_sext_extrause" +4: "negate_sext_extrause" has unsupported operation: builtin.unregistered: llvm.sext + +4: "negate_sext_extrause" has unsupported operation: llvm.call + +1: "negate_zext_extrause" +4: "negate_zext_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "negate_zext_extrause" has unsupported operation: llvm.call + +1: "negate_sext_wrongwidth" +4: "negate_sext_wrongwidth" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negate_zext_wrongwidth" +4: "negate_zext_wrongwidth" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negate_shufflevector_oneinput_reverse" +4: "negate_shufflevector_oneinput_reverse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_oneinput_reverse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "negate_shufflevector_oneinput_second_lane_is_undef" +4: "negate_shufflevector_oneinput_second_lane_is_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_oneinput_second_lane_is_undef" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "negate_shufflevector_twoinputs" +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_twoinputs" has unsupported operation: llvm.mlir.undef + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "negate_shufflevector_oneinput_extrause" +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: llvm.call + +1: "negation_of_zeroext_of_nonnegative" +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_zeroext_of_positive" +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_signext_of_negative" +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negation_of_signext_of_nonpositive" +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negation_of_signext_of_nonnegative__wrong_cast" +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_zeroext_of_negative_wrongcast" +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_increment_via_or_with_no_common_bits_set" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.sub +2: llvm.return + +1: "negation_of_increment_via_or_with_no_common_bits_set_extrause" +4: "negation_of_increment_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +1: "negation_of_increment_via_or_common_bits_set" +7: "negation_of_increment_via_or_common_bits_set" is unchanged by InstCombine + +1: "add_via_or_with_no_common_bits_set" +4: "add_via_or_with_no_common_bits_set" has unsupported operation: llvm.call + +1: "add_via_or_with_common_bit_maybe_set" +4: "add_via_or_with_common_bit_maybe_set" has unsupported operation: llvm.call + +1: "add_via_or_with_no_common_bits_set_extrause" +4: "add_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +4: "add_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +1: "negate_extractelement" +4: "negate_extractelement" has unsupported operation: llvm.call + +4: "negate_extractelement" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "negate_extractelement_extrause" +4: "negate_extractelement_extrause" has unsupported operation: llvm.call + +4: "negate_extractelement_extrause" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "negate_extractelement_extrause" has unsupported operation: llvm.call + +1: "negate_insertelement" +4: "negate_insertelement" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_insertelement_extrause" +4: "negate_insertelement_extrause" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_insertelement_extrause" has unsupported operation: llvm.call + +1: "negate_insertelement_nonnegatible_base" +4: "negate_insertelement_nonnegatible_base" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_insertelement_nonnegatible_insert" +4: "negate_insertelement_nonnegatible_insert" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_left_shift_by_constant_prefer_keeping_shl" +4: "negate_left_shift_by_constant_prefer_keeping_shl" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" +4: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" has unsupported operation: llvm.call + +4: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant" +4: "negate_left_shift_by_constant" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant_extrause" +4: "negate_left_shift_by_constant_extrause" has unsupported operation: llvm.call + +4: "negate_left_shift_by_constant_extrause" has unsupported operation: llvm.call + +1: "negate_add_with_single_negatible_operand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "negate_add_with_single_negatible_operand_depth2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "negate_add_with_single_negatible_operand_extrause" +4: "negate_add_with_single_negatible_operand_extrause" has unsupported operation: llvm.call + +1: "negate_add_with_single_negatible_operand_non_negation" +7: "negate_add_with_single_negatible_operand_non_negation" is unchanged by InstCombine + +1: "negate_abs" +4: "negate_abs" has unsupported operation: llvm.call + +4: "negate_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "negate_nabs" +4: "negate_nabs" has unsupported operation: llvm.call + +4: "negate_nabs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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 + +1: "negate_freeze" +4: "negate_freeze" has unsupported operation: builtin.unregistered: llvm.freeze + +1: "negate_freeze_extrause" +4: "negate_freeze_extrause" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "negate_freeze_extrause" has unsupported operation: llvm.call + +1: "noncanonical_mul_with_constant_as_first_operand" +4: "noncanonical_mul_with_constant_as_first_operand" has unsupported operation: builtin.unregistered: llvm.br + +4: "noncanonical_mul_with_constant_as_first_operand" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt new file mode 100644 index 000000000..b49db649c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-of-negatible.txt @@ -0,0 +1,520 @@ +1: "use4" +5: "use4" is empty + +1: "use8" +5: "use8" is empty + +1: "use_v2i4" +5: "use_v2i4" is empty + +1: "use32gen1" +5: "use32gen1" is empty + +1: "t0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.return + +1: "t1" +4: "t1" has unsupported operation: llvm.call + +1: "t2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "n2" +4: "n2" has unsupported operation: llvm.call + +1: "t3" +4: "t3" has unsupported operation: llvm.call + +1: "n3" +4: "n3" has unsupported operation: llvm.call + +4: "n3" has unsupported operation: llvm.call + +1: "t4" +4: "t4" has unsupported operation: builtin.unregistered: llvm.select + +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 + +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 + +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 + +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 +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "n10" +4: "n10" has unsupported operation: llvm.call + +1: "neg_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "neg_of_sub_from_constant_multi_use" +4: "neg_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_constant_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_from_constant_of_sub_from_constant_multi_use" +4: "sub_from_constant_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_variable_of_sub_from_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sub +2: llvm.sub +2: llvm.return + +1: "sub_from_variable_of_sub_from_constant_multi_use" +4: "sub_from_variable_of_sub_from_constant_multi_use" has unsupported operation: llvm.call + +1: "t12" +4: "t12" has unsupported operation: llvm.call + +4: "t12" has unsupported operation: llvm.call + +1: "n13" +4: "n13" has unsupported operation: llvm.call + +1: "n14" +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +1: "neg_of_add_with_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "neg_of_add_with_constant_multi_use" +4: "neg_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_constant_of_add_with_constant" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "sub_from_constant_of_add_with_constant_multi_use" +4: "sub_from_constant_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "sub_from_variable_of_add_with_constant" +7: "sub_from_variable_of_add_with_constant" is unchanged by InstCombine + +1: "sub_from_variable_of_add_with_constant_multi_use" +4: "sub_from_variable_of_add_with_constant_multi_use" has unsupported operation: llvm.call + +1: "t15" +4: "t15" has unsupported operation: llvm.call + +1: "n16" +4: "n16" has unsupported operation: llvm.call + +4: "n16" has unsupported operation: llvm.call + +1: "t16" +4: "t16" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "t16" has unsupported operation: builtin.unregistered: llvm.br + +4: "t16" has unsupported operation: builtin.unregistered: llvm.br + +1: "n17" +4: "n17" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n17" has unsupported operation: builtin.unregistered: llvm.br + +4: "n17" has unsupported operation: builtin.unregistered: llvm.br + +4: "n17" has unsupported operation: llvm.call + +1: "n19" +4: "n19" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "n19" has unsupported operation: builtin.unregistered: llvm.br + +4: "n19" has unsupported operation: builtin.unregistered: llvm.br + +1: "phi_with_duplicate_incoming_basic_blocks" +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.switch + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: llvm.call + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "phi_with_duplicate_incoming_basic_blocks" has unsupported operation: llvm.return + +1: "t20" +4: "t20" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n21" +4: "n21" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n21" has unsupported operation: llvm.call + +1: "negate_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "negate_xor_vec" +"negate_xor_vec" contains vectors which are unsupported + +1: "negate_xor_use" +4: "negate_xor_use" has unsupported operation: llvm.call + +1: "negate_shl_xor" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.shl +2: llvm.sub +2: llvm.return + +1: "negate_shl_not_uses" +4: "negate_shl_not_uses" has unsupported operation: llvm.call + +1: "negate_mul_not_uses_vec" +4: "negate_mul_not_uses_vec" has unsupported operation: llvm.call + +1: "negate_sdiv" +2: llvm.func +2: llvm.mlir.constant +2: llvm.sdiv +2: llvm.sub +2: llvm.return + +1: "negate_sdiv_extrause" +4: "negate_sdiv_extrause" has unsupported operation: llvm.call + +1: "negate_sdiv_extrause2" +4: "negate_sdiv_extrause2" has unsupported operation: llvm.call + +1: "negate_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.sub +2: llvm.return + +1: "negate_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.sub +2: llvm.return + +1: "negate_ashr_extrause" +4: "negate_ashr_extrause" has unsupported operation: llvm.call + +1: "negate_lshr_extrause" +4: "negate_lshr_extrause" has unsupported operation: llvm.call + +1: "negate_ashr_wrongshift" +7: "negate_ashr_wrongshift" is unchanged by InstCombine + +1: "negate_lshr_wrongshift" +7: "negate_lshr_wrongshift" is unchanged by InstCombine + +1: "negate_sext" +4: "negate_sext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negate_zext" +4: "negate_zext" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negate_sext_extrause" +4: "negate_sext_extrause" has unsupported operation: builtin.unregistered: llvm.sext + +4: "negate_sext_extrause" has unsupported operation: llvm.call + +1: "negate_zext_extrause" +4: "negate_zext_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "negate_zext_extrause" has unsupported operation: llvm.call + +1: "negate_sext_wrongwidth" +4: "negate_sext_wrongwidth" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negate_zext_wrongwidth" +4: "negate_zext_wrongwidth" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negate_shufflevector_oneinput_reverse" +4: "negate_shufflevector_oneinput_reverse" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_oneinput_reverse" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "negate_shufflevector_oneinput_second_lane_is_undef" +4: "negate_shufflevector_oneinput_second_lane_is_undef" has unsupported operation: llvm.mlir.undef + +4: "negate_shufflevector_oneinput_second_lane_is_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_shufflevector_twoinputs" +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_twoinputs" has unsupported operation: llvm.mlir.undef + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_shufflevector_twoinputs" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "negate_shufflevector_oneinput_extrause" +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "negate_shufflevector_oneinput_extrause" has unsupported operation: llvm.call + +1: "negation_of_zeroext_of_nonnegative" +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_nonnegative" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_zeroext_of_positive" +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_positive" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_signext_of_negative" +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_negative" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negation_of_signext_of_nonpositive" +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_nonpositive" has unsupported operation: builtin.unregistered: llvm.sext + +1: "negation_of_signext_of_nonnegative__wrong_cast" +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_signext_of_nonnegative__wrong_cast" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_zeroext_of_negative_wrongcast" +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "negation_of_zeroext_of_negative_wrongcast" has unsupported operation: builtin.unregistered: llvm.zext + +1: "negation_of_increment_via_or_with_no_common_bits_set" +2: llvm.func +2: llvm.mlir.constant +2: llvm.shl +2: llvm.or +2: llvm.sub +2: llvm.return + +1: "negation_of_increment_via_or_with_no_common_bits_set_extrause" +4: "negation_of_increment_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +1: "negation_of_increment_via_or_common_bits_set" +7: "negation_of_increment_via_or_common_bits_set" is unchanged by InstCombine + +1: "negation_of_increment_via_or_disjoint" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.sub +2: llvm.return + +1: "add_via_or_with_no_common_bits_set" +4: "add_via_or_with_no_common_bits_set" has unsupported operation: llvm.call + +1: "add_via_or_with_common_bit_maybe_set" +4: "add_via_or_with_common_bit_maybe_set" has unsupported operation: llvm.call + +1: "add_via_or_with_no_common_bits_set_extrause" +4: "add_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +4: "add_via_or_with_no_common_bits_set_extrause" has unsupported operation: llvm.call + +1: "negate_extractelement" +4: "negate_extractelement" has unsupported operation: llvm.call + +4: "negate_extractelement" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "negate_extractelement_extrause" +4: "negate_extractelement_extrause" has unsupported operation: llvm.call + +4: "negate_extractelement_extrause" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "negate_extractelement_extrause" has unsupported operation: llvm.call + +1: "negate_insertelement" +4: "negate_insertelement" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_insertelement_extrause" +4: "negate_insertelement_extrause" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "negate_insertelement_extrause" has unsupported operation: llvm.call + +1: "negate_insertelement_nonnegatible_base" +4: "negate_insertelement_nonnegatible_base" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_insertelement_nonnegatible_insert" +4: "negate_insertelement_nonnegatible_insert" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "negate_left_shift_by_constant_prefer_keeping_shl" +4: "negate_left_shift_by_constant_prefer_keeping_shl" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" +4: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" has unsupported operation: llvm.call + +4: "negate_left_shift_by_constant_prefer_keeping_shl_extrause" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant" +4: "negate_left_shift_by_constant" has unsupported operation: llvm.call + +1: "negate_left_shift_by_constant_extrause" +4: "negate_left_shift_by_constant_extrause" has unsupported operation: llvm.call + +4: "negate_left_shift_by_constant_extrause" has unsupported operation: llvm.call + +1: "negate_add_with_single_negatible_operand" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.sub +2: llvm.return + +1: "negate_add_with_single_negatible_operand_depth2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.mul +2: llvm.sub +2: llvm.return + +1: "negate_add_with_single_negatible_operand_extrause" +4: "negate_add_with_single_negatible_operand_extrause" has unsupported operation: llvm.call + +1: "negate_add_with_single_negatible_operand_non_negation" +7: "negate_add_with_single_negatible_operand_non_negation" is unchanged by InstCombine + +1: "negate_abs" +4: "negate_abs" has unsupported operation: llvm.call + +4: "negate_abs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +1: "negate_nabs" +4: "negate_nabs" has unsupported operation: llvm.call + +4: "negate_nabs" has unsupported operation: builtin.unregistered: llvm.intr.abs + +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 + +1: "negate_select_of_negation_poison" +4: "negate_select_of_negation_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "negate_select_of_negation_poison" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "negate_freeze_extrause" +4: "negate_freeze_extrause" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "negate_freeze_extrause" has unsupported operation: llvm.call + +1: "noncanonical_mul_with_constant_as_first_operand" +4: "noncanonical_mul_with_constant_as_first_operand" has unsupported operation: builtin.unregistered: llvm.br + +4: "noncanonical_mul_with_constant_as_first_operand" has unsupported operation: builtin.unregistered: llvm.br + +1: "PR56601" +4: "PR56601" has unsupported operation: llvm.mlir.addressof + +4: "PR56601" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "PR56601" has unsupported operation: llvm.mlir.undef + +4: "PR56601" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "PR56601" has unsupported operation: llvm.mlir.undef + +4: "PR56601" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt b/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt new file mode 100644 index 000000000..679d06275 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-or-and-xor.txt @@ -0,0 +1,39 @@ +1: "use" +5: "use" is empty + +1: "sub_to_xor" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_extra_use_sub" +4: "sub_to_xor_extra_use_sub" has unsupported operation: llvm.call + +1: "sub_to_xor_extra_use_and" +4: "sub_to_xor_extra_use_and" has unsupported operation: llvm.call + +1: "sub_to_xor_extra_use_or" +4: "sub_to_xor_extra_use_or" has unsupported operation: llvm.call + +1: "sub_to_xor_or_commuted" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_and_commuted" +2: llvm.func +2: llvm.or +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "sub_to_xor_vec" +"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 new file mode 100644 index 000000000..7eb0ddbd5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor-cmp.txt @@ -0,0 +1,49 @@ +1: "sext_xor_sub" +4: "sext_xor_sub" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_xor_sub_1" +4: "sext_xor_sub_1" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_xor_sub_2" +4: "sext_xor_sub_2" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_xor_sub_3" +4: "sext_xor_sub_3" has unsupported operation: builtin.unregistered: llvm.select + +1: "sext_non_bool_xor_sub" +4: "sext_non_bool_xor_sub" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_non_bool_xor_sub_1" +4: "sext_non_bool_xor_sub_1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sext_diff_i1_xor_sub" +4: "sext_diff_i1_xor_sub" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_diff_i1_xor_sub" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_diff_i1_xor_sub_1" +4: "sext_diff_i1_xor_sub_1" has unsupported operation: builtin.unregistered: llvm.sext + +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 + +1: "xor_multi_uses" +4: "xor_multi_uses" has unsupported operation: builtin.unregistered: llvm.sext + +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 new file mode 100644 index 000000000..ad344365d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor-or-neg-and.txt @@ -0,0 +1,41 @@ +1: "use" +5: "use" is empty + +1: "sub_to_and" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "sub_to_and_extra_use_sub" +4: "sub_to_and_extra_use_sub" has unsupported operation: llvm.call + +1: "sub_to_and_extra_use_and" +4: "sub_to_and_extra_use_and" has unsupported operation: llvm.call + +1: "sub_to_and_extra_use_or" +4: "sub_to_and_extra_use_or" has unsupported operation: llvm.call + +1: "sub_to_and_or_commuted" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "sub_to_and_and_commuted" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "sub_to_and_vec" +"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 + +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 new file mode 100644 index 000000000..61ea658f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/sub-xor.txt @@ -0,0 +1,74 @@ +1: "use" +5: "use" is empty + +1: "low_mask_nsw_nuw" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "low_mask_nsw_nuw_vec" +"low_mask_nsw_nuw_vec" contains vectors which are unsupported + +1: "arbitrary_mask_sub_i8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "arbitrary_mask_sub_high_bit_dont_care_i8" +7: "arbitrary_mask_sub_high_bit_dont_care_i8" is unchanged by InstCombine + +1: "arbitrary_mask_sub_nsw_high_bit_dont_care_i8" +7: "arbitrary_mask_sub_nsw_high_bit_dont_care_i8" is unchanged by InstCombine + +1: "arbitrary_mask_sub_nuw_high_bit_dont_care_i8" +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 + +1: "not_masked_sub_i8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.sub +2: llvm.return + +1: "range_masked_sub" +4: "range_masked_sub" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "xor_add" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "xor_add_extra_use" +4: "xor_add_extra_use" has unsupported operation: llvm.call + +1: "xor_add_splat" +"xor_add_splat" contains vectors which are unsupported + +1: "xor_add_splat_undef" +4: "xor_add_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "xor_add_splat_undef" has unsupported operation: llvm.mlir.undef + +4: "xor_add_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "xor_add_splat_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "xor_dominating_cond" +4: "xor_dominating_cond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_dominating_cond" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/sub.txt b/SSA/Projects/InstCombine/tests/logs/sub.txt new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..f53e8fb18 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/subtract-from-one-hand-of-select.txt @@ -0,0 +1,20 @@ +1: "t0_sub_from_trueval" +4: "t0_sub_from_trueval" has unsupported operation: builtin.unregistered: llvm.select + +1: "t1_sub_from_falseval" +4: "t1_sub_from_falseval" has unsupported operation: builtin.unregistered: llvm.select + +1: "t2_vec" +4: "t2_vec" has unsupported operation: builtin.unregistered: llvm.select + +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 + 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 new file mode 100644 index 000000000..09bae39bc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/subtract-of-one-hand-of-select.txt @@ -0,0 +1,20 @@ +1: "t0_sub_of_trueval" +4: "t0_sub_of_trueval" has unsupported operation: builtin.unregistered: llvm.select + +1: "t1_sub_of_falseval" +4: "t1_sub_of_falseval" has unsupported operation: builtin.unregistered: llvm.select + +1: "t2_vec" +4: "t2_vec" has unsupported operation: builtin.unregistered: llvm.select + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/swifterror-argument-bitcast-fold.txt b/SSA/Projects/InstCombine/tests/logs/swifterror-argument-bitcast-fold.txt new file mode 100644 index 000000000..f11d250e1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/swifterror-argument-bitcast-fold.txt @@ -0,0 +1,8 @@ +1: "spam" +4: "spam" has unsupported operation: llvm.call + +4: "spam" has unsupported operation: llvm.return + +1: "widget" +5: "widget" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-constant-expr.txt b/SSA/Projects/InstCombine/tests/logs/switch-constant-expr.txt new file mode 100644 index 000000000..137f83147 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-constant-expr.txt @@ -0,0 +1,14 @@ +1: "single_case" +4: "single_case" has unsupported operation: llvm.mlir.addressof + +4: "single_case" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "single_case" has unsupported operation: builtin.unregistered: llvm.switch + +1: "multiple_cases" +4: "multiple_cases" has unsupported operation: llvm.mlir.addressof + +4: "multiple_cases" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "multiple_cases" has unsupported operation: builtin.unregistered: llvm.switch + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-select.txt b/SSA/Projects/InstCombine/tests/logs/switch-select.txt new file mode 100644 index 000000000..f51c4b2e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-select.txt @@ -0,0 +1,77 @@ +1: "test_ult_rhsc" +4: "test_ult_rhsc" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_ult_rhsc" has unsupported operation: llvm.call + +4: "test_ult_rhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc" has unsupported operation: llvm.call + +4: "test_ult_rhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc" has unsupported operation: llvm.call + +4: "test_ult_rhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "test_eq_lhsc" +4: "test_eq_lhsc" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test_eq_lhsc" has unsupported operation: llvm.call + +4: "test_eq_lhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_eq_lhsc" has unsupported operation: llvm.call + +4: "test_eq_lhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_eq_lhsc" has unsupported operation: llvm.call + +4: "test_eq_lhsc" has unsupported operation: builtin.unregistered: llvm.unreachable + +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 + +4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc_invalid_cond" has unsupported operation: llvm.call + +4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc_invalid_cond" has unsupported operation: llvm.call + +4: "test_ult_rhsc_invalid_cond" has unsupported operation: builtin.unregistered: llvm.unreachable + +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 + +4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc_fail" has unsupported operation: llvm.call + +4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "test_ult_rhsc_fail" has unsupported operation: llvm.call + +4: "test_ult_rhsc_fail" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "func1" +5: "func1" is empty + +1: "func2" +5: "func2" is empty + +1: "func3" +5: "func3" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-shl.txt b/SSA/Projects/InstCombine/tests/logs/switch-shl.txt new file mode 100644 index 000000000..5ff303515 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-shl.txt @@ -0,0 +1,31 @@ +1: "test_switch_with_shl_mask" +4: "test_switch_with_shl_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_switch_with_shl_mask" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_shl_nuw_multiuse" +4: "test_switch_with_shl_nuw_multiuse" has unsupported operation: llvm.call + +4: "test_switch_with_shl_nuw_multiuse" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_shl_nsw_multiuse" +4: "test_switch_with_shl_nsw_multiuse" has unsupported operation: llvm.call + +4: "test_switch_with_shl_nsw_multiuse" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_shl_mask_multiuse" +4: "test_switch_with_shl_mask_multiuse" has unsupported operation: llvm.call + +4: "test_switch_with_shl_mask_multiuse" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_shl_mask_unknown_shamt" +4: "test_switch_with_shl_mask_unknown_shamt" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_shl_mask_poison" +4: "test_switch_with_shl_mask_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_switch_with_shl_mask_poison" has unsupported operation: builtin.unregistered: llvm.switch + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-sub.txt b/SSA/Projects/InstCombine/tests/logs/switch-sub.txt new file mode 100644 index 000000000..ea5fd7b03 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-sub.txt @@ -0,0 +1,9 @@ +1: "test_switch_with_neg" +4: "test_switch_with_neg" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_sub" +4: "test_switch_with_sub" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_sub_nonconst" +4: "test_switch_with_sub_nonconst" has unsupported operation: builtin.unregistered: llvm.switch + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-truncate-crash.txt b/SSA/Projects/InstCombine/tests/logs/switch-truncate-crash.txt new file mode 100644 index 000000000..d37726c3a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-truncate-crash.txt @@ -0,0 +1,5 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.switch + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/switch-zext-sext.txt b/SSA/Projects/InstCombine/tests/logs/switch-zext-sext.txt new file mode 100644 index 000000000..db7800de0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/switch-zext-sext.txt @@ -0,0 +1,16 @@ +1: "test_switch_with_zext" +4: "test_switch_with_zext" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_sext" +4: "test_switch_with_sext" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_zext_unreachable_case" +4: "test_switch_with_zext_unreachable_case" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_switch_with_zext_unreachable_case" has unsupported operation: builtin.unregistered: llvm.switch + +1: "test_switch_with_sext_unreachable_case" +4: "test_switch_with_sext_unreachable_case" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_switch_with_sext_unreachable_case" has unsupported operation: builtin.unregistered: llvm.switch + diff --git a/SSA/Projects/InstCombine/tests/logs/tbaa-store-to-load.txt b/SSA/Projects/InstCombine/tests/logs/tbaa-store-to-load.txt new file mode 100644 index 000000000..3b6cc92a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/tbaa-store-to-load.txt @@ -0,0 +1,5 @@ +1: "f" +4: "f" has unsupported operation: llvm.load + +4: "f" has unsupported operation: llvm.store + diff --git a/SSA/Projects/InstCombine/tests/logs/threadlocal_address.txt b/SSA/Projects/InstCombine/tests/logs/threadlocal_address.txt new file mode 100644 index 000000000..c01ef169f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/threadlocal_address.txt @@ -0,0 +1,27 @@ +1: "func_increase_alignment" +4: "func_increase_alignment" has unsupported operation: llvm.mlir.addressof + +4: "func_increase_alignment" has unsupported operation: builtin.unregistered: llvm.intr.threadlocal.address + +4: "func_increase_alignment" has unsupported operation: llvm.store + +4: "func_increase_alignment" has unsupported operation: llvm.return + +1: "func_add_alignment" +4: "func_add_alignment" has unsupported operation after optimization: llvm.mlir.addressof + +4: "func_add_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.intr.threadlocal.address + +4: "func_add_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "func_add_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "func_dont_reduce_alignment" +4: "func_dont_reduce_alignment" has unsupported operation after optimization: llvm.mlir.addressof + +4: "func_dont_reduce_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.intr.threadlocal.address + +4: "func_dont_reduce_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.ptrtoint + +4: "func_dont_reduce_alignment" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt b/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt new file mode 100644 index 000000000..4ed2d1ad6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/tmp-alloca-bypass.txt @@ -0,0 +1,44 @@ +1: "test" +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.mlir.addressof + +4: "test" has unsupported operation: llvm.alloca + +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 + +4: "test" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: llvm.mlir.undef + +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.mlir.addressof + +4: "test2" has unsupported operation: llvm.alloca + +4: "test2" has unsupported operation: llvm.call + +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 + +4: "test2" has unsupported operation: builtin.unregistered: llvm.unreachable + +1: "func" +5: "func" is empty + +1: "get_cond" +5: "get_cond" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/toascii-1.txt b/SSA/Projects/InstCombine/tests/logs/toascii-1.txt new file mode 100644 index 000000000..0b4bceccf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/toascii-1.txt @@ -0,0 +1,24 @@ +1: "toascii" +5: "toascii" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation after optimization: llvm.call + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/token.txt b/SSA/Projects/InstCombine/tests/logs/token.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/trig.txt b/SSA/Projects/InstCombine/tests/logs/trig.txt new file mode 100644 index 000000000..f0448e555 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trig.txt @@ -0,0 +1,69 @@ +1: "tanAtanInverseFast" +4: "tanAtanInverseFast" has unsupported operation: llvm.call + +1: "atanhTanhInverseFast" +4: "atanhTanhInverseFast" has unsupported operation: llvm.call + +1: "sinhAsinhInverseFast" +4: "sinhAsinhInverseFast" has unsupported operation: llvm.call + +1: "asinhSinhInverseFast" +4: "asinhSinhInverseFast" has unsupported operation: llvm.call + +1: "coshAcoshInverseFast" +4: "coshAcoshInverseFast" has unsupported operation: llvm.call + +1: "indirectTanCall" +4: "indirectTanCall" has unsupported operation: llvm.call + +4: "indirectTanCall" has unsupported operation: llvm.call + +1: "tanAtanInverse" +4: "tanAtanInverse" has unsupported operation: llvm.call + +4: "tanAtanInverse" has unsupported operation: llvm.call + +1: "atanhTanhInverse" +4: "atanhTanhInverse" has unsupported operation: llvm.call + +4: "atanhTanhInverse" has unsupported operation: llvm.call + +1: "sinhAsinhInverse" +4: "sinhAsinhInverse" has unsupported operation: llvm.call + +4: "sinhAsinhInverse" has unsupported operation: llvm.call + +1: "asinhSinhInverse" +4: "asinhSinhInverse" has unsupported operation: llvm.call + +4: "asinhSinhInverse" has unsupported operation: llvm.call + +1: "coshAcoshInverse" +4: "coshAcoshInverse" has unsupported operation: llvm.call + +4: "coshAcoshInverse" has unsupported operation: llvm.call + +1: "asinhf" +5: "asinhf" is empty + +1: "sinhf" +5: "sinhf" is empty + +1: "acoshf" +5: "acoshf" is empty + +1: "coshf" +5: "coshf" is empty + +1: "tanhf" +5: "tanhf" is empty + +1: "atanhf" +5: "atanhf" is empty + +1: "tanf" +5: "tanf" is empty + +1: "atanf" +5: "atanf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/trivial-dse-calls.txt b/SSA/Projects/InstCombine/tests/logs/trivial-dse-calls.txt new file mode 100644 index 000000000..f7cf76f6b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trivial-dse-calls.txt @@ -0,0 +1,119 @@ +1: "unknown" +5: "unknown" is empty + +1: "f" +5: "f" is empty + +1: "f2" +5: "f2" is empty + +1: "f3" +5: "f3" is empty + +1: "test_dead" +4: "test_dead" has unsupported operation: llvm.return + +1: "test_lifetime" +4: "test_lifetime" has unsupported operation: llvm.return + +1: "test_lifetime2" +4: "test_lifetime2" has unsupported operation: llvm.call + +4: "test_lifetime2" has unsupported operation: llvm.call + +4: "test_lifetime2" has unsupported operation: llvm.return + +1: "test_dead_readwrite" +4: "test_dead_readwrite" has unsupported operation: llvm.return + +1: "test_neg_read_after" +4: "test_neg_read_after" has unsupported operation: llvm.alloca + +4: "test_neg_read_after" has unsupported operation: llvm.call + +4: "test_neg_read_after" has unsupported operation: llvm.load + +1: "test_neg_infinite_loop" +4: "test_neg_infinite_loop" has unsupported operation: llvm.alloca + +4: "test_neg_infinite_loop" has unsupported operation: llvm.call + +4: "test_neg_infinite_loop" has unsupported operation: llvm.return + +1: "test_neg_throw" +4: "test_neg_throw" has unsupported operation: llvm.alloca + +4: "test_neg_throw" has unsupported operation: llvm.call + +4: "test_neg_throw" has unsupported operation: llvm.return + +1: "test_neg_extra_write" +4: "test_neg_extra_write" has unsupported operation: llvm.alloca + +4: "test_neg_extra_write" has unsupported operation: llvm.call + +4: "test_neg_extra_write" has unsupported operation: llvm.return + +1: "test_neg_unmodeled_write" +4: "test_neg_unmodeled_write" has unsupported operation: llvm.alloca + +4: "test_neg_unmodeled_write" has unsupported operation: llvm.alloca + +4: "test_neg_unmodeled_write" has unsupported operation: llvm.call + +4: "test_neg_unmodeled_write" has unsupported operation: llvm.return + +1: "test_neg_captured_by_call" +4: "test_neg_captured_by_call" has unsupported operation: llvm.alloca + +4: "test_neg_captured_by_call" has unsupported operation: llvm.alloca + +4: "test_neg_captured_by_call" has unsupported operation: llvm.call + +4: "test_neg_captured_by_call" has unsupported operation: llvm.load + +4: "test_neg_captured_by_call" has unsupported operation: llvm.load + +1: "test_neg_captured_before" +4: "test_neg_captured_before" has unsupported operation: llvm.alloca + +4: "test_neg_captured_before" has unsupported operation: llvm.call + +4: "test_neg_captured_before" has unsupported operation: llvm.load + +1: "test_unreleated_read" +4: "test_unreleated_read" has unsupported operation: llvm.return + +1: "test_unrelated_capture" +4: "test_unrelated_capture" has unsupported operation: llvm.return + +1: "test_neg_unrelated_capture_used_via_return" +4: "test_neg_unrelated_capture_used_via_return" has unsupported operation: llvm.alloca + +4: "test_neg_unrelated_capture_used_via_return" has unsupported operation: llvm.alloca + +4: "test_neg_unrelated_capture_used_via_return" has unsupported operation: llvm.call + +4: "test_neg_unrelated_capture_used_via_return" has unsupported operation: llvm.load + +1: "test_self_read" +4: "test_self_read" has unsupported operation: llvm.return + +1: "removable_readnone" +5: "removable_readnone" is empty + +1: "removable_ro" +5: "removable_ro" is empty + +1: "test_readnone" +4: "test_readnone" has unsupported operation: llvm.return + +1: "test_readnone_with_deopt" +4: "test_readnone_with_deopt" has unsupported operation: llvm.return + +1: "test_readonly" +4: "test_readonly" has unsupported operation: llvm.return + +1: "test_readonly_with_deopt" +4: "test_readonly_with_deopt" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-binop-ext.txt b/SSA/Projects/InstCombine/tests/logs/trunc-binop-ext.txt new file mode 100644 index 000000000..dbe8875ec --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-binop-ext.txt @@ -0,0 +1,107 @@ +1: "narrow_sext_and" +4: "narrow_sext_and" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_and" +4: "narrow_zext_and" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_or" +4: "narrow_sext_or" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_or" +4: "narrow_zext_or" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_xor" +4: "narrow_sext_xor" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_xor" +4: "narrow_zext_xor" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_add" +4: "narrow_sext_add" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_add" +4: "narrow_zext_add" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_sub" +4: "narrow_sext_sub" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_sub" +4: "narrow_zext_sub" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_mul" +4: "narrow_sext_mul" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_mul" +4: "narrow_zext_mul" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_and_commute" +4: "narrow_sext_and_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_and_commute" +4: "narrow_zext_and_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_or_commute" +4: "narrow_sext_or_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_or_commute" +4: "narrow_zext_or_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_xor_commute" +4: "narrow_sext_xor_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_xor_commute" +4: "narrow_zext_xor_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_add_commute" +4: "narrow_sext_add_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_add_commute" +4: "narrow_zext_add_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_sub_commute" +4: "narrow_sext_sub_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_sub_commute" +4: "narrow_zext_sub_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sext_mul_commute" +4: "narrow_sext_mul_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_mul_commute" +4: "narrow_zext_mul_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_ashr_keep_trunc" +4: "narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_ashr_keep_trunc2" +4: "narrow_zext_ashr_keep_trunc2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "narrow_zext_ashr_keep_trunc2" has unsupported operation: builtin.unregistered: llvm.zext + +4: "narrow_zext_ashr_keep_trunc2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_ashr_keep_trunc3" +4: "narrow_zext_ashr_keep_trunc3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "narrow_zext_ashr_keep_trunc3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "narrow_zext_ashr_keep_trunc3" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_zext_ashr_keep_trunc_vector" +4: "narrow_zext_ashr_keep_trunc_vector" has unsupported operation: builtin.unregistered: llvm.sext + +4: "narrow_zext_ashr_keep_trunc_vector" has unsupported operation: builtin.unregistered: llvm.sext + +4: "narrow_zext_ashr_keep_trunc_vector" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "dont_narrow_zext_ashr_keep_trunc" +4: "dont_narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "dont_narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.sext + +4: "dont_narrow_zext_ashr_keep_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-demand.txt b/SSA/Projects/InstCombine/tests/logs/trunc-demand.txt new file mode 100644 index 000000000..a2c91cdb8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-demand.txt @@ -0,0 +1,43 @@ +1: "use6" +5: "use6" is empty + +1: "use8" +5: "use8" is empty + +1: "trunc_lshr" +4: "trunc_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_exact_mask" +4: "trunc_lshr_exact_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_big_mask" +4: "trunc_lshr_big_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_use1" +4: "trunc_lshr_use1" has unsupported operation: llvm.call + +4: "trunc_lshr_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_use2" +4: "trunc_lshr_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_lshr_use2" has unsupported operation: llvm.call + +1: "trunc_lshr_vec_splat" +4: "trunc_lshr_vec_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_vec_splat_exact_mask" +4: "trunc_lshr_vec_splat_exact_mask" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_big_shift" +4: "trunc_lshr_big_shift" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "or_trunc_lshr" +4: "or_trunc_lshr" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "or_trunc_lshr_more" +4: "or_trunc_lshr_more" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "or_trunc_lshr_small_mask" +4: "or_trunc_lshr_small_mask" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-extractelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/trunc-extractelement-inseltpoison.txt new file mode 100644 index 000000000..a7945a3aa --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-extractelement-inseltpoison.txt @@ -0,0 +1,2 @@ +3: trunc-extractelement-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-extractelement.txt b/SSA/Projects/InstCombine/tests/logs/trunc-extractelement.txt new file mode 100644 index 000000000..695af51b2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-extractelement.txt @@ -0,0 +1,2 @@ +3: trunc-extractelement.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-fp-to-int.txt b/SSA/Projects/InstCombine/tests/logs/trunc-fp-to-int.txt new file mode 100644 index 000000000..6ddb6aa89 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-fp-to-int.txt @@ -0,0 +1,98 @@ +1: "half_fptoui_i17_i16" +4: "half_fptoui_i17_i16" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "half_fptoui_i17_i15" +4: "half_fptoui_i17_i15" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "half_fptoui_i17_i15" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptoui_i32_i16" +4: "half_fptoui_i32_i16" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "half_fptoui_i32_i17" +4: "half_fptoui_i32_i17" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "half_fptoui_i32_i17" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptoui_4xi32_4xi16" +4: "half_fptoui_4xi32_4xi16" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "bfloat_fptoui_i129_i128" +4: "bfloat_fptoui_i129_i128" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "bfloat_fptoui_i128_i127" +4: "bfloat_fptoui_i128_i127" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "bfloat_fptoui_i128_i127" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "float_fptoui_i129_i128" +4: "float_fptoui_i129_i128" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "use" +5: "use" is empty + +1: "float_fptoui_i129_i128_use" +4: "float_fptoui_i129_i128_use" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "float_fptoui_i129_i128_use" has unsupported operation: llvm.call + +4: "float_fptoui_i129_i128_use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "float_fptoui_i128_i127" +4: "float_fptoui_i128_i127" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "float_fptoui_i128_i127" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "double_fptoui_i1025_i1024" +4: "double_fptoui_i1025_i1024" has unsupported operation: builtin.unregistered: llvm.fptoui + +1: "double_fptoui_i1024_i1023" +4: "double_fptoui_i1024_i1023" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "double_fptoui_i1024_i1023" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptosi_i17_i16" +4: "half_fptosi_i17_i16" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "half_fptosi_i17_i16" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptosi_i18_i17" +4: "half_fptosi_i18_i17" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "half_fptosi_i32_i17" +4: "half_fptosi_i32_i17" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "half_fptosi_i32_i17" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptosi_i32_i18" +4: "half_fptosi_i32_i18" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "half_fptosi_i32_i18" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "half_fptosi_4xi32_4xi17" +4: "half_fptosi_4xi32_4xi17" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "bfloat_fptosi_i129_i128" +4: "bfloat_fptosi_i129_i128" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "bfloat_fptosi_i129_i128" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bfloat_fptosi_i130_i129" +4: "bfloat_fptosi_i130_i129" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "float_fptosi_i130_i129" +4: "float_fptosi_i130_i129" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "float_fptosi_i129_i128" +4: "float_fptosi_i129_i128" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "float_fptosi_i129_i128" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "double_fptosi_i1026_i1025" +4: "double_fptosi_i1026_i1025" has unsupported operation: builtin.unregistered: llvm.fptosi + +1: "double_fptosi_i1025_i1024" +4: "double_fptosi_i1025_i1024" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "double_fptosi_i1025_i1024" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt new file mode 100644 index 000000000..6cf2ccb0b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-inseltpoison.txt @@ -0,0 +1,392 @@ +1: "use" +5: "use" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1" has unsupported operation: llvm.call + +1: "test1_vec" +4: "test1_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec" has unsupported operation: llvm.call + +1: "test1_vec_nonuniform" +4: "test1_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec_nonuniform" has unsupported operation: llvm.call + +1: "test1_vec_poison" +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec_poison" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2" has unsupported operation: llvm.call + +1: "test2_vec" +4: "test2_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec" has unsupported operation: llvm.call + +1: "test2_vec_nonuniform" +4: "test2_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec_nonuniform" has unsupported operation: llvm.call + +1: "test2_vec_poison" +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec_poison" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test3" has unsupported operation: llvm.call + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test4" has unsupported operation: llvm.call + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "ashr_mul_sign_bits" +4: "ashr_mul_sign_bits" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashr_mul_sign_bits" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashr_mul" +4: "ashr_mul" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashr_mul" has unsupported operation: builtin.unregistered: llvm.sext + +1: "trunc_ashr" +4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_vec" +"trunc_ashr_vec" contains vectors which are unsupported + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec" +4: "test8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec_nonuniform" +4: "test8_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec_poison" +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test8_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec" +4: "test11_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec_nonuniform" +4: "test11_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec_poison" +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test11_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec" +4: "test12_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec_nonuniform" +4: "test12_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec_poison" +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test12_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec" +4: "test13_vec" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec_nonuniform" +4: "test13_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec_poison" +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test13_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "trunc_bitcast1" +4: "trunc_bitcast1" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_bitcast2" +4: "trunc_bitcast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_bitcast2" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_bitcast3" +4: "trunc_bitcast3" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_shl_31_i32_i64" +4: "trunc_shl_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nsw_31_i32_i64" +4: "trunc_shl_nsw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nuw_31_i32_i64" +4: "trunc_shl_nuw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nsw_nuw_31_i32_i64" +4: "trunc_shl_nsw_nuw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_15_i16_i64" +4: "trunc_shl_15_i16_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_15_i16_i32" +4: "trunc_shl_15_i16_i32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_7_i8_i64" +4: "trunc_shl_7_i8_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_1_i2_i64" +4: "trunc_shl_1_i2_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_1_i32_i64" +4: "trunc_shl_1_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_16_i32_i64" +4: "trunc_shl_16_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_33_i32_i64" +4: "trunc_shl_33_i32_i64" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_shl_32_i32_i64" +4: "trunc_shl_32_i32_i64" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_shl_16_v2i32_v2i64" +4: "trunc_shl_16_v2i32_v2i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nosplat_v2i32_v2i64" +4: "trunc_shl_nosplat_v2i32_v2i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_31_i32_i64_multi_use" +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.store + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.store + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.return + +1: "trunc_shl_lshr_infloop" +4: "trunc_shl_lshr_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_uniform" +4: "trunc_shl_v2i32_v2i64_uniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_poison" +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: llvm.mlir.undef + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_nonuniform" +4: "trunc_shl_v2i32_v2i64_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_outofrange" +4: "trunc_shl_v2i32_v2i64_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_ashr_infloop" +4: "trunc_shl_ashr_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_shl_infloop" +4: "trunc_shl_shl_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_lshr_var" +4: "trunc_shl_lshr_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_ashr_var" +4: "trunc_shl_ashr_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_shl_var" +4: "trunc_shl_shl_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v8i15_v8i32_15" +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 + +1: "trunc_shl_v8i16_v8i32_17" +"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 + +1: "wide_shuf" +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_shuf" has unsupported operation: llvm.mlir.undef + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_splat1" +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wide_splat2" +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wide_splat3" +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_lengthening_splat" +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_add_vec_constant" +4: "narrow_add_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_mul_vec_constant" +4: "narrow_mul_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sub_vec_constant" +4: "narrow_sub_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR44545" +4: "PR44545" has unsupported operation: builtin.unregistered: llvm.icmp + +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-load.txt b/SSA/Projects/InstCombine/tests/logs/trunc-load.txt new file mode 100644 index 000000000..2fbcc73b7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-load.txt @@ -0,0 +1,45 @@ +1: "truncload_no_deref" +4: "truncload_no_deref" has unsupported operation: llvm.load + +4: "truncload_no_deref" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_small_deref" +4: "truncload_small_deref" has unsupported operation: llvm.load + +4: "truncload_small_deref" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_deref" +4: "truncload_deref" has unsupported operation: llvm.load + +4: "truncload_deref" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_align" +4: "truncload_align" has unsupported operation: llvm.load + +4: "truncload_align" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "use" +5: "use" is empty + +1: "truncload_extra_use" +4: "truncload_extra_use" has unsupported operation: llvm.load + +4: "truncload_extra_use" has unsupported operation: llvm.call + +4: "truncload_extra_use" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_type" +4: "truncload_type" has unsupported operation: llvm.load + +4: "truncload_type" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_volatile" +4: "truncload_volatile" has unsupported operation: llvm.load + +4: "truncload_volatile" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "truncload_address_space" +4: "truncload_address_space" has unsupported operation: llvm.load + +4: "truncload_address_space" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-shift-trunc.txt b/SSA/Projects/InstCombine/tests/logs/trunc-shift-trunc.txt new file mode 100644 index 000000000..57fcd04f7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-shift-trunc.txt @@ -0,0 +1,78 @@ +1: "use" +5: "use" is empty + +1: "trunc_lshr_trunc" +4: "trunc_lshr_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_trunc" +4: "trunc_shl_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_shl_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_trunc_uniform" +4: "trunc_lshr_trunc_uniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_trunc_nonuniform" +4: "trunc_lshr_trunc_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_trunc_uniform_poison" +4: "trunc_lshr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_lshr_trunc_uniform_poison" has unsupported operation: llvm.mlir.undef + +4: "trunc_lshr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_lshr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_lshr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_trunc_outofrange" +4: "trunc_lshr_trunc_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_lshr_trunc_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_lshr_trunc_nonuniform_outofrange" +4: "trunc_lshr_trunc_nonuniform_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_lshr_trunc_nonuniform_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc" +4: "trunc_ashr_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_exact" +4: "trunc_ashr_trunc_exact" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_uniform" +4: "trunc_ashr_trunc_uniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_nonuniform" +4: "trunc_ashr_trunc_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_uniform_poison" +4: "trunc_ashr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_ashr_trunc_uniform_poison" has unsupported operation: llvm.mlir.undef + +4: "trunc_ashr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_ashr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_ashr_trunc_uniform_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_outofrange" +4: "trunc_ashr_trunc_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ashr_trunc_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_nonuniform_outofrange" +4: "trunc_ashr_trunc_nonuniform_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ashr_trunc_nonuniform_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_trunc_multiuse" +4: "trunc_ashr_trunc_multiuse" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ashr_trunc_multiuse" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_ashr_trunc_multiuse" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc-shl-zext.txt b/SSA/Projects/InstCombine/tests/logs/trunc-shl-zext.txt new file mode 100644 index 000000000..64ca71421 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc-shl-zext.txt @@ -0,0 +1,10 @@ +1: "trunc_shl_zext_32" +4: "trunc_shl_zext_32" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_shl_zext_32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "trunc_shl_zext_64" +4: "trunc_shl_zext_64" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_shl_zext_64" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/trunc.txt b/SSA/Projects/InstCombine/tests/logs/trunc.txt new file mode 100644 index 000000000..4fa2349e6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/trunc.txt @@ -0,0 +1,433 @@ +1: "use" +5: "use" is empty + +1: "use.i8" +5: "use.i8" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1" has unsupported operation: llvm.call + +1: "test1_vec" +4: "test1_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec" has unsupported operation: llvm.call + +1: "test1_vec_nonuniform" +4: "test1_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec_nonuniform" has unsupported operation: llvm.call + +1: "test1_vec_poison" +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test1_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test1_vec_poison" has unsupported operation: llvm.call + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2" has unsupported operation: llvm.call + +1: "test2_vec" +4: "test2_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec" has unsupported operation: llvm.call + +1: "test2_vec_nonuniform" +4: "test2_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec_nonuniform" has unsupported operation: llvm.call + +1: "test2_vec_poison" +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test2_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test2_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test2_vec_poison" has unsupported operation: llvm.call + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test3" has unsupported operation: llvm.call + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test4" has unsupported operation: llvm.call + +1: "test5" +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "test5" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "ashr_mul_sign_bits" +4: "ashr_mul_sign_bits" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashr_mul_sign_bits" has unsupported operation: builtin.unregistered: llvm.sext + +1: "ashr_mul" +4: "ashr_mul" has unsupported operation: builtin.unregistered: llvm.sext + +4: "ashr_mul" has unsupported operation: builtin.unregistered: llvm.sext + +1: "trunc_ashr" +4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "trunc_ashr" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_ashr_vec" +"trunc_ashr_vec" contains vectors which are unsupported + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec" +4: "test8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec_nonuniform" +4: "test8_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test8_vec_poison" +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test8_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test8_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec" +4: "test11_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec_nonuniform" +4: "test11_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test11_vec_poison" +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test11_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test11_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec" +4: "test12_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec_nonuniform" +4: "test12_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test12_vec_poison" +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test12_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test12_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec" +4: "test13_vec" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec_nonuniform" +4: "test13_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec_nonuniform" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test13_vec_poison" +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test13_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test13_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "trunc_bitcast1" +4: "trunc_bitcast1" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_bitcast2" +4: "trunc_bitcast2" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "trunc_bitcast2" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_bitcast3" +4: "trunc_bitcast3" has unsupported operation: builtin.unregistered: llvm.extractelement + +1: "trunc_shl_31_i32_i64" +4: "trunc_shl_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nsw_31_i32_i64" +4: "trunc_shl_nsw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nuw_31_i32_i64" +4: "trunc_shl_nuw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nsw_nuw_31_i32_i64" +4: "trunc_shl_nsw_nuw_31_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_15_i16_i64" +4: "trunc_shl_15_i16_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_15_i16_i32" +4: "trunc_shl_15_i16_i32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_7_i8_i64" +4: "trunc_shl_7_i8_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_1_i2_i64" +4: "trunc_shl_1_i2_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_1_i32_i64" +4: "trunc_shl_1_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_16_i32_i64" +4: "trunc_shl_16_i32_i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_33_i32_i64" +4: "trunc_shl_33_i32_i64" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_shl_32_i32_i64" +4: "trunc_shl_32_i32_i64" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "trunc_shl_16_v2i32_v2i64" +4: "trunc_shl_16_v2i32_v2i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_nosplat_v2i32_v2i64" +4: "trunc_shl_nosplat_v2i32_v2i64" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_31_i32_i64_multi_use" +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.store + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.store + +4: "trunc_shl_31_i32_i64_multi_use" has unsupported operation: llvm.return + +1: "trunc_shl_lshr_infloop" +4: "trunc_shl_lshr_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_uniform" +4: "trunc_shl_v2i32_v2i64_uniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_poison" +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: llvm.mlir.undef + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_shl_v2i32_v2i64_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_nonuniform" +4: "trunc_shl_v2i32_v2i64_nonuniform" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v2i32_v2i64_outofrange" +4: "trunc_shl_v2i32_v2i64_outofrange" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_ashr_infloop" +4: "trunc_shl_ashr_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_shl_infloop" +4: "trunc_shl_shl_infloop" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_lshr_var" +4: "trunc_shl_lshr_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_ashr_var" +4: "trunc_shl_ashr_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_shl_var" +4: "trunc_shl_shl_var" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_shl_v8i15_v8i32_15" +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 + +1: "trunc_shl_v8i16_v8i32_17" +"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 + +1: "wide_shuf" +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_shuf" has unsupported operation: llvm.mlir.undef + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_shuf" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_splat1" +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_splat1" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wide_splat2" +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "wide_splat2" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "wide_splat3" +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_splat3" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "wide_lengthening_splat" +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "wide_lengthening_splat" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_add_vec_constant" +4: "narrow_add_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_mul_vec_constant" +4: "narrow_mul_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "narrow_sub_vec_constant" +4: "narrow_sub_vec_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "PR44545" +4: "PR44545" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "drop_nuw_trunc" +4: "drop_nuw_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "drop_both_trunc" +4: "drop_both_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_xor" +4: "trunc_xor" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_nuw_xor" +4: "trunc_nuw_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_nsw_xor" +4: "trunc_nsw_xor" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "trunc_nuw_xor_vector" +4: "trunc_nuw_xor_vector" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "pr95547" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "pr95547" has unsupported operation: llvm.call + +4: "pr95547" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr95547" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt b/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt new file mode 100644 index 000000000..af2595d96 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/truncating-saturate.txt @@ -0,0 +1,297 @@ +1: "use" +5: "use" is empty + +1: "use16" +5: "use16" is empty + +1: "use1" +5: "use1" is empty + +1: "testi16i8" +4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testi16i8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testi64i32" +4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testi64i32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testi32i16i8" +4: "testi32i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi32i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testi32i16i8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testv4i32i16i8" +4: "testv4i32i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testv4i32i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testv4i32i16i8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testi32i32i8" +4: "testi32i32i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi32i32i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test_truncfirst" +4: "test_truncfirst" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "test_truncfirst" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "test_truncfirst" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "testtrunclowhigh" +4: "testtrunclowhigh" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "testtrunclowhigh" has unsupported operation: builtin.unregistered: llvm.trunc + +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 + +1: "testv4i16i8" +4: "testv4i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testv4i16i8" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testv4i16i8" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testv4i16i8add" +4: "testv4i16i8add" has unsupported operation: builtin.unregistered: llvm.intr.sadd.sat + +1: "testi16i8_revcmp" +4: "testi16i8_revcmp" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi16i8_revcmp" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testi16i8_revcmp" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testi16i8_revselect" +4: "testi16i8_revselect" has unsupported operation: builtin.unregistered: llvm.intr.smax + +4: "testi16i8_revselect" has unsupported operation: builtin.unregistered: llvm.intr.smin + +4: "testi16i8_revselect" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "testi32i8" +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "testi32i8" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "differentconsts" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "badimm1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "badimm1" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "badimm2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "badimm2" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "badimm3" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "badimm4" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "oneusexor" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "oneuseconv" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuseconv" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "oneusecmp" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneusecmp" has unsupported operation: builtin.unregistered: llvm.icmp + +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" +4: "oneuseboth" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneuseboth" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "oneusethree" +4: "oneusethree" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "oneusethree" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "oneusethree" has unsupported operation: llvm.call + +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" +4: "differentconsts_useadd" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "differentconsts_useadd" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +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/type_pun-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/type_pun-inseltpoison.txt new file mode 100644 index 000000000..cc0a7155a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/type_pun-inseltpoison.txt @@ -0,0 +1,2 @@ +3: type_pun-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/type_pun.txt b/SSA/Projects/InstCombine/tests/logs/type_pun.txt new file mode 100644 index 000000000..898e0cbdf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/type_pun.txt @@ -0,0 +1,2 @@ +3: type_pun.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/uadd-with-overflow.txt b/SSA/Projects/InstCombine/tests/logs/uadd-with-overflow.txt new file mode 100644 index 000000000..f983c6c95 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/uadd-with-overflow.txt @@ -0,0 +1,2 @@ +3: uadd-with-overflow.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/uaddo.txt b/SSA/Projects/InstCombine/tests/logs/uaddo.txt new file mode 100644 index 000000000..1e766e514 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/uaddo.txt @@ -0,0 +1,60 @@ +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 + +4: "uaddo_1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uaddo_neg1" +4: "uaddo_neg1" has unsupported operation: llvm.store + +4: "uaddo_neg1" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/uaddo2.txt b/SSA/Projects/InstCombine/tests/logs/uaddo2.txt new file mode 100644 index 000000000..2f970923b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/uaddo2.txt @@ -0,0 +1,31 @@ +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.intr.uadd.with.overflow + +4: "test_generic" has unsupported operation: llvm.extractvalue + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.uadd.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/ucmp.txt b/SSA/Projects/InstCombine/tests/logs/ucmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale.txt b/SSA/Projects/InstCombine/tests/logs/udiv-pow2-vscale.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/udiv-simplify.txt b/SSA/Projects/InstCombine/tests/logs/udiv-simplify.txt new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..c388c075b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/udiv_select_to_select_shift.txt @@ -0,0 +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 + +1: "PR34856" +4: "PR34856" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "PR34856" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt b/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt new file mode 100644 index 000000000..a01c4ec1b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/udivrem-change-width.txt @@ -0,0 +1,133 @@ +1: "udiv_i8" +4: "udiv_i8" has unsupported operation: llvm.udiv + +1: "udiv_i8_vec" +4: "udiv_i8_vec" has unsupported operation: llvm.udiv + +1: "urem_i8" +4: "urem_i8" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "urem_i8" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +4: "urem_i8" has unsupported operation after optimization: builtin.unregistered: llvm.trunc + +1: "urem_i8_vec" +"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" +4: "udiv_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +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" +4: "urem_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_i32_vec" +4: "urem_i32_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_i32_multiuse" +4: "urem_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +4: "urem_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_illegal_type" +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" +4: "urem_i32_c" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_i32_c_vec" +4: "urem_i32_c_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_i32_c_multiuse" +4: "urem_i32_c_multiuse" has unsupported operation: builtin.unregistered: llvm.zext + +1: "urem_illegal_type_c" +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" +4: "urem_c_i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "udiv_constexpr" +4: "udiv_constexpr" has unsupported operation: llvm.mlir.addressof + +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" +4: "udiv_const_constexpr" has unsupported operation: llvm.mlir.addressof + +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" +4: "urem_const_constexpr" has unsupported operation: llvm.mlir.addressof + +4: "urem_const_constexpr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "urem_const_constexpr" has unsupported operation: builtin.unregistered: llvm.zext + +1: "udiv_constexpr_const" +4: "udiv_constexpr_const" has unsupported operation: llvm.mlir.addressof + +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" +4: "urem_constexpr_const" has unsupported operation: llvm.mlir.addressof + +4: "urem_constexpr_const" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "urem_constexpr_const" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/umax-icmp.txt b/SSA/Projects/InstCombine/tests/logs/umax-icmp.txt new file mode 100644 index 000000000..f61825082 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umax-icmp.txt @@ -0,0 +1,521 @@ +1: "eq_umax1" +4: "eq_umax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umax2" +4: "eq_umax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umax3" +4: "eq_umax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umax4" +4: "eq_umax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_umax1" +4: "ule_umax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_umax2" +4: "ule_umax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_umax3" +4: "ule_umax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ule_umax4" +4: "ule_umax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umax1" +4: "ne_umax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umax2" +4: "ne_umax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umax3" +4: "ne_umax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umax4" +4: "ne_umax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_umax1" +4: "ugt_umax1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_umax2" +4: "ugt_umax2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_umax3" +4: "ugt_umax3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ugt_umax4" +4: "ugt_umax4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "eq_umax_contextual" +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual" has unsupported operation: llvm.call + +4: "eq_umax_contextual" has unsupported operation: llvm.return + +4: "eq_umax_contextual" has unsupported operation: llvm.return + +1: "eq_umax_contextual_commuted" +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.return + +4: "eq_umax_contextual_commuted" has unsupported operation: llvm.return + +1: "ult_umax_contextual" +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual" has unsupported operation: llvm.call + +4: "ult_umax_contextual" has unsupported operation: llvm.return + +4: "ult_umax_contextual" has unsupported operation: llvm.return + +1: "ult_umax_contextual_commuted" +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.return + +4: "ult_umax_contextual_commuted" has unsupported operation: llvm.return + +1: "ule_umax_contextual" +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual" has unsupported operation: llvm.call + +4: "ule_umax_contextual" has unsupported operation: llvm.return + +4: "ule_umax_contextual" has unsupported operation: llvm.return + +1: "ule_umax_contextual_commuted" +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.return + +4: "ule_umax_contextual_commuted" has unsupported operation: llvm.return + +1: "ugt_umax_contextual" +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.call + +4: "ugt_umax_contextual" has unsupported operation: llvm.return + +4: "ugt_umax_contextual" has unsupported operation: llvm.return + +1: "ugt_umax_contextual_commuted" +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.return + +4: "ugt_umax_contextual_commuted" has unsupported operation: llvm.return + +1: "uge_umax_contextual" +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual" has unsupported operation: llvm.call + +4: "uge_umax_contextual" has unsupported operation: llvm.return + +4: "uge_umax_contextual" has unsupported operation: llvm.return + +1: "uge_umax_contextual_commuted" +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umax + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.return + +4: "uge_umax_contextual_commuted" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/umin-icmp.txt b/SSA/Projects/InstCombine/tests/logs/umin-icmp.txt new file mode 100644 index 000000000..d83c02266 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umin-icmp.txt @@ -0,0 +1,521 @@ +1: "eq_umin1" +4: "eq_umin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umin2" +4: "eq_umin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umin3" +4: "eq_umin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_umin4" +4: "eq_umin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_umin1" +4: "uge_umin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_umin2" +4: "uge_umin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_umin3" +4: "uge_umin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "uge_umin4" +4: "uge_umin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umin1" +4: "ne_umin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umin2" +4: "ne_umin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umin3" +4: "ne_umin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_umin4" +4: "ne_umin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_umin1" +4: "ult_umin1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_umin2" +4: "ult_umin2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_umin3" +4: "ult_umin3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ult_umin4" +4: "ult_umin4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "eq_umin_contextual" +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual" has unsupported operation: llvm.call + +4: "eq_umin_contextual" has unsupported operation: llvm.return + +4: "eq_umin_contextual" has unsupported operation: llvm.return + +1: "eq_umin_contextual_commuted" +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.return + +4: "eq_umin_contextual_commuted" has unsupported operation: llvm.return + +1: "ult_umin_contextual" +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.call + +4: "ult_umin_contextual" has unsupported operation: llvm.return + +4: "ult_umin_contextual" has unsupported operation: llvm.return + +1: "ult_umin_contextual_commuted" +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.return + +4: "ult_umin_contextual_commuted" has unsupported operation: llvm.return + +1: "ule_umin_contextual" +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual" has unsupported operation: llvm.call + +4: "ule_umin_contextual" has unsupported operation: llvm.return + +4: "ule_umin_contextual" has unsupported operation: llvm.return + +1: "ule_umin_contextual_commuted" +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.return + +4: "ule_umin_contextual_commuted" has unsupported operation: llvm.return + +1: "ugt_umin_contextual" +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual" has unsupported operation: llvm.call + +4: "ugt_umin_contextual" has unsupported operation: llvm.return + +4: "ugt_umin_contextual" has unsupported operation: llvm.return + +1: "ugt_umin_contextual_commuted" +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.return + +4: "ugt_umin_contextual_commuted" has unsupported operation: llvm.return + +1: "uge_umin_contextual" +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual" has unsupported operation: llvm.call + +4: "uge_umin_contextual" has unsupported operation: llvm.return + +4: "uge_umin_contextual" has unsupported operation: llvm.return + +1: "uge_umin_contextual_commuted" +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.intr.umin + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.call + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.return + +4: "uge_umin_contextual_commuted" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/umin_cttz_ctlz.txt b/SSA/Projects/InstCombine/tests/logs/umin_cttz_ctlz.txt new file mode 100644 index 000000000..9515e3457 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umin_cttz_ctlz.txt @@ -0,0 +1,136 @@ +1: "umin_cttz_i8_zero_undefined" +4: "umin_cttz_i8_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i8_zero_defined" +4: "umin_cttz_i8_zero_defined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i8_commuted_zero_undefined" +4: "umin_cttz_i8_commuted_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i8_negative_ge_bitwidth_zero_undefined" +4: "umin_cttz_i8_negative_ge_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i16_zero_undefined" +4: "umin_cttz_i16_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i32_zero_undefined" +4: "umin_cttz_i32_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i64_zero_undefined" +4: "umin_cttz_i64_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_i1_zero_undefined" +4: "umin_cttz_i1_zero_undefined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_i1_zero_undefined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_cttz_i1_zero_defined" +4: "umin_cttz_i1_zero_defined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_i1_zero_defined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_cttz_2xi32_splat_zero_undefined" +4: "umin_cttz_2xi32_splat_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_2xi32_splat_poison_zero_undefined" +4: "umin_cttz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umin_cttz_2xi32_splat_poison_zero_undefined" has unsupported operation: llvm.mlir.undef + +4: "umin_cttz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umin_cttz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umin_cttz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_2xi32_no_splat_all_lt_bitwidth_zero_undefined" +4: "umin_cttz_2xi32_no_splat_all_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +1: "umin_cttz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" +4: "umin_cttz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_cttz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" +4: "umin_cttz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_cttz_i16_negative_non_constant" +4: "umin_cttz_i16_negative_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_i16_negative_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_cttz_i16_negative_two_uses" +4: "umin_cttz_i16_negative_two_uses" has unsupported operation: builtin.unregistered: llvm.intr.cttz + +4: "umin_cttz_i16_negative_two_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_i8_zero_undefined" +4: "umin_ctlz_i8_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i8_zero_defined" +4: "umin_ctlz_i8_zero_defined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i8_commuted_zero_undefined" +4: "umin_ctlz_i8_commuted_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i8_negative_ge_bitwidth_zero_undefined" +4: "umin_ctlz_i8_negative_ge_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i16_zero_undefined" +4: "umin_ctlz_i16_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i32_zero_undefined" +4: "umin_ctlz_i32_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i64_zero_undefined" +4: "umin_ctlz_i64_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_i1_zero_undefined" +4: "umin_ctlz_i1_zero_undefined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_i1_zero_undefined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_i1_zero_defined" +4: "umin_ctlz_i1_zero_defined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_i1_zero_defined" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_2xi32_splat_zero_undefined" +4: "umin_ctlz_2xi32_splat_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_2xi32_splat_poison_zero_undefined" +4: "umin_ctlz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "umin_ctlz_2xi32_splat_poison_zero_undefined" has unsupported operation: llvm.mlir.undef + +4: "umin_ctlz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umin_ctlz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "umin_ctlz_2xi32_splat_poison_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_2xi32_no_splat_all_lt_bitwidth_zero_undefined" +4: "umin_ctlz_2xi32_no_splat_all_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "umin_ctlz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" +4: "umin_ctlz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_2xi32_negative_no_splat_some_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" +4: "umin_ctlz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_2xi32_negative_no_splat_none_lt_bitwidth_zero_undefined" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_i16_negative_non_constant" +4: "umin_ctlz_i16_negative_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_i16_negative_non_constant" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "umin_ctlz_i16_negative_two_uses" +4: "umin_ctlz_i16_negative_two_uses" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +4: "umin_ctlz_i16_negative_two_uses" has unsupported operation: builtin.unregistered: llvm.intr.umin + diff --git a/SSA/Projects/InstCombine/tests/logs/umul-sign-check.txt b/SSA/Projects/InstCombine/tests/logs/umul-sign-check.txt new file mode 100644 index 000000000..fa5954602 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umul-sign-check.txt @@ -0,0 +1,2 @@ +3: umul-sign-check.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/umulo-square.txt b/SSA/Projects/InstCombine/tests/logs/umulo-square.txt new file mode 100644 index 000000000..08e7e6f7e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umulo-square.txt @@ -0,0 +1,28 @@ +1: "umulov_square_i32" +4: "umulov_square_i32" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umulov_square_i16" +4: "umulov_square_i16" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "umulov_square_i13" +4: "umulov_square_i13" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "umulov_square_i13" has unsupported operation: llvm.extractvalue + +1: "umulov_square_i32_multiuse" +4: "umulov_square_i32_multiuse" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "umulov_square_i32_multiuse" has unsupported operation: llvm.extractvalue + +4: "umulov_square_i32_multiuse" has unsupported operation: llvm.extractvalue + +4: "umulov_square_i32_multiuse" has unsupported operation: llvm.call + +1: "smulov_square_i32" +4: "smulov_square_i32" has unsupported operation: builtin.unregistered: llvm.intr.smul.with.overflow + +4: "smulov_square_i32" has unsupported operation: llvm.extractvalue + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/umulo.txt b/SSA/Projects/InstCombine/tests/logs/umulo.txt new file mode 100644 index 000000000..5310a97a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/umulo.txt @@ -0,0 +1,65 @@ +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "test_generic" has unsupported operation: llvm.extractvalue + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "test_constant1" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "i1_res" +4: "i1_res" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "i1_res" has unsupported operation after optimization: llvm.extractvalue + +1: "v2i1_res" +"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 + +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 + +1: "i1_ov" +4: "i1_ov" has unsupported operation after optimization: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "i1_ov" has unsupported operation after optimization: llvm.extractvalue + +1: "v2i1_ov" +"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 + +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 + diff --git a/SSA/Projects/InstCombine/tests/logs/unavailable-debug.txt b/SSA/Projects/InstCombine/tests/logs/unavailable-debug.txt new file mode 100644 index 000000000..abbc1304a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unavailable-debug.txt @@ -0,0 +1,27 @@ +1: "b" +4: "b" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "b" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: builtin.unregistered: llvm.sext + +4: "main" has unsupported operation: llvm.store + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: builtin.unregistered: llvm.intr.dbg.value + +4: "main" has unsupported operation: llvm.call + +1: "optimize_me_not" +5: "optimize_me_not" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-scalar.txt b/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-scalar.txt new file mode 100644 index 000000000..95ee140e9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-scalar.txt @@ -0,0 +1,124 @@ +1: "scalar0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "scalar1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_varx_mone" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_varx_14" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_mone_vary" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "in_constant_14_vary" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "gen4" +5: "gen4" is empty + +1: "c_1_0_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_0_1_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_0_0_1" +4: "c_0_0_1" has unsupported operation: llvm.call + +4: "c_0_0_1" has unsupported operation: llvm.call + +1: "c_1_1_0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "c_1_0_1" +4: "c_1_0_1" has unsupported operation: llvm.call + +1: "c_0_1_1" +4: "c_0_1_1" has unsupported operation: llvm.call + +1: "c_1_1_1" +4: "c_1_1_1" has unsupported operation: llvm.call + +4: "c_1_1_1" has unsupported operation: llvm.call + +1: "commutativity_constant_14_vary" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "use4" +5: "use4" is empty + +1: "n_oneuse_D" +4: "n_oneuse_D" has unsupported operation: llvm.call + +1: "n_oneuse_A" +4: "n_oneuse_A" has unsupported operation: llvm.call + +1: "n_oneuse_AD" +4: "n_oneuse_AD" has unsupported operation: llvm.call + +4: "n_oneuse_AD" has unsupported operation: llvm.call + +1: "n_var_mask" +7: "n_var_mask" is unchanged by InstCombine + +1: "n_third_var" +7: "n_third_var" is unchanged by InstCombine + 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 new file mode 100644 index 000000000..c45135311 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unfold-masked-merge-with-const-mask-vector.txt @@ -0,0 +1,92 @@ +1: "splat" +"splat" contains vectors which are unsupported + +1: "splat_undef" +"splat_undef" contains vectors which are unsupported + +1: "nonsplat" +"nonsplat" contains vectors which are unsupported + +1: "in_constant_varx_mone" +"in_constant_varx_mone" contains vectors which are unsupported + +1: "in_constant_varx_14" +"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 + +1: "in_constant_varx_14_undef" +"in_constant_varx_14_undef" contains vectors which are unsupported + +1: "in_constant_mone_vary" +"in_constant_mone_vary" contains vectors which are unsupported + +1: "in_constant_14_vary" +"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 + +1: "in_constant_14_vary_undef" +4: "in_constant_14_vary_undef" has unsupported operation: llvm.mlir.undef + +4: "in_constant_14_vary_undef" has unsupported operation: llvm.mlir.undef + +4: "in_constant_14_vary_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "in_constant_14_vary_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "in_constant_14_vary_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "gen4" +5: "gen4" is empty + +1: "c_1_0_0" +"c_1_0_0" contains vectors which are unsupported + +1: "c_0_1_0" +"c_0_1_0" contains vectors which are unsupported + +1: "c_0_0_1" +4: "c_0_0_1" has unsupported operation: llvm.call + +4: "c_0_0_1" has unsupported operation: llvm.call + +1: "c_1_1_0" +"c_1_1_0" contains vectors which are unsupported + +1: "c_1_0_1" +4: "c_1_0_1" has unsupported operation: llvm.call + +1: "c_0_1_1" +4: "c_0_1_1" has unsupported operation: llvm.call + +1: "c_1_1_1" +4: "c_1_1_1" has unsupported operation: llvm.call + +4: "c_1_1_1" has unsupported operation: llvm.call + +1: "commutativity_constant_14_vary" +"commutativity_constant_14_vary" contains vectors which are unsupported + +1: "use4" +5: "use4" is empty + +1: "n_oneuse_D" +4: "n_oneuse_D" has unsupported operation: llvm.call + +1: "n_oneuse_A" +4: "n_oneuse_A" has unsupported operation: llvm.call + +1: "n_oneuse_AD" +4: "n_oneuse_AD" has unsupported operation: llvm.call + +4: "n_oneuse_AD" has unsupported operation: llvm.call + +1: "n_var_mask" +7: "n_var_mask" is unchanged by InstCombine + +1: "n_differenty" +7: "n_differenty" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/unordered-compare-and-ordered.txt b/SSA/Projects/InstCombine/tests/logs/unordered-compare-and-ordered.txt new file mode 100644 index 000000000..768eb6d80 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unordered-compare-and-ordered.txt @@ -0,0 +1,217 @@ +1: "fcmp_ord_and_uno" +4: "fcmp_ord_and_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_uno" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq" +4: "fcmp_ord_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ugt" +4: "fcmp_ord_and_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ugt" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_uge" +4: "fcmp_ord_and_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_uge" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ult" +4: "fcmp_ord_and_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ule" +4: "fcmp_ord_and_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ule" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_une" +4: "fcmp_ord_and_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_une" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_true" +4: "fcmp_ord_and_true" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_vector" +4: "fcmp_ord_and_ueq_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_different_value0" +4: "fcmp_ord_and_ueq_different_value0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_different_value0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_different_value1" +4: "fcmp_ord_and_ueq_different_value1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_different_value1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "foo" +5: "foo" is empty + +1: "fcmp_ord_and_ueq_commute0" +4: "fcmp_ord_and_ueq_commute0" has unsupported operation: llvm.call + +4: "fcmp_ord_and_ueq_commute0" has unsupported operation: llvm.call + +4: "fcmp_ord_and_ueq_commute0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_commute0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_commute1" +4: "fcmp_ord_and_ueq_commute1" has unsupported operation: llvm.call + +4: "fcmp_ord_and_ueq_commute1" has unsupported operation: llvm.call + +4: "fcmp_ord_and_ueq_commute1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_commute1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_oeq_x_x_and_ult" +4: "fcmp_oeq_x_x_and_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_oeq_x_x_and_ult" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_preserve_flags" +4: "fcmp_ord_and_ueq_preserve_flags" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_preserve_flags" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_preserve_subset_flags0" +4: "fcmp_ord_and_ueq_preserve_subset_flags0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_preserve_subset_flags0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_preserve_subset_flags1" +4: "fcmp_ord_and_ueq_preserve_subset_flags1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_preserve_subset_flags1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_flags_lhs" +4: "fcmp_ord_and_ueq_flags_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_flags_lhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_ueq_flags_rhs" +4: "fcmp_ord_and_ueq_flags_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_ueq_flags_rhs" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fabs_ueq" +4: "fcmp_ord_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_fabs_and_ueq" +4: "fcmp_ord_fabs_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_fabs_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fabs_ueq_commute0" +4: "fcmp_ord_and_fabs_ueq_commute0" has unsupported operation: llvm.call + +4: "fcmp_ord_and_fabs_ueq_commute0" has unsupported operation: llvm.call + +4: "fcmp_ord_and_fabs_ueq_commute0" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_and_fabs_ueq_commute0" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fabs_ueq_commute0" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fabs_ueq_commute1" +4: "fcmp_ord_and_fabs_ueq_commute1" has unsupported operation: llvm.call + +4: "fcmp_ord_and_fabs_ueq_commute1" has unsupported operation: llvm.call + +4: "fcmp_ord_and_fabs_ueq_commute1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_and_fabs_ueq_commute1" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fabs_ueq_commute1" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fabs_ueq_vector" +4: "fcmp_ord_and_fabs_ueq_vector" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_and_fabs_ueq_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fabs_ueq_vector" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_fabs_and_fabs_ueq" +4: "fcmp_ord_fabs_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_fabs_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_fabs_and_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fneg_ueq" +4: "fcmp_ord_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fcmp_ord_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_fneg_and_ueq" +4: "fcmp_ord_fneg_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_fneg_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_fneg_and_fneg_ueq" +4: "fcmp_ord_fneg_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fcmp_ord_fneg_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_fneg_and_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fneg_fabs_ueq" +4: "fcmp_ord_and_fneg_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +4: "fcmp_ord_and_fneg_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fcmp_ord_and_fneg_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fneg_fabs_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_copysign_ueq" +4: "fcmp_ord_and_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fcmp_ord_and_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_copysign_ord_and_ueq" +4: "fcmp_copysign_ord_and_ueq" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fcmp_copysign_ord_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_copysign_ord_and_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_copysign_ueq_commute" +4: "fcmp_ord_and_copysign_ueq_commute" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fcmp_ord_and_copysign_ueq_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_copysign_ueq_commute" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_copysign_fneg_ueq" +4: "fcmp_ord_and_copysign_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fcmp_ord_and_copysign_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_copysign_fneg_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +1: "fcmp_ord_and_fneg_copysign_ueq" +4: "fcmp_ord_and_fneg_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.fneg + +4: "fcmp_ord_and_fneg_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.intr.copysign + +4: "fcmp_ord_and_fneg_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "fcmp_ord_and_fneg_copysign_ueq" has unsupported operation: builtin.unregistered: llvm.fcmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt b/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt new file mode 100644 index 000000000..97be76404 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unordered-fcmp-select.txt @@ -0,0 +1,63 @@ +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 + +1: "select_max_ugt_2_use_cmp" +4: "select_max_ugt_2_use_cmp" has unsupported operation: builtin.unregistered: llvm.fcmp + +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/unpack-fca.txt b/SSA/Projects/InstCombine/tests/logs/unpack-fca.txt new file mode 100644 index 000000000..fa641fed0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unpack-fca.txt @@ -0,0 +1,2 @@ +3: unpack-fca.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/unreachable-code.txt b/SSA/Projects/InstCombine/tests/logs/unreachable-code.txt new file mode 100644 index 000000000..2ad5eba04 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unreachable-code.txt @@ -0,0 +1,241 @@ +1: "dummy" +5: "dummy" is empty + +1: "br_true" +4: "br_true" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_true" has unsupported operation: llvm.call + +4: "br_true" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_true" has unsupported operation: builtin.unregistered: llvm.br + +1: "br_false" +4: "br_false" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_false" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_false" has unsupported operation: llvm.call + +4: "br_false" has unsupported operation: builtin.unregistered: llvm.br + +1: "br_undef" +4: "br_undef" has unsupported operation: llvm.mlir.undef + +4: "br_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "br_undef" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_undef" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_undef" has unsupported operation: builtin.unregistered: llvm.br + +1: "br_true_phi_with_repeated_preds" +4: "br_true_phi_with_repeated_preds" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_true_phi_with_repeated_preds" has unsupported operation: llvm.call + +4: "br_true_phi_with_repeated_preds" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_true_phi_with_repeated_preds" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "br_true_const_phi_direct_edge" +4: "br_true_const_phi_direct_edge" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_true_const_phi_direct_edge" has unsupported operation: llvm.call + +4: "br_true_const_phi_direct_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "br_true_var_phi_direct_edge" +4: "br_true_var_phi_direct_edge" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_true_var_phi_direct_edge" has unsupported operation: llvm.call + +4: "br_true_var_phi_direct_edge" has unsupported operation: builtin.unregistered: llvm.br + +1: "switch_case" +4: "switch_case" has unsupported operation: builtin.unregistered: llvm.switch + +4: "switch_case" has unsupported operation: llvm.call + +4: "switch_case" has unsupported operation: llvm.return + +4: "switch_case" has unsupported operation: llvm.return + +1: "switch_default" +4: "switch_default" has unsupported operation: builtin.unregistered: llvm.switch + +4: "switch_default" has unsupported operation: llvm.return + +4: "switch_default" has unsupported operation: llvm.call + +4: "switch_default" has unsupported operation: llvm.return + +1: "switch_undef" +4: "switch_undef" has unsupported operation: llvm.mlir.undef + +4: "switch_undef" has unsupported operation: builtin.unregistered: llvm.switch + +4: "switch_undef" has unsupported operation: llvm.return + +4: "switch_undef" has unsupported operation: llvm.return + +1: "non_term_unreachable" +4: "non_term_unreachable" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "non_term_unreachable" has unsupported operation: llvm.call + +4: "non_term_unreachable" has unsupported operation: llvm.store + +4: "non_term_unreachable" has unsupported operation: llvm.return + +1: "non_term_unreachable_phi" +4: "non_term_unreachable_phi" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "non_term_unreachable_phi" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "non_term_unreachable_phi" has unsupported operation: llvm.store + +4: "non_term_unreachable_phi" has unsupported operation: builtin.unregistered: llvm.br + +1: "non_term_unreachable_following_blocks" +4: "non_term_unreachable_following_blocks" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "non_term_unreachable_following_blocks" has unsupported operation: llvm.call + +4: "non_term_unreachable_following_blocks" has unsupported operation: llvm.store + +4: "non_term_unreachable_following_blocks" has unsupported operation: builtin.unregistered: llvm.br + +4: "non_term_unreachable_following_blocks" has unsupported operation: builtin.unregistered: llvm.br + +4: "non_term_unreachable_following_blocks" has unsupported operation: builtin.unregistered: llvm.br + +1: "br_not_into_loop" +4: "br_not_into_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_not_into_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_not_into_loop" has unsupported operation: llvm.call + +4: "br_not_into_loop" has unsupported operation: llvm.return + +1: "br_into_loop" +4: "br_into_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "br_into_loop" has unsupported operation: llvm.call + +4: "br_into_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "br_into_loop" has unsupported operation: llvm.return + +1: "two_br_not_into_loop" +4: "two_br_not_into_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_br_not_into_loop" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_br_not_into_loop" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_br_not_into_loop" has unsupported operation: llvm.call + +4: "two_br_not_into_loop" has unsupported operation: llvm.return + +1: "one_br_into_loop_one_not" +4: "one_br_into_loop_one_not" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "one_br_into_loop_one_not" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "one_br_into_loop_one_not" has unsupported operation: llvm.call + +4: "one_br_into_loop_one_not" has unsupported operation: builtin.unregistered: llvm.br + +4: "one_br_into_loop_one_not" has unsupported operation: llvm.call + +4: "one_br_into_loop_one_not" has unsupported operation: llvm.return + +1: "two_br_not_into_loop_with_split" +4: "two_br_not_into_loop_with_split" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_br_not_into_loop_with_split" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "two_br_not_into_loop_with_split" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_br_not_into_loop_with_split" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_br_not_into_loop_with_split" has unsupported operation: builtin.unregistered: llvm.br + +4: "two_br_not_into_loop_with_split" has unsupported operation: llvm.call + +4: "two_br_not_into_loop_with_split" has unsupported operation: llvm.return + +1: "irreducible" +4: "irreducible" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "irreducible" has unsupported operation: llvm.call + +4: "irreducible" has unsupported operation: builtin.unregistered: llvm.br + +4: "irreducible" has unsupported operation: llvm.call + +4: "irreducible" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "irreducible" has unsupported operation: llvm.call + +4: "irreducible" has unsupported operation: llvm.return + +1: "really_unreachable" +4: "really_unreachable" has unsupported operation: llvm.return + +1: "really_unreachable_predecessor" +4: "really_unreachable_predecessor" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "really_unreachable_predecessor" has unsupported operation: llvm.return + +4: "really_unreachable_predecessor" has unsupported operation: llvm.call + +4: "really_unreachable_predecessor" has unsupported operation: llvm.return + +1: "pr64235" +4: "pr64235" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "pr64235" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr64235" has unsupported operation: llvm.store + +4: "pr64235" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr64235" has unsupported operation: builtin.unregistered: llvm.br + +4: "pr64235" has unsupported operation: builtin.unregistered: llvm.br + +1: "invoke" +5: "invoke" is empty + +1: "__gxx_personality_v0" +5: "__gxx_personality_v0" is empty + +1: "test" +4: "test" has unsupported operation: llvm.mlir.undef + +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test" has unsupported operation: builtin.unregistered: llvm.invoke + +4: "test" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: builtin.unregistered: llvm.landingpad + +4: "test" has unsupported operation: builtin.unregistered: llvm.br + +4: "test" has unsupported operation: llvm.return + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/unreachable-dbg-info-modified.txt b/SSA/Projects/InstCombine/tests/logs/unreachable-dbg-info-modified.txt new file mode 100644 index 000000000..20de91ce2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unreachable-dbg-info-modified.txt @@ -0,0 +1,7 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.undef + +4: "foo" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "foo" has unsupported operation: builtin.unregistered: llvm.br + diff --git a/SSA/Projects/InstCombine/tests/logs/unrecognized_three-way-comparison.txt b/SSA/Projects/InstCombine/tests/logs/unrecognized_three-way-comparison.txt new file mode 100644 index 000000000..ef328fba0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unrecognized_three-way-comparison.txt @@ -0,0 +1,244 @@ +1: "foo" +5: "foo" is empty + +1: "compare_against_arbitrary_value" +4: "compare_against_arbitrary_value" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero" +4: "compare_against_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero" has unsupported operation: llvm.call + +4: "compare_against_zero" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_one" +4: "compare_against_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_one" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_one" has unsupported operation: llvm.call + +4: "compare_against_one" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_two" +4: "compare_against_two" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_two" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_two" has unsupported operation: llvm.call + +4: "compare_against_two" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_three" +4: "compare_against_three" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_three" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_three" has unsupported operation: llvm.call + +4: "compare_against_three" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_four" +4: "compare_against_four" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_four" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_four" has unsupported operation: llvm.call + +4: "compare_against_four" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_five" +4: "compare_against_five" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_five" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_five" has unsupported operation: llvm.call + +4: "compare_against_five" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_six" +4: "compare_against_six" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_six" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_six" has unsupported operation: llvm.call + +4: "compare_against_six" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_non_idiomatic_1" +4: "compare_against_arbitrary_value_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_non_idiomatic_1" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero_non_idiomatic_add" +4: "compare_against_zero_non_idiomatic_add" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero_non_idiomatic_add" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero_non_idiomatic_add" has unsupported operation: llvm.call + +4: "compare_against_zero_non_idiomatic_add" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_non_idiomatic_2" +4: "compare_against_arbitrary_value_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_non_idiomatic_2" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero_non_idiomatic_or" +4: "compare_against_zero_non_idiomatic_or" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero_non_idiomatic_or" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero_non_idiomatic_or" has unsupported operation: llvm.call + +4: "compare_against_zero_non_idiomatic_or" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_type_mismatch" +4: "compare_against_arbitrary_value_type_mismatch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_type_mismatch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_type_mismatch" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_type_mismatch" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero_type_mismatch_idiomatic" +4: "compare_against_zero_type_mismatch_idiomatic" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero_type_mismatch_idiomatic" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero_type_mismatch_idiomatic" has unsupported operation: llvm.call + +4: "compare_against_zero_type_mismatch_idiomatic" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero_type_mismatch_non_idiomatic_1" +4: "compare_against_zero_type_mismatch_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero_type_mismatch_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero_type_mismatch_non_idiomatic_1" has unsupported operation: llvm.call + +4: "compare_against_zero_type_mismatch_non_idiomatic_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_zero_type_mismatch_non_idiomatic_2" +4: "compare_against_zero_type_mismatch_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_zero_type_mismatch_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_zero_type_mismatch_non_idiomatic_2" has unsupported operation: llvm.call + +4: "compare_against_zero_type_mismatch_non_idiomatic_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "use1" +5: "use1" is empty + +1: "compare_against_fortytwo_commutatibility_0" +4: "compare_against_fortytwo_commutatibility_0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_fortytwo_commutatibility_0" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_0" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_fortytwo_commutatibility_1" +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_1" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_fortytwo_commutatibility_2" +4: "compare_against_fortytwo_commutatibility_2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_fortytwo_commutatibility_2" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_2" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_fortytwo_commutatibility_3" +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: llvm.call + +4: "compare_against_fortytwo_commutatibility_3" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_commutativity0" +4: "compare_against_arbitrary_value_commutativity0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity0" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_commutativity0" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity0" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_commutativity1" +4: "compare_against_arbitrary_value_commutativity1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_commutativity1" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity1" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_commutativity2" +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity2" has unsupported operation: builtin.unregistered: llvm.br + +1: "compare_against_arbitrary_value_commutativity3" +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: llvm.call + +4: "compare_against_arbitrary_value_commutativity3" has unsupported operation: builtin.unregistered: llvm.br + +1: "llvm.scmp.i32.i32" +5: "llvm.scmp.i32.i32" is empty + +1: "llvm.scmp.i32.i64" +5: "llvm.scmp.i32.i64" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-add.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-add.txt new file mode 100644 index 000000000..b0e648ff4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-add.txt @@ -0,0 +1,95 @@ +1: "use8" +5: "use8" is empty + +1: "use2x8" +5: "use2x8" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: llvm.call + +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_symmetry" +4: "t2_symmetry" has unsupported operation: llvm.call + +4: "t2_symmetry" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutative" +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_no_extrause" +4: "t6_no_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_different_y" +4: "n7_different_y" has unsupported operation: llvm.call + +4: "n7_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred0" +4: "n8_wrong_pred0" has unsupported operation: llvm.call + +4: "n8_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred1" +4: "n9_wrong_pred1" has unsupported operation: llvm.call + +4: "n9_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred2" +4: "n10_wrong_pred2" has unsupported operation: llvm.call + +4: "n10_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred3" +4: "n11_wrong_pred3" has unsupported operation: llvm.call + +4: "n11_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred4" +4: "n12_wrong_pred4" has unsupported operation: llvm.call + +4: "n12_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n13_wrong_pred5" +4: "n13_wrong_pred5" has unsupported operation: llvm.call + +4: "n13_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n14_wrong_pred6" +4: "n14_wrong_pred6" has unsupported operation: llvm.call + +4: "n14_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n15_wrong_pred7" +4: "n15_wrong_pred7" has unsupported operation: llvm.call + +4: "n15_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-xor.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-xor.txt new file mode 100644 index 000000000..9543e61f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check-via-xor.txt @@ -0,0 +1,74 @@ +1: "use8" +5: "use8" is empty + +1: "use2x8" +5: "use2x8" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: llvm.call + +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_no_extrause" +4: "t3_no_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_wrong_pred0" +4: "n4_wrong_pred0" has unsupported operation: llvm.call + +4: "n4_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n5_wrong_pred1" +4: "n5_wrong_pred1" has unsupported operation: llvm.call + +4: "n5_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_wrong_pred2" +4: "n6_wrong_pred2" has unsupported operation: llvm.call + +4: "n6_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_wrong_pred3" +4: "n7_wrong_pred3" has unsupported operation: llvm.call + +4: "n7_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred4" +4: "n8_wrong_pred4" has unsupported operation: llvm.call + +4: "n8_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred5" +4: "n9_wrong_pred5" has unsupported operation: llvm.call + +4: "n9_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred6" +4: "n10_wrong_pred6" has unsupported operation: llvm.call + +4: "n10_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred7" +4: "n11_wrong_pred7" has unsupported operation: llvm.call + +4: "n11_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_vec_nonsplat" +4: "n12_vec_nonsplat" has unsupported operation: llvm.call + +4: "n12_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check.txt new file mode 100644 index 000000000..9cd22c16e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-lack-of-overflow-check.txt @@ -0,0 +1,97 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_symmetry" +4: "t2_symmetry" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutative" +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "t6_extrause" +4: "t6_extrause" has unsupported operation: llvm.call + +4: "t6_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_different_y" +4: "n7_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred0" +4: "n8_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred1" +4: "n9_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred2" +4: "n10_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred3" +4: "n11_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred4" +4: "n12_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n13_wrong_pred5" +4: "n13_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n14_wrong_pred6" +4: "n14_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n15_wrong_pred7" +4: "n15_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ult" +4: "low_bitmask_ult" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_uge" +4: "low_bitmask_uge" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ugt" +4: "low_bitmask_ugt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ule" +4: "low_bitmask_ule" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ult_use" +4: "low_bitmask_ult_use" has unsupported operation: llvm.call + +4: "low_bitmask_ult_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ugt_use" +4: "low_bitmask_ugt_use" has unsupported operation: llvm.call + +4: "low_bitmask_ugt_use" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ult_wrong_mask1" +4: "low_bitmask_ult_wrong_mask1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_uge_wrong_mask2" +4: "low_bitmask_uge_wrong_mask2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ugt_swapped" +4: "low_bitmask_ugt_swapped" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_sgt" +4: "low_bitmask_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "low_bitmask_ult_specific_op" +4: "low_bitmask_ult_specific_op" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-add.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-add.txt new file mode 100644 index 000000000..824ecf9a6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-add.txt @@ -0,0 +1,91 @@ +1: "use8" +5: "use8" is empty + +1: "use2x8" +5: "use2x8" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: llvm.call + +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_symmetry" +4: "t2_symmetry" has unsupported operation: llvm.call + +4: "t2_symmetry" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutative" +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t6_no_extrause" +4: "t6_no_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_different_y" +4: "n7_different_y" has unsupported operation: llvm.call + +4: "n7_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred0" +4: "n8_wrong_pred0" has unsupported operation: llvm.call + +4: "n8_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred1" +4: "n9_wrong_pred1" has unsupported operation: llvm.call + +4: "n9_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred2" +4: "n10_wrong_pred2" has unsupported operation: llvm.call + +4: "n10_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred3" +4: "n11_wrong_pred3" has unsupported operation: llvm.call + +4: "n11_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred4" +4: "n12_wrong_pred4" has unsupported operation: llvm.call + +4: "n12_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n13_wrong_pred5" +4: "n13_wrong_pred5" has unsupported operation: llvm.call + +4: "n13_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n14_wrong_pred6" +4: "n14_wrong_pred6" has unsupported operation: llvm.call + +4: "n14_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n15_wrong_pred7" +4: "n15_wrong_pred7" has unsupported operation: llvm.call + +4: "n15_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-xor.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-xor.txt new file mode 100644 index 000000000..9543e61f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check-via-xor.txt @@ -0,0 +1,74 @@ +1: "use8" +5: "use8" is empty + +1: "use2x8" +5: "use2x8" is empty + +1: "t0_basic" +4: "t0_basic" has unsupported operation: llvm.call + +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: llvm.call + +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t3_no_extrause" +4: "t3_no_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_wrong_pred0" +4: "n4_wrong_pred0" has unsupported operation: llvm.call + +4: "n4_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n5_wrong_pred1" +4: "n5_wrong_pred1" has unsupported operation: llvm.call + +4: "n5_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_wrong_pred2" +4: "n6_wrong_pred2" has unsupported operation: llvm.call + +4: "n6_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_wrong_pred3" +4: "n7_wrong_pred3" has unsupported operation: llvm.call + +4: "n7_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred4" +4: "n8_wrong_pred4" has unsupported operation: llvm.call + +4: "n8_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred5" +4: "n9_wrong_pred5" has unsupported operation: llvm.call + +4: "n9_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred6" +4: "n10_wrong_pred6" has unsupported operation: llvm.call + +4: "n10_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred7" +4: "n11_wrong_pred7" has unsupported operation: llvm.call + +4: "n11_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_vec_nonsplat" +4: "n12_vec_nonsplat" has unsupported operation: llvm.call + +4: "n12_vec_nonsplat" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check.txt new file mode 100644 index 000000000..db63759b3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-add-overflow-check.txt @@ -0,0 +1,60 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_symmetry" +4: "t2_symmetry" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t5_commutative" +4: "t5_commutative" has unsupported operation: llvm.call + +4: "t5_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "t6_extrause" +4: "t6_extrause" has unsupported operation: llvm.call + +4: "t6_extrause" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_different_y" +4: "n7_different_y" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred0" +4: "n8_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred1" +4: "n9_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred2" +4: "n10_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred3" +4: "n11_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred4" +4: "n12_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n13_wrong_pred5" +4: "n13_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n14_wrong_pred6" +4: "n14_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n15_wrong_pred7" +4: "n15_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + 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 new file mode 100644 index 000000000..682168afc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-mul-udiv.txt @@ -0,0 +1,77 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t2_commutative" has unsupported operation: llvm.extractvalue + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t4_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +5: "use8" is empty + +1: "t5_extrause0" +4: "t5_extrause0" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +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 + +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 new file mode 100644 index 000000000..6cc03425e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-lack-of-overflow-check-via-udiv-of-allones.txt @@ -0,0 +1,50 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "t2_vec_poison" +4: "t2_vec_poison" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t2_vec_poison" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +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 new file mode 100644 index 000000000..682168afc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-mul-udiv.txt @@ -0,0 +1,77 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: llvm.call + +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t2_commutative" has unsupported operation: llvm.extractvalue + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "t4_commutative" +4: "t4_commutative" has unsupported operation: llvm.call + +4: "t4_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t4_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +5: "use8" is empty + +1: "t5_extrause0" +4: "t5_extrause0" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +4: "t5_extrause0" has unsupported operation: llvm.extractvalue + +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 + +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 new file mode 100644 index 000000000..6cc03425e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-mul-overflow-check-via-udiv-of-allones.txt @@ -0,0 +1,50 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t0_basic" has unsupported operation: llvm.extractvalue + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t1_vec" has unsupported operation: llvm.extractvalue + +1: "t2_vec_poison" +4: "t2_vec_poison" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t2_vec_poison" has unsupported operation: llvm.extractvalue + +1: "gen8" +5: "gen8" is empty + +1: "t3_commutative" +4: "t3_commutative" has unsupported operation: llvm.call + +4: "t3_commutative" has unsupported operation: builtin.unregistered: llvm.intr.umul.with.overflow + +4: "t3_commutative" has unsupported operation: llvm.extractvalue + +1: "use8" +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-sub-lack-of-overflow-check.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-sub-lack-of-overflow-check.txt new file mode 100644 index 000000000..6140243d0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-sub-lack-of-overflow-check.txt @@ -0,0 +1,44 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "t3_extrause0" +4: "t3_extrause0" has unsupported operation: llvm.call + +4: "t3_extrause0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_not_commutative" +4: "n4_not_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n5_wrong_pred0" +4: "n5_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_wrong_pred1" +4: "n6_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_wrong_pred2" +4: "n7_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred3" +4: "n8_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred4" +4: "n9_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred5" +4: "n10_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred6" +4: "n11_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred7" +4: "n12_wrong_pred7" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/unsigned-sub-overflow-check.txt b/SSA/Projects/InstCombine/tests/logs/unsigned-sub-overflow-check.txt new file mode 100644 index 000000000..6140243d0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned-sub-overflow-check.txt @@ -0,0 +1,44 @@ +1: "t0_basic" +4: "t0_basic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t1_vec" +4: "t1_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "t2_commutative" +4: "t2_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use8" +5: "use8" is empty + +1: "t3_extrause0" +4: "t3_extrause0" has unsupported operation: llvm.call + +4: "t3_extrause0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n4_not_commutative" +4: "n4_not_commutative" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n5_wrong_pred0" +4: "n5_wrong_pred0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_wrong_pred1" +4: "n6_wrong_pred1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n7_wrong_pred2" +4: "n7_wrong_pred2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n8_wrong_pred3" +4: "n8_wrong_pred3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n9_wrong_pred4" +4: "n9_wrong_pred4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n10_wrong_pred5" +4: "n10_wrong_pred5" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n11_wrong_pred6" +4: "n11_wrong_pred6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n12_wrong_pred7" +4: "n12_wrong_pred7" 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 new file mode 100644 index 000000000..bfdaa8a4a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unsigned_saturated_sub.txt @@ -0,0 +1,190 @@ +1: "use" +5: "use" is empty + +1: "usei32" +5: "usei32" is empty + +1: "usei1" +5: "usei1" is empty + +1: "usub_sat_C1_C2" +4: "usub_sat_C1_C2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "usub_sat_C1_C2_produce_0" +4: "usub_sat_C1_C2_produce_0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "usub_sat_C1_C2_produce_0_too" +4: "usub_sat_C1_C2_produce_0_too" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.sat + +1: "usub_sat_C1_C2_splat" +4: "usub_sat_C1_C2_splat" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "usub_sat_C1_C2_non_splat" +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 + +1: "usub_sat_C1_C2_splat_produce_0_too" +"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 + +1: "usub_sat_C1_C2_without_nuw" +4: "usub_sat_C1_C2_without_nuw" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_ugt" +4: "max_sub_ugt" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_uge" +4: "max_sub_uge" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_uge_extrause1" +4: "max_sub_uge_extrause1" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_uge_extrause1" has unsupported operation: llvm.call + +1: "max_sub_uge_extrause2" +4: "max_sub_uge_extrause2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "max_sub_uge_extrause2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_uge_extrause2" has unsupported operation: llvm.call + +1: "max_sub_uge_extrause3" +4: "max_sub_uge_extrause3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "max_sub_uge_extrause3" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_uge_extrause3" has unsupported operation: llvm.call + +4: "max_sub_uge_extrause3" has unsupported operation: llvm.call + +1: "max_sub_ugt_vec" +4: "max_sub_ugt_vec" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_ult" +4: "max_sub_ult" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_ult" has unsupported operation: llvm.call + +1: "max_sub_ugt_sel_swapped" +4: "max_sub_ugt_sel_swapped" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_ugt_sel_swapped" has unsupported operation: llvm.call + +1: "max_sub_ult_sel_swapped" +4: "max_sub_ult_sel_swapped" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "neg_max_sub_ugt" +4: "neg_max_sub_ugt" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "neg_max_sub_ugt" has unsupported operation: llvm.call + +1: "neg_max_sub_ult" +4: "neg_max_sub_ult" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "neg_max_sub_ugt_sel_swapped" +4: "neg_max_sub_ugt_sel_swapped" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "neg_max_sub_ugt_sel_swapped_extrause1" +4: "neg_max_sub_ugt_sel_swapped_extrause1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "neg_max_sub_ugt_sel_swapped_extrause1" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "neg_max_sub_ugt_sel_swapped_extrause1" has unsupported operation: llvm.call + +1: "neg_max_sub_ugt_sel_swapped_extrause2" +4: "neg_max_sub_ugt_sel_swapped_extrause2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "neg_max_sub_ugt_sel_swapped_extrause2" has unsupported operation: llvm.call + +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 + +1: "neg_max_sub_ult_sel_swapped" +4: "neg_max_sub_ult_sel_swapped" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "neg_max_sub_ult_sel_swapped" has unsupported operation: llvm.call + +1: "max_sub_ugt_c1" +4: "max_sub_ugt_c1" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_ugt_c01" +4: "max_sub_ugt_c01" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_ugt_c10" +4: "max_sub_ugt_c10" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +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 + +4: "max_sub_ult_c1" has unsupported operation: builtin.unregistered: llvm.sext + +1: "max_sub_ult_c2" +4: "max_sub_ult_c2" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +1: "max_sub_ult_c2_oneuseicmp" +4: "max_sub_ult_c2_oneuseicmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "max_sub_ult_c2_oneuseicmp" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_ult_c2_oneuseicmp" has unsupported operation: llvm.call + +1: "max_sub_ult_c2_oneusesub" +4: "max_sub_ult_c2_oneusesub" has unsupported operation: builtin.unregistered: llvm.intr.usub.sat + +4: "max_sub_ult_c2_oneusesub" has unsupported operation: llvm.call + +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/unused-nonnull.txt b/SSA/Projects/InstCombine/tests/logs/unused-nonnull.txt new file mode 100644 index 000000000..4918cf84f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/unused-nonnull.txt @@ -0,0 +1,21 @@ +1: "main" +4: "main" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "main" has unsupported operation: llvm.load + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +1: "compute" +7: "compute" is unchanged by InstCombine + +1: "call_if_null" +5: "call_if_null" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/unwind-inline-asm.txt b/SSA/Projects/InstCombine/tests/logs/unwind-inline-asm.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/update-bpi.txt b/SSA/Projects/InstCombine/tests/logs/update-bpi.txt new file mode 100644 index 000000000..f3deaf24b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/update-bpi.txt @@ -0,0 +1,7 @@ +1: "invert_cond" +4: "invert_cond" has unsupported operation: llvm.mlir.zero + +4: "invert_cond" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "invert_cond" has unsupported operation: builtin.unregistered: llvm.cond_br + diff --git a/SSA/Projects/InstCombine/tests/logs/urem-simplify-bug.txt b/SSA/Projects/InstCombine/tests/logs/urem-simplify-bug.txt new file mode 100644 index 000000000..914cb5528 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/urem-simplify-bug.txt @@ -0,0 +1,22 @@ +1: "main" +4: "main" has unsupported operation: llvm.mlir.addressof + +4: "main" has unsupported operation: llvm.call + +4: "main" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: builtin.unregistered: llvm.br + +4: "main" has unsupported operation: llvm.call + +1: "func_11" +5: "func_11" is empty + +1: "printf" +5: "printf" is empty + +1: "puts" +5: "puts" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt b/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt new file mode 100644 index 000000000..c1aa18adb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/urem-via-cmp-select.txt @@ -0,0 +1,71 @@ +1: "urem_assume" +4: "urem_assume" has unsupported operation: builtin.unregistered: llvm.freeze + +4: "urem_assume" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "urem_assume" has unsupported operation: builtin.unregistered: llvm.intr.assume + +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 + +4: "urem_assume_without_nuw" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "urem_assume_without_nuw" has unsupported operation: builtin.unregistered: llvm.intr.assume + +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 + +4: "urem_assume_eq" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "urem_assume_ne" +4: "urem_assume_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "urem_assume_ne" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "urem_assume_with_unexpected_const" +4: "urem_assume_with_unexpected_const" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "urem_assume_with_unexpected_const" has unsupported operation: builtin.unregistered: llvm.intr.assume + +1: "urem_without_assume" +4: "urem_without_assume" has unsupported operation: builtin.unregistered: llvm.freeze + +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 + +4: "urem_with_dominating_condition" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "urem_with_dominating_condition" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +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.cond_br + +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 + +4: "urem_with_opposite_condition" has unsupported operation: builtin.unregistered: llvm.cond_br + 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 new file mode 100644 index 000000000..e4d076adf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/urem-via-udiv-mul-sub.txt @@ -0,0 +1,43 @@ +1: "use8" +5: "use8" is empty + +1: "use2xi8" +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 + +1: "gen8" +5: "gen8" is empty + +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 new file mode 100644 index 000000000..c41e045fc --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/usub-overflow-known-by-implied-cond.txt @@ -0,0 +1,174 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test1" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test2" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test3" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test4" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test5" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test6" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test6" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test7" has unsupported operation: llvm.extractvalue + +4: "test7" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test7" has unsupported operation: llvm.extractvalue + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test8" has unsupported operation: llvm.extractvalue + +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test8" has unsupported operation: llvm.extractvalue + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test9" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +1: "test10" +4: "test10" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test10" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test10" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test10" has unsupported operation: llvm.extractvalue + +4: "test10" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test10" has unsupported operation: llvm.extractvalue + +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 + +4: "test10_logical" has unsupported operation: llvm.extractvalue + +4: "test10_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test10_logical" has unsupported operation: llvm.extractvalue + +1: "test11" +4: "test11" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test11" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test11" has unsupported operation: llvm.extractvalue + +4: "test11" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11" has unsupported operation: llvm.extractvalue + +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 + +4: "test11_logical" has unsupported operation: llvm.extractvalue + +4: "test11_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test11_logical" has unsupported operation: llvm.extractvalue + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test12" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test12" has unsupported operation: llvm.extractvalue + +4: "test12" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12" has unsupported operation: llvm.extractvalue + +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 + +4: "test12_logical" has unsupported operation: llvm.extractvalue + +4: "test12_logical" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test12_logical" has unsupported operation: llvm.extractvalue + diff --git a/SSA/Projects/InstCombine/tests/logs/usubo.txt b/SSA/Projects/InstCombine/tests/logs/usubo.txt new file mode 100644 index 000000000..a026c051e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/usubo.txt @@ -0,0 +1,68 @@ +1: "use" +5: "use" is empty + +1: "test_generic" +4: "test_generic" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant0" +4: "test_constant0" has unsupported operation after optimization: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "test_constant0" has unsupported operation after optimization: llvm.extractvalue + +1: "test_constant1" +4: "test_constant1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant2" +4: "test_constant2" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant3" +4: "test_constant3" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant4" +4: "test_constant4" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant127" +4: "test_constant127" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant128" +4: "test_constant128" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_constant255" +4: "test_constant255" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq0" +4: "sub_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_eq0" has unsupported operation: llvm.call + +4: "sub_eq0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_ne0" +4: "sub_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sub_ne0" has unsupported operation: llvm.call + +4: "sub_ne0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_eq1" +4: "sub_eq1" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "sub_eq1" has unsupported operation: llvm.extractvalue + +4: "sub_eq1" has unsupported operation: llvm.call + +4: "sub_eq1" has unsupported operation: llvm.extractvalue + +4: "sub_eq1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sub_sgt0" +4: "sub_sgt0" has unsupported operation: builtin.unregistered: llvm.intr.usub.with.overflow + +4: "sub_sgt0" has unsupported operation: llvm.extractvalue + +4: "sub_sgt0" has unsupported operation: llvm.call + +4: "sub_sgt0" has unsupported operation: llvm.extractvalue + +4: "sub_sgt0" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/vararg.txt b/SSA/Projects/InstCombine/tests/logs/vararg.txt new file mode 100644 index 000000000..cd0970c24 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vararg.txt @@ -0,0 +1,21 @@ +1: "func" +4: "func" has unsupported operation after optimization: llvm.alloca + +4: "func" has unsupported operation after optimization: llvm.alloca + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.start + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vastart + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.start + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vacopy + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vaend + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.end + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vaend + +4: "func" has unsupported operation after optimization: builtin.unregistered: llvm.intr.lifetime.end + diff --git a/SSA/Projects/InstCombine/tests/logs/variable-signext-of-variable-high-bit-extraction.txt b/SSA/Projects/InstCombine/tests/logs/variable-signext-of-variable-high-bit-extraction.txt new file mode 100644 index 000000000..0a387a778 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/variable-signext-of-variable-high-bit-extraction.txt @@ -0,0 +1,302 @@ +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "t0" +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: llvm.call + +4: "t0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t0_zext_of_nbits" +4: "t0_zext_of_nbits" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_zext_of_nbits" has unsupported operation: llvm.call + +4: "t0_zext_of_nbits" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t0_exact" +4: "t0_exact" has unsupported operation: llvm.call + +4: "t0_exact" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t0_exact" has unsupported operation: llvm.call + +4: "t0_exact" has unsupported operation: llvm.call + +4: "t0_exact" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t0_exact" has unsupported operation: llvm.call + +4: "t0_exact" has unsupported operation: llvm.call + +4: "t0_exact" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t1_redundant_sext" +4: "t1_redundant_sext" has unsupported operation: llvm.call + +4: "t1_redundant_sext" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t1_redundant_sext" has unsupported operation: llvm.call + +4: "t1_redundant_sext" has unsupported operation: llvm.call + +4: "t1_redundant_sext" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t1_redundant_sext" has unsupported operation: llvm.call + +4: "t1_redundant_sext" has unsupported operation: llvm.call + +4: "t1_redundant_sext" has unsupported operation: llvm.call + +1: "t2_notrunc" +4: "t2_notrunc" has unsupported operation: llvm.call + +4: "t2_notrunc" has unsupported operation: llvm.call + +4: "t2_notrunc" has unsupported operation: llvm.call + +4: "t2_notrunc" has unsupported operation: llvm.call + +1: "t3_notrunc_redundant_sext" +4: "t3_notrunc_redundant_sext" has unsupported operation: llvm.call + +4: "t3_notrunc_redundant_sext" has unsupported operation: llvm.call + +4: "t3_notrunc_redundant_sext" has unsupported operation: llvm.call + +4: "t3_notrunc_redundant_sext" has unsupported operation: llvm.call + +1: "t4_vec" +4: "t4_vec" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t4_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t5_vec_poison" +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t5_vec_poison" has unsupported operation: llvm.mlir.undef + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t5_vec_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t6_extrause_good0" +4: "t6_extrause_good0" has unsupported operation: llvm.call + +4: "t6_extrause_good0" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t6_extrause_good0" has unsupported operation: llvm.call + +4: "t6_extrause_good0" has unsupported operation: llvm.call + +4: "t6_extrause_good0" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t6_extrause_good0" has unsupported operation: llvm.call + +4: "t6_extrause_good0" has unsupported operation: llvm.call + +4: "t6_extrause_good0" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "t7_extrause_good1" +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: builtin.unregistered: llvm.zext + +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: llvm.call + +4: "t7_extrause_good1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "n8_extrause_bad" +4: "n8_extrause_bad" has unsupported operation: llvm.call + +4: "n8_extrause_bad" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n8_extrause_bad" has unsupported operation: llvm.call + +4: "n8_extrause_bad" has unsupported operation: llvm.call + +4: "n8_extrause_bad" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n8_extrause_bad" has unsupported operation: llvm.call + +4: "n8_extrause_bad" has unsupported operation: llvm.call + +4: "n8_extrause_bad" has unsupported operation: llvm.call + +1: "n9" +4: "n9" has unsupported operation: llvm.call + +4: "n9" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n9" has unsupported operation: llvm.call + +4: "n9" has unsupported operation: llvm.call + +4: "n9" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n9" has unsupported operation: llvm.call + +4: "n9" has unsupported operation: llvm.call + +1: "n10" +4: "n10" has unsupported operation: llvm.call + +4: "n10" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n10" has unsupported operation: llvm.call + +4: "n10" has unsupported operation: llvm.call + +4: "n10" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n10" has unsupported operation: llvm.call + +4: "n10" has unsupported operation: llvm.call + +1: "n11" +4: "n11" has unsupported operation: llvm.call + +4: "n11" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n11" has unsupported operation: llvm.call + +4: "n11" has unsupported operation: llvm.call + +4: "n11" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n11" has unsupported operation: llvm.call + +4: "n11" has unsupported operation: llvm.call + +1: "n12" +4: "n12" has unsupported operation: llvm.call + +4: "n12" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n12" has unsupported operation: llvm.call + +4: "n12" has unsupported operation: llvm.call + +4: "n12" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n12" has unsupported operation: llvm.call + +4: "n12" has unsupported operation: llvm.call + +4: "n12" has unsupported operation: llvm.call + +1: "n13" +4: "n13" has unsupported operation: llvm.call + +4: "n13" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n13" has unsupported operation: llvm.call + +4: "n13" has unsupported operation: llvm.call + +4: "n13" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n13" has unsupported operation: llvm.call + +4: "n13" has unsupported operation: llvm.call + +1: "n13_extrause" +4: "n13_extrause" has unsupported operation: llvm.call + +4: "n13_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n13_extrause" has unsupported operation: llvm.call + +4: "n13_extrause" has unsupported operation: llvm.call + +4: "n13_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n13_extrause" has unsupported operation: llvm.call + +4: "n13_extrause" has unsupported operation: llvm.call + +4: "n13_extrause" has unsupported operation: llvm.call + +1: "n14" +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n14" has unsupported operation: llvm.call + +4: "n14" has unsupported operation: llvm.call + +1: "n14_extrause" +4: "n14_extrause" has unsupported operation: llvm.call + +4: "n14_extrause" has unsupported operation: builtin.unregistered: llvm.zext + +4: "n14_extrause" has unsupported operation: llvm.call + +4: "n14_extrause" has unsupported operation: llvm.call + +4: "n14_extrause" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "n14_extrause" has unsupported operation: llvm.call + +4: "n14_extrause" has unsupported operation: llvm.call + +4: "n14_extrause" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/vec-binop-select-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec-binop-select-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vec-binop-select.txt b/SSA/Projects/InstCombine/tests/logs/vec-binop-select.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts-inseltpoison.txt new file mode 100644 index 000000000..81b341b86 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts-inseltpoison.txt @@ -0,0 +1,2 @@ +3: vec_demanded_elts-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts.txt b/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts.txt new file mode 100644 index 000000000..3f7625382 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_demanded_elts.txt @@ -0,0 +1,2 @@ +3: vec_demanded_elts.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_extract_2elts.txt b/SSA/Projects/InstCombine/tests/logs/vec_extract_2elts.txt new file mode 100644 index 000000000..c309c8809 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_extract_2elts.txt @@ -0,0 +1,11 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt-inseltpoison.txt new file mode 100644 index 000000000..fa061bb54 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt-inseltpoison.txt @@ -0,0 +1,22 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt.txt b/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt.txt new file mode 100644 index 000000000..4b1bbe928 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_extract_var_elt.txt @@ -0,0 +1,42 @@ +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test" has unsupported operation: llvm.mlir.undef + +4: "test" has unsupported operation: llvm.mlir.undef + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: llvm.load + +4: "test" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "test" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "test" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test" has unsupported operation: builtin.unregistered: llvm.sitofp + +4: "test" has unsupported operation: llvm.store + +4: "test" has unsupported operation: llvm.return + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.extractelement + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg-inseltpoison.txt new file mode 100644 index 000000000..4e49f0a3b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg-inseltpoison.txt @@ -0,0 +1,2 @@ +3: vec_gep_scalar_arg-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg.txt b/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg.txt new file mode 100644 index 000000000..69ad321d1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_gep_scalar_arg.txt @@ -0,0 +1,2 @@ +3: vec_gep_scalar_arg.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_phi_extract-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec_phi_extract-inseltpoison.txt new file mode 100644 index 000000000..8b0309120 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_phi_extract-inseltpoison.txt @@ -0,0 +1,74 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.sext + +4: "f" has unsupported operation: llvm.getelementptr + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f" has unsupported operation: llvm.return + +1: "copy" +4: "copy" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "copy" has unsupported operation: builtin.unregistered: llvm.br + +4: "copy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "copy" has unsupported operation: builtin.unregistered: llvm.sext + +4: "copy" has unsupported operation: llvm.getelementptr + +4: "copy" has unsupported operation: llvm.store + +4: "copy" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "copy" has unsupported operation: llvm.return + +1: "nocopy" +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.br + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.sext + +4: "nocopy" has unsupported operation: llvm.getelementptr + +4: "nocopy" has unsupported operation: llvm.store + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nocopy" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "g" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "g" has unsupported operation: builtin.unregistered: llvm.br + +4: "g" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "g" has unsupported operation: builtin.unregistered: llvm.br + +4: "g" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_phi_extract.txt b/SSA/Projects/InstCombine/tests/logs/vec_phi_extract.txt new file mode 100644 index 000000000..8b0309120 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_phi_extract.txt @@ -0,0 +1,74 @@ +1: "f" +4: "f" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "f" has unsupported operation: builtin.unregistered: llvm.br + +4: "f" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "f" has unsupported operation: builtin.unregistered: llvm.sext + +4: "f" has unsupported operation: llvm.getelementptr + +4: "f" has unsupported operation: llvm.store + +4: "f" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "f" has unsupported operation: llvm.return + +1: "copy" +4: "copy" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "copy" has unsupported operation: builtin.unregistered: llvm.br + +4: "copy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "copy" has unsupported operation: builtin.unregistered: llvm.sext + +4: "copy" has unsupported operation: llvm.getelementptr + +4: "copy" has unsupported operation: llvm.store + +4: "copy" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "copy" has unsupported operation: llvm.return + +1: "nocopy" +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.br + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.sext + +4: "nocopy" has unsupported operation: llvm.getelementptr + +4: "nocopy" has unsupported operation: llvm.store + +4: "nocopy" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "nocopy" has unsupported operation: llvm.return + +1: "g" +4: "g" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "g" has unsupported operation: builtin.unregistered: llvm.extractelement + +4: "g" has unsupported operation: builtin.unregistered: llvm.br + +4: "g" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "g" has unsupported operation: builtin.unregistered: llvm.br + +4: "g" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_sext.txt b/SSA/Projects/InstCombine/tests/logs/vec_sext.txt new file mode 100644 index 000000000..4e92c5736 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_sext.txt @@ -0,0 +1,30 @@ +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 + +1: "is_positive_poison_elt" +4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "is_positive_poison_elt" has unsupported operation: llvm.mlir.undef + +4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "is_positive_poison_elt" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/vec_shuffle-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vec_shuffle-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vec_shuffle.txt b/SSA/Projects/InstCombine/tests/logs/vec_shuffle.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt b/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt new file mode 100644 index 000000000..f9ab05404 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vec_udiv_to_shift.txt @@ -0,0 +1,6 @@ +1: "udiv_vec8x16" +"udiv_vec8x16" contains vectors which are unsupported + +1: "udiv_vec4x32" +"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 new file mode 100644 index 000000000..616646d39 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-casts-inseltpoison.txt @@ -0,0 +1,191 @@ +1: "trunc" +4: "trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "and_cmp_is_trunc" +4: "and_cmp_is_trunc" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "and_cmp_is_trunc_even_with_poison_elt" +4: "and_cmp_is_trunc_even_with_poison_elt" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "and_cmp_is_trunc_even_with_poison_elts" +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: llvm.mlir.undef + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: llvm.mlir.undef + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "and_cmp_is_trunc_even_with_poison_elts" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +"test2" contains vectors which are unsupported + +1: "test3" +4: "test3" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test3" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test3" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test4" +4: "test4" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test4" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test4" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test5" +4: "test5" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test5" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test5" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test6" +4: "test6" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test6" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test6" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "test7" +4: "test7" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test7" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test7" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test7" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "convert" +4: "convert" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "convert" has unsupported operation: llvm.store + +4: "convert" has unsupported operation: llvm.return + +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.zext + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "bars" +4: "bars" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "bars" has unsupported operation: builtin.unregistered: llvm.sext + +1: "quxs" +"quxs" contains vectors which are unsupported + +1: "quxt" +7: "quxt" is unchanged by InstCombine + +1: "fa" +4: "fa" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fa" has unsupported operation: builtin.unregistered: llvm.fpext + +1: "fb" +4: "fb" has unsupported operation: builtin.unregistered: llvm.fptoui + +4: "fb" has unsupported operation: builtin.unregistered: llvm.uitofp + +1: "fc" +4: "fc" has unsupported operation: builtin.unregistered: llvm.fptosi + +4: "fc" has unsupported operation: builtin.unregistered: llvm.sitofp + +1: "f" +4: "f" has unsupported operation: llvm.mlir.undef + +1: "pr24458" +"pr24458" contains vectors which are unsupported + +1: "trunc_inselt_undef" +4: "trunc_inselt_undef" has unsupported operation: llvm.mlir.undef + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_inselt_undef" has unsupported operation: llvm.mlir.undef + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "trunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "fptrunc_inselt_undef" +4: "fptrunc_inselt_undef" has unsupported operation: llvm.mlir.undef + +4: "fptrunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.fptrunc + +4: "fptrunc_inselt_undef" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "trunc_inselt1" +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "trunc_inselt1" has unsupported operation: llvm.mlir.undef + +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt1" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "fptrunc_inselt1" +4: "fptrunc_inselt1" has unsupported operation: llvm.mlir.undef + +4: "fptrunc_inselt1" has unsupported operation: llvm.mlir.undef + +4: "fptrunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fptrunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fptrunc_inselt1" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fptrunc_inselt1" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "trunc_inselt2" +4: "trunc_inselt2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "trunc_inselt2" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "fptrunc_inselt2" +4: "fptrunc_inselt2" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "fptrunc_inselt2" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sext_less_casting_with_wideop" +4: "sext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "sext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_less_casting_with_wideop" +4: "zext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "zext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "zext_less_casting_with_wideop" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/vector-casts.txt b/SSA/Projects/InstCombine/tests/logs/vector-casts.txt new file mode 100644 index 000000000..fc92d055e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-casts.txt @@ -0,0 +1,2 @@ +3: vector-casts.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt new file mode 100644 index 000000000..eaad2cc47 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop-inseltpoison.txt @@ -0,0 +1,99 @@ +1: "add" +4: "add" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub" +4: "sub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul" +4: "mul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "and" +4: "and" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "and" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or" +4: "or" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "or" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "xor" +4: "xor" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "xor" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl" +4: "shl" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr" +4: "lshr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use" +5: "use" is empty + +1: "ashr" +4: "ashr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "ashr" has unsupported operation: llvm.call + +4: "ashr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv" +4: "sdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem" +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" +4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd" +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fsub" +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use2" +5: "use2" is empty + +1: "fmul" +4: "fmul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul" has unsupported operation: llvm.call + +4: "fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv" +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "frem" +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "PR33026" +"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 new file mode 100644 index 000000000..eaad2cc47 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-concat-binop.txt @@ -0,0 +1,99 @@ +1: "add" +4: "add" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sub" +4: "sub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "mul" +4: "mul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "and" +4: "and" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "and" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "or" +4: "or" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "or" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "xor" +4: "xor" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "xor" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "shl" +4: "shl" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "lshr" +4: "lshr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use" +5: "use" is empty + +1: "ashr" +4: "ashr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "ashr" has unsupported operation: llvm.call + +4: "ashr" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "sdiv" +4: "sdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "srem" +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" +4: "urem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fadd" +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd" has unsupported operation: builtin.unregistered: llvm.fadd + +4: "fadd" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "fsub" +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.fsub + +4: "fsub" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "use2" +5: "use2" is empty + +1: "fmul" +4: "fmul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "fmul" has unsupported operation: llvm.call + +4: "fmul" has unsupported operation: builtin.unregistered: llvm.fmul + +1: "fdiv" +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.fdiv + +4: "fdiv" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "frem" +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.frem + +4: "frem" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "PR33026" +"PR33026" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/vector-logical-reductions.txt b/SSA/Projects/InstCombine/tests/logs/vector-logical-reductions.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vector-mul.txt b/SSA/Projects/InstCombine/tests/logs/vector-mul.txt new file mode 100644 index 000000000..525313e73 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-mul.txt @@ -0,0 +1,120 @@ +1: "Zero_i8" +"Zero_i8" contains vectors which are unsupported + +1: "Identity_i8" +"Identity_i8" contains vectors which are unsupported + +1: "AddToSelf_i8" +"AddToSelf_i8" contains vectors which are unsupported + +1: "SplatPow2Test1_i8" +"SplatPow2Test1_i8" contains vectors which are unsupported + +1: "SplatPow2Test2_i8" +"SplatPow2Test2_i8" contains vectors which are unsupported + +1: "MulTest1_i8" +"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 + +1: "MulTest4_i8" +7: "MulTest4_i8" is unchanged by InstCombine + +1: "Zero_i16" +"Zero_i16" contains vectors which are unsupported + +1: "Identity_i16" +"Identity_i16" contains vectors which are unsupported + +1: "AddToSelf_i16" +"AddToSelf_i16" contains vectors which are unsupported + +1: "SplatPow2Test1_i16" +"SplatPow2Test1_i16" contains vectors which are unsupported + +1: "SplatPow2Test2_i16" +"SplatPow2Test2_i16" contains vectors which are unsupported + +1: "MulTest1_i16" +"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 + +1: "MulTest4_i16" +7: "MulTest4_i16" is unchanged by InstCombine + +1: "Zero_i32" +"Zero_i32" contains vectors which are unsupported + +1: "Identity_i32" +"Identity_i32" contains vectors which are unsupported + +1: "AddToSelf_i32" +"AddToSelf_i32" contains vectors which are unsupported + +1: "SplatPow2Test1_i32" +"SplatPow2Test1_i32" contains vectors which are unsupported + +1: "SplatPow2Test2_i32" +"SplatPow2Test2_i32" contains vectors which are unsupported + +1: "MulTest1_i32" +"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 + +1: "MulTest4_i32" +7: "MulTest4_i32" is unchanged by InstCombine + +1: "Zero_i64" +"Zero_i64" contains vectors which are unsupported + +1: "Identity_i64" +"Identity_i64" contains vectors which are unsupported + +1: "AddToSelf_i64" +"AddToSelf_i64" contains vectors which are unsupported + +1: "SplatPow2Test1_i64" +"SplatPow2Test1_i64" contains vectors which are unsupported + +1: "SplatPow2Test2_i64" +"SplatPow2Test2_i64" contains vectors which are unsupported + +1: "MulTest1_i64" +"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 + +1: "MulTest4_i64" +7: "MulTest4_i64" is unchanged by InstCombine + +1: "ShiftMulTest1" +"ShiftMulTest1" contains vectors which are unsupported + +1: "ShiftMulTest2" +"ShiftMulTest2" contains vectors which are unsupported + +1: "ShiftMulTest3" +"ShiftMulTest3" contains vectors which are unsupported + +1: "ShiftMulTest4" +"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 new file mode 100644 index 000000000..6432d4c55 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-reduce-min-max-known.txt @@ -0,0 +1,80 @@ +1: "vec_reduce_umax_non_zero" +4: "vec_reduce_umax_non_zero" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +4: "vec_reduce_umax_non_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_reduce_umax_non_zero_fail" +4: "vec_reduce_umax_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +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 + +1: "vec_reduce_umin_non_zero_fail" +4: "vec_reduce_umin_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin + +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 + +1: "vec_reduce_smax_non_zero1" +4: "vec_reduce_smax_non_zero1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smax + +4: "vec_reduce_smax_non_zero1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_reduce_smax_non_zero_fail" +4: "vec_reduce_smax_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smax + +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 + +1: "vec_reduce_smin_non_zero1" +4: "vec_reduce_smin_non_zero1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin + +4: "vec_reduce_smin_non_zero1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "vec_reduce_smin_non_zero_fail" +4: "vec_reduce_smin_non_zero_fail" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.smin + +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 + +1: "vec_reduce_umax_known1" +4: "vec_reduce_umax_known1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +1: "vec_reduce_umax_known_fail0" +4: "vec_reduce_umax_known_fail0" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umax + +1: "vec_reduce_umax_known_fail1" +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 + +1: "vec_reduce_umin_known1" +4: "vec_reduce_umin_known1" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin + +1: "vec_reduce_umin_known_fail0" +4: "vec_reduce_umin_known_fail0" has unsupported operation: builtin.unregistered: llvm.intr.vector.reduce.umin + +1: "vec_reduce_umin_known_fail1" +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 + +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 + +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-reductions.txt b/SSA/Projects/InstCombine/tests/logs/vector-reductions.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vector-reverse.txt b/SSA/Projects/InstCombine/tests/logs/vector-reverse.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vector-trunc.txt b/SSA/Projects/InstCombine/tests/logs/vector-trunc.txt new file mode 100644 index 000000000..704bb97a4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-trunc.txt @@ -0,0 +1,9 @@ +1: "trunc_add_nsw" +4: "trunc_add_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_add_no_nsw" +4: "trunc_add_no_nsw" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "trunc_add_mixed" +4: "trunc_add_mixed" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/vector-type.txt b/SSA/Projects/InstCombine/tests/logs/vector-type.txt new file mode 100644 index 000000000..12b50ddba --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-type.txt @@ -0,0 +1,13 @@ +1: "vselect1" +4: "vselect1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "vselect1" has unsupported operation: builtin.unregistered: llvm.bitcast + +4: "vselect1" has unsupported operation: builtin.unregistered: llvm.bitcast + +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 new file mode 100644 index 000000000..231926139 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-udiv.txt @@ -0,0 +1,31 @@ +1: "test_v4i32_splatconst_pow2" +"test_v4i32_splatconst_pow2" contains vectors which are unsupported + +1: "test_v4i32_const_pow2" +"test_v4i32_const_pow2" contains vectors which are unsupported + +1: "test_v4i32_negconstsplat" +4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_v4i32_negconst" +4: "test_v4i32_negconst" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_v4i32_negconst" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_v4i32_negconst_undef" +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 + +1: "test_v4i32_shl_const_pow2" +"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 + +1: "test_v4i32_zext_shl_const_pow2" +4: "test_v4i32_zext_shl_const_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 new file mode 100644 index 000000000..9b248e17d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-urem.txt @@ -0,0 +1,36 @@ +1: "test_v4i32_splatconst_pow2" +"test_v4i32_splatconst_pow2" contains vectors which are unsupported + +1: "test_v4i32_const_pow2" +"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 + +1: "test_v4i32_one" +4: "test_v4i32_one" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_v4i32_one" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_v4i32_one_poison" +4: "test_v4i32_one_poison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test_v4i32_one_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_v4i32_negconstsplat" +4: "test_v4i32_negconstsplat" has unsupported operation: builtin.unregistered: llvm.freeze + +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 new file mode 100644 index 000000000..8dfea008f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector-xor.txt @@ -0,0 +1,154 @@ +1: "test_v4i32_xor_repeated_and_0" +"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 + +1: "test_v4i32_xor_bswap_splatconst" +4: "test_v4i32_xor_bswap_splatconst" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test_v4i32_xor_bswap_const" +4: "test_v4i32_xor_bswap_const" has unsupported operation: builtin.unregistered: llvm.intr.bswap + +1: "test_v4i32_xor_bswap_const_poison" +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_bswap_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_v4i32_demorgan_or" +"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 + +1: "test_v4i32_not_ashr_not_poison" +"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 + +1: "test_v4i32_not_ashr_negative_const" +"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 + +4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_ashr_negative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_v4i32_not_lshr_nonnegative_const" +"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 + +4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_lshr_nonnegative_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_v4i32_not_sub_const" +"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 + +4: "test_v4i32_not_sub_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_not_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_not_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_v4i32_xor_signmask_sub_const" +"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 + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_sub_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "test_v4i32_xor_signmask_add_const" +"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 + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: llvm.mlir.undef + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "test_v4i32_xor_signmask_add_const_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/vector_gep1-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector_gep1-inseltpoison.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vector_gep1.txt b/SSA/Projects/InstCombine/tests/logs/vector_gep1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vector_gep2.txt b/SSA/Projects/InstCombine/tests/logs/vector_gep2.txt new file mode 100644 index 000000000..bd2e63489 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector_gep2.txt @@ -0,0 +1,2 @@ +3: vector_gep2.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt new file mode 100644 index 000000000..7dc9e6849 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle-inseltpoison.txt @@ -0,0 +1,90 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "foo" has unsupported operation: llvm.mlir.undef + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bar" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "baz" +4: "baz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "baz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazz" +4: "bazz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazz" has unsupported operation: llvm.mlir.undef + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzz" +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazzz" has unsupported operation: llvm.mlir.undef + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzzz" +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzzzz" +"bazzzzz" contains vectors which are unsupported + +1: "bazzzzzz" +4: "bazzzzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazzzzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt new file mode 100644 index 000000000..e519b7ab1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vector_insertelt_shuffle.txt @@ -0,0 +1,88 @@ +1: "foo" +4: "foo" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "foo" has unsupported operation: llvm.mlir.undef + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "foo" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "bar" +4: "bar" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bar" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "baz" +4: "baz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "baz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazz" +4: "bazz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazz" has unsupported operation: llvm.mlir.undef + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.shufflevector + +4: "bazz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzz" +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazzz" has unsupported operation: llvm.mlir.undef + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzzz" +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "bazzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "bazzzzz" +"bazzzzz" contains vectors which are unsupported + +1: "bazzzzzz" +4: "bazzzzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzzzz" has unsupported operation: llvm.mlir.undef + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "bazzzzzz" has unsupported operation: builtin.unregistered: llvm.insertelement + diff --git a/SSA/Projects/InstCombine/tests/logs/volatile_load_cast.txt b/SSA/Projects/InstCombine/tests/logs/volatile_load_cast.txt new file mode 100644 index 000000000..652c0ce55 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/volatile_load_cast.txt @@ -0,0 +1,25 @@ +1: "float_load" +4: "float_load" has unsupported operation: llvm.load + +4: "float_load" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "i32_load" +4: "i32_load" has unsupported operation: llvm.load + +4: "i32_load" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "double_load" +4: "double_load" has unsupported operation: llvm.load + +4: "double_load" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "i64_load" +4: "i64_load" has unsupported operation: llvm.load + +4: "i64_load" has unsupported operation: builtin.unregistered: llvm.bitcast + +1: "ptr_load" +4: "ptr_load" has unsupported operation: llvm.load + +4: "ptr_load" has unsupported operation: llvm.inttoptr + diff --git a/SSA/Projects/InstCombine/tests/logs/volatile_store.txt b/SSA/Projects/InstCombine/tests/logs/volatile_store.txt new file mode 100644 index 000000000..366692717 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/volatile_store.txt @@ -0,0 +1,20 @@ +1: "self_assign_1" +4: "self_assign_1" has unsupported operation: llvm.mlir.addressof + +4: "self_assign_1" has unsupported operation: llvm.load + +4: "self_assign_1" has unsupported operation: llvm.store + +4: "self_assign_1" has unsupported operation: builtin.unregistered: llvm.br + +4: "self_assign_1" has unsupported operation: llvm.return + +1: "volatile_store_before_unreachable" +4: "volatile_store_before_unreachable" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "volatile_store_before_unreachable" has unsupported operation: llvm.store + +4: "volatile_store_before_unreachable" has unsupported operation: builtin.unregistered: llvm.unreachable + +4: "volatile_store_before_unreachable" has unsupported operation: llvm.return + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale.txt b/SSA/Projects/InstCombine/tests/logs/vscale.txt new file mode 100644 index 000000000..9c779912b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale.txt @@ -0,0 +1,9 @@ +1: "promote_vscale_i32_to_i64" +4: "promote_vscale_i32_to_i64" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "pomote_zext_shl_vscale_i32_to_i64" +4: "pomote_zext_shl_vscale_i32_to_i64" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "free_zext_vscale_shl_i32_to_i64" +4: "free_zext_vscale_shl_i32_to_i64" has unsupported operation: builtin.unregistered: llvm.intr.vscale + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_alloca.txt b/SSA/Projects/InstCombine/tests/logs/vscale_alloca.txt new file mode 100644 index 000000000..925cd0f5d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_alloca.txt @@ -0,0 +1,2 @@ +3: vscale_alloca.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_cmp.txt b/SSA/Projects/InstCombine/tests/logs/vscale_cmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_extractelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vscale_extractelement-inseltpoison.txt new file mode 100644 index 000000000..e50ddaac3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_extractelement-inseltpoison.txt @@ -0,0 +1,2 @@ +3: vscale_extractelement-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_extractelement.txt b/SSA/Projects/InstCombine/tests/logs/vscale_extractelement.txt new file mode 100644 index 000000000..89ce4af6c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_extractelement.txt @@ -0,0 +1,2 @@ +3: vscale_extractelement.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_gep.txt b/SSA/Projects/InstCombine/tests/logs/vscale_gep.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_insertelement-inseltpoison.txt b/SSA/Projects/InstCombine/tests/logs/vscale_insertelement-inseltpoison.txt new file mode 100644 index 000000000..af9f8f444 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_insertelement-inseltpoison.txt @@ -0,0 +1,2 @@ +3: vscale_insertelement-inseltpoison.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_insertelement.txt b/SSA/Projects/InstCombine/tests/logs/vscale_insertelement.txt new file mode 100644 index 000000000..36b2abf43 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_insertelement.txt @@ -0,0 +1,2 @@ +3: vscale_insertelement.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_load.txt b/SSA/Projects/InstCombine/tests/logs/vscale_load.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_sext_and_zext.txt b/SSA/Projects/InstCombine/tests/logs/vscale_sext_and_zext.txt new file mode 100644 index 000000000..76fb0d2a2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_sext_and_zext.txt @@ -0,0 +1,31 @@ +1: "vscale_SExt_i8toi32" +4: "vscale_SExt_i8toi32" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "vscale_SExt_i8toi32_poison" +4: "vscale_SExt_i8toi32_poison" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_SExt_i8toi32_poison" has unsupported operation: builtin.unregistered: llvm.sext + +1: "vscale_ZExt_i8toi32" +4: "vscale_ZExt_i8toi32" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "vscale_ZExt_i8toi32_poison" +4: "vscale_ZExt_i8toi32_poison" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ZExt_i8toi32_poison" has unsupported operation: builtin.unregistered: llvm.zext + +1: "vscale_ZExt_i8toi32_unknown" +4: "vscale_ZExt_i8toi32_unknown" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ZExt_i8toi32_unknown" has unsupported operation: builtin.unregistered: llvm.zext + +1: "vscale_SExt_i8toi32_unbounded" +4: "vscale_SExt_i8toi32_unbounded" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_SExt_i8toi32_unbounded" has unsupported operation: builtin.unregistered: llvm.sext + +1: "vscale_ZExt_i8toi32_unbounded" +4: "vscale_ZExt_i8toi32_unbounded" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_ZExt_i8toi32_unbounded" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_trunc.txt b/SSA/Projects/InstCombine/tests/logs/vscale_trunc.txt new file mode 100644 index 000000000..a6ec73566 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_trunc.txt @@ -0,0 +1,13 @@ +1: "vscale_trunc_i32toi8" +4: "vscale_trunc_i32toi8" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +1: "vscale_trunc_i32toi8_poison" +4: "vscale_trunc_i32toi8_poison" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_trunc_i32toi8_poison" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "vscale_trunc_i32toi8_noAttr" +4: "vscale_trunc_i32toi8_noAttr" has unsupported operation: builtin.unregistered: llvm.intr.vscale + +4: "vscale_trunc_i32toi8_noAttr" has unsupported operation: builtin.unregistered: llvm.trunc + diff --git a/SSA/Projects/InstCombine/tests/logs/vscale_zero.txt b/SSA/Projects/InstCombine/tests/logs/vscale_zero.txt new file mode 100644 index 000000000..68ab01fb2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/vscale_zero.txt @@ -0,0 +1,10 @@ +1: "iszero" +4: "iszero" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "iszero" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "iszero_range" +4: "iszero_range" has unsupported operation after optimization: builtin.unregistered: llvm.intr.vscale + +4: "iszero_range" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt new file mode 100644 index 000000000..7522fb789 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-1.txt @@ -0,0 +1,123 @@ +1: "wcslen" +5: "wcslen" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +4: "test_simplify5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.load + +4: "test_simplify6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify7" has unsupported operation after optimization: llvm.call + +4: "test_simplify7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.load + +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_simplify11" +4: "test_simplify11" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_no_simplify2" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_simplify2_no_null_opt" +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2_no_null_opt" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify2_no_null_opt" has unsupported operation: llvm.call + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_no_simplify3" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify3_no_null_opt" +4: "test_no_simplify3_no_null_opt" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3_no_null_opt" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_no_simplify3_no_null_opt" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify3_no_null_opt" has unsupported operation: llvm.call + +1: "test_simplify12" +4: "test_simplify12" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify12" has unsupported operation after optimization: llvm.call + +1: "fold_wcslen_1" +4: "fold_wcslen_1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "fold_wcslen_1" has unsupported operation after optimization: llvm.getelementptr + +4: "fold_wcslen_1" has unsupported operation after optimization: llvm.call + +1: "no_fold_wcslen_1" +4: "no_fold_wcslen_1" has unsupported operation: llvm.mlir.addressof + +4: "no_fold_wcslen_1" has unsupported operation: llvm.getelementptr + +4: "no_fold_wcslen_1" has unsupported operation: llvm.call + +1: "no_fold_wcslen_2" +4: "no_fold_wcslen_2" has unsupported operation: llvm.mlir.addressof + +4: "no_fold_wcslen_2" has unsupported operation: llvm.getelementptr + +4: "no_fold_wcslen_2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-2.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-2.txt new file mode 100644 index 000000000..3c5213137 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-2.txt @@ -0,0 +1,8 @@ +1: "wcslen" +5: "wcslen" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt new file mode 100644 index 000000000..86f6d5911 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-3.txt @@ -0,0 +1,84 @@ +1: "wcslen" +5: "wcslen" is empty + +1: "test_simplify1" +4: "test_simplify1" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify1" has unsupported operation after optimization: llvm.call + +1: "test_simplify2" +4: "test_simplify2" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify2" has unsupported operation after optimization: llvm.call + +1: "test_simplify3" +4: "test_simplify3" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify3" has unsupported operation after optimization: llvm.call + +1: "test_simplify4" +4: "test_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify4" has unsupported operation after optimization: llvm.call + +1: "test_simplify5" +4: "test_simplify5" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify5" has unsupported operation after optimization: llvm.call + +4: "test_simplify5" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify6" +4: "test_simplify6" has unsupported operation: llvm.load + +4: "test_simplify6" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify7" +4: "test_simplify7" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_simplify7" has unsupported operation after optimization: llvm.call + +4: "test_simplify7" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "test_simplify8" +4: "test_simplify8" has unsupported operation: llvm.load + +4: "test_simplify8" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test_simplify9" +4: "test_simplify9" has unsupported operation: builtin.unregistered: llvm.select + +1: "test_simplify10" +4: "test_simplify10" has unsupported operation: builtin.unregistered: llvm.sext + +1: "test_simplify11" +4: "test_simplify11" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + +1: "test_no_simplify2" +4: "test_no_simplify2" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify2" has unsupported operation: builtin.unregistered: llvm.sext + +4: "test_no_simplify2" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify2" has unsupported operation: llvm.call + +1: "test_no_simplify3" +4: "test_no_simplify3" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify3" has unsupported operation: builtin.unregistered: llvm.zext + +4: "test_no_simplify3" has unsupported operation: llvm.getelementptr + +4: "test_no_simplify3" has unsupported operation: llvm.call + +1: "test_no_simplify4" +4: "test_no_simplify4" has unsupported operation after optimization: llvm.mlir.addressof + +4: "test_no_simplify4" has unsupported operation after optimization: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-4.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-4.txt new file mode 100644 index 000000000..3c5213137 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-4.txt @@ -0,0 +1,8 @@ +1: "wcslen" +5: "wcslen" is empty + +1: "test_no_simplify1" +4: "test_no_simplify1" has unsupported operation: llvm.mlir.addressof + +4: "test_no_simplify1" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt new file mode 100644 index 000000000..2380cbc31 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-5.txt @@ -0,0 +1,84 @@ +1: "wcslen" +5: "wcslen" is empty + +1: "fold_wcslen_s3_pi_s5" +4: "fold_wcslen_s3_pi_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_pi_s5" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_pi_p1_s5" has unsupported operation: llvm.getelementptr + +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" +4: "call_wcslen_s5_3_pi_s5" has unsupported operation: llvm.mlir.addressof + +4: "call_wcslen_s5_3_pi_s5" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_wcslen_s5_3_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "call_wcslen_s5_3_s5_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_wcslen_s3_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_s5_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "call_wcslen_s3_s5_3_pj" has unsupported operation: llvm.mlir.addressof + +4: "call_wcslen_s3_s5_3_pj" has unsupported operation: llvm.mlir.addressof + +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" +4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: llvm.mlir.addressof + +4: "fold_wcslen_s3_pi_s5_pj" has unsupported operation: llvm.getelementptr + +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/wcslen-6.txt b/SSA/Projects/InstCombine/tests/logs/wcslen-6.txt new file mode 100644 index 000000000..fe9d64bf0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/wcslen-6.txt @@ -0,0 +1,2 @@ +3: wcslen-6.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/weak-symbols.txt b/SSA/Projects/InstCombine/tests/logs/weak-symbols.txt new file mode 100644 index 000000000..60e9d2a4b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/weak-symbols.txt @@ -0,0 +1,17 @@ +1: "foo" +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.mlir.addressof + +4: "foo" has unsupported operation: llvm.call + +1: "bar" +4: "bar" has unsupported operation after optimization: llvm.mlir.addressof + +4: "bar" has unsupported operation after optimization: llvm.mlir.addressof + +4: "bar" has unsupported operation after optimization: llvm.call + +1: "strcmp" +5: "strcmp" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/widenable-conditions.txt b/SSA/Projects/InstCombine/tests/logs/widenable-conditions.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/win-fdim.txt b/SSA/Projects/InstCombine/tests/logs/win-fdim.txt new file mode 100644 index 000000000..4ca8c4298 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/win-fdim.txt @@ -0,0 +1,18 @@ +1: "fdim_double" +4: "fdim_double" has unsupported operation after optimization: llvm.call + +1: "fdim_float" +4: "fdim_float" has unsupported operation after optimization: llvm.call + +1: "fdim_long" +4: "fdim_long" has unsupported operation after optimization: llvm.call + +1: "fdim" +5: "fdim" is empty + +1: "fdimf" +5: "fdimf" is empty + +1: "fdiml" +5: "fdiml" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/win-math.txt b/SSA/Projects/InstCombine/tests/logs/win-math.txt new file mode 100644 index 000000000..bc3656b31 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/win-math.txt @@ -0,0 +1,215 @@ +1: "acos" +5: "acos" is empty + +1: "float_acos" +4: "float_acos" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_acos" has unsupported operation: llvm.call + +4: "float_acos" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "asin" +5: "asin" is empty + +1: "float_asin" +4: "float_asin" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_asin" has unsupported operation: llvm.call + +4: "float_asin" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "atan" +5: "atan" is empty + +1: "float_atan" +4: "float_atan" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_atan" has unsupported operation: llvm.call + +4: "float_atan" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "atan2" +5: "atan2" is empty + +1: "float_atan2" +4: "float_atan2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_atan2" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_atan2" has unsupported operation: llvm.call + +4: "float_atan2" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "ceil" +5: "ceil" is empty + +1: "float_ceil" +4: "float_ceil" has unsupported operation: builtin.unregistered: llvm.intr.ceil + +1: "_copysign" +5: "_copysign" is empty + +1: "float_copysign" +4: "float_copysign" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_copysign" has unsupported operation: llvm.call + +4: "float_copysign" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "cos" +5: "cos" is empty + +1: "float_cos" +4: "float_cos" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_cos" has unsupported operation: llvm.call + +4: "float_cos" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "cosh" +5: "cosh" is empty + +1: "float_cosh" +4: "float_cosh" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_cosh" has unsupported operation: llvm.call + +4: "float_cosh" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "exp" +5: "exp" is empty + +1: "float_exp" +4: "float_exp" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_exp" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_exp" has unsupported operation: llvm.call + +4: "float_exp" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "fabs" +5: "fabs" is empty + +1: "float_fabs" +4: "float_fabs" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_fabs" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_fabs" has unsupported operation: llvm.call + +4: "float_fabs" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "floor" +5: "floor" is empty + +1: "float_floor" +4: "float_floor" has unsupported operation: builtin.unregistered: llvm.intr.floor + +1: "fmod" +5: "fmod" is empty + +1: "float_fmod" +4: "float_fmod" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_fmod" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_fmod" has unsupported operation: llvm.call + +4: "float_fmod" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "log" +5: "log" is empty + +1: "float_log" +4: "float_log" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_log" has unsupported operation: llvm.call + +4: "float_log" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "logb" +5: "logb" is empty + +1: "float_logb" +4: "float_logb" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_logb" has unsupported operation: llvm.call + +4: "float_logb" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "pow" +5: "pow" is empty + +1: "float_pow" +4: "float_pow" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_pow" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_pow" has unsupported operation: llvm.call + +4: "float_pow" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sin" +5: "sin" is empty + +1: "float_sin" +4: "float_sin" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_sin" has unsupported operation: llvm.call + +4: "float_sin" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sinh" +5: "sinh" is empty + +1: "float_sinh" +4: "float_sinh" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_sinh" has unsupported operation: llvm.call + +4: "float_sinh" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "sqrt" +5: "sqrt" is empty + +1: "float_sqrt" +4: "float_sqrt" has unsupported operation: llvm.call + +1: "tan" +5: "tan" is empty + +1: "float_tan" +4: "float_tan" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_tan" has unsupported operation: llvm.call + +4: "float_tan" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "tanh" +5: "tanh" is empty + +1: "float_tanh" +4: "float_tanh" has unsupported operation: builtin.unregistered: llvm.fpext + +4: "float_tanh" has unsupported operation: llvm.call + +4: "float_tanh" has unsupported operation: builtin.unregistered: llvm.fptrunc + +1: "round" +5: "round" is empty + +1: "float_round" +4: "float_round" has unsupported operation: builtin.unregistered: llvm.intr.round + +1: "powf" +5: "powf" is empty + +1: "float_powsqrt" +4: "float_powsqrt" has unsupported operation: llvm.call + +4: "float_powsqrt" has unsupported operation: builtin.unregistered: llvm.intr.fabs + +1: "sqrtf" +5: "sqrtf" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/with_overflow.txt b/SSA/Projects/InstCombine/tests/logs/with_overflow.txt new file mode 100644 index 000000000..1f617e191 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/with_overflow.txt @@ -0,0 +1,2 @@ +3: with_overflow.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt b/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt new file mode 100644 index 000000000..60a101cc6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-and-or.txt @@ -0,0 +1,90 @@ +1: "xor_logic_and_logic_or1" +4: "xor_logic_and_logic_or1" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_logic_and_logic_or2" +4: "xor_logic_and_logic_or2" has unsupported operation: builtin.unregistered: llvm.select + +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 + +1: "xor_logic_and_logic_or_vector1" +4: "xor_logic_and_logic_or_vector1" has unsupported operation: builtin.unregistered: llvm.select + +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 + +4: "xor_logic_and_logic_or_vector_poison1" has unsupported operation: llvm.mlir.undef + +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.insertelement + +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 + +1: "xor_and_logic_or1" +4: "xor_and_logic_or1" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_and_logic_or2" +4: "xor_and_logic_or2" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_and_logic_or_vector" +4: "xor_and_logic_or_vector" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_and_logic_or_vector_poison" +4: "xor_and_logic_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_and_logic_or_vector_poison" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "xor_logic_and_or2" +4: "xor_logic_and_or2" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_logic_and_or_vector" +4: "xor_logic_and_or_vector" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_logic_and_or_vector_poison" +4: "xor_logic_and_or_vector_poison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "xor_logic_and_or_vector_poison" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "xor_and_or_vector" +4: "xor_and_or_vector" has unsupported operation: builtin.unregistered: llvm.select + +1: "xor_and_or_negative_oneuse" +4: "xor_and_or_negative_oneuse" has unsupported operation: llvm.call + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt b/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt new file mode 100644 index 000000000..6475d1395 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-ashr.txt @@ -0,0 +1,85 @@ +1: "use16" +5: "use16" is empty + +1: "use32" +5: "use32" is empty + +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 + +4: "testv4i16i8_poison" has unsupported operation: llvm.mlir.undef + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: llvm.mlir.undef + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "testv4i16i8_poison" has unsupported operation: builtin.unregistered: llvm.insertelement + +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 + +1: "vectorpoison" +4: "vectorpoison" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "vectorpoison" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "vectorpoison" has unsupported operation: builtin.unregistered: llvm.sext + +4: "vectorpoison" has unsupported operation: builtin.unregistered: llvm.shufflevector + +1: "extrause" +4: "extrause" has unsupported operation: llvm.call + +1: "extrause_trunc1" +4: "extrause_trunc1" has unsupported operation: llvm.call + +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 + +4: "extrause_trunc2" has unsupported operation: llvm.call + diff --git a/SSA/Projects/InstCombine/tests/logs/xor-icmps.txt b/SSA/Projects/InstCombine/tests/logs/xor-icmps.txt new file mode 100644 index 000000000..4651740b5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-icmps.txt @@ -0,0 +1,134 @@ +1: "eq_zero" +4: "eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "ne_zero" +4: "ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "eq_ne_zero" +4: "eq_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "eq_ne_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero" +4: "slt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "use" +5: "use" is empty + +1: "slt_zero_extra_uses" +4: "slt_zero_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_zero_extra_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "slt_zero_extra_uses" has unsupported operation: llvm.call + +4: "slt_zero_extra_uses" has unsupported operation: llvm.call + +1: "sgt_zero" +4: "sgt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "sgt_zero" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_minus1" +4: "sgt_minus1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "slt_zero_sgt_minus1" +4: "slt_zero_sgt_minus1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "sgt_minus1_slt_zero_sgt" +4: "sgt_minus1_slt_zero_sgt" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "different_type_cmp_ops" +4: "different_type_cmp_ops" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "different_type_cmp_ops" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test13" +4: "test13" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test14" +4: "test14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "test14" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "xor_icmp_ptr" +4: "xor_icmp_ptr" has unsupported operation: llvm.mlir.zero + +4: "xor_icmp_ptr" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_ptr" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_true_signed" +4: "xor_icmp_true_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_signed" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "xor_icmp_true_signed_multiuse1" +4: "xor_icmp_true_signed_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_signed_multiuse1" has unsupported operation: llvm.call + +1: "xor_icmp_true_signed_multiuse2" +4: "xor_icmp_true_signed_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_signed_multiuse2" has unsupported operation: llvm.call + +4: "xor_icmp_true_signed_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_signed_multiuse2" has unsupported operation: llvm.call + +1: "xor_icmp_true_signed_commuted" +4: "xor_icmp_true_signed_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_signed_commuted" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "xor_icmp_true_unsigned" +4: "xor_icmp_true_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +4: "xor_icmp_true_unsigned" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +1: "xor_icmp_to_ne" +4: "xor_icmp_to_ne" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_to_ne_multiuse1" +4: "xor_icmp_to_ne_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_ne_multiuse1" has unsupported operation: llvm.call + +4: "xor_icmp_to_ne_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_to_icmp_add" +4: "xor_icmp_to_icmp_add" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_invalid_range" +4: "xor_icmp_invalid_range" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_to_ne_multiuse2" +4: "xor_icmp_to_ne_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_ne_multiuse2" has unsupported operation: llvm.call + +4: "xor_icmp_to_ne_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_ne_multiuse2" has unsupported operation: llvm.call + +1: "xor_icmp_to_icmp_add_multiuse1" +4: "xor_icmp_to_icmp_add_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_icmp_add_multiuse1" has unsupported operation: llvm.call + +4: "xor_icmp_to_icmp_add_multiuse1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "xor_icmp_to_icmp_add_multiuse2" +4: "xor_icmp_to_icmp_add_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_icmp_add_multiuse2" has unsupported operation: llvm.call + +4: "xor_icmp_to_icmp_add_multiuse2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "xor_icmp_to_icmp_add_multiuse2" has unsupported operation: llvm.call + 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 new file mode 100644 index 000000000..cb0497ea7 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-of-icmps-with-extra-uses.txt @@ -0,0 +1,78 @@ +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 + +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 + +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 + +1: "v3_branch" +4: "v3_branch" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "v3_branch" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "v3_branch" has unsupported operation: llvm.store + +4: "v3_branch" has unsupported operation: builtin.unregistered: llvm.br + +4: "v3_branch" has unsupported operation: llvm.store + +4: "v3_branch" has unsupported operation: builtin.unregistered: llvm.br + +4: "v3_branch" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "v4_not_store" +4: "v4_not_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "v4_not_store" has unsupported operation: llvm.store + +4: "v4_not_store" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +4: "v5_select_and_not" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "n6_select_and_not" +4: "n6_select_and_not" has unsupported operation: builtin.unregistered: llvm.icmp + +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 + +1: "n7_store" +4: "n7_store" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "n7_store" has unsupported operation: llvm.store + +4: "n7_store" has unsupported operation: builtin.unregistered: llvm.icmp + diff --git a/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt b/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt new file mode 100644 index 000000000..d33f4a8cd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-of-or.txt @@ -0,0 +1,112 @@ +1: "t0" +7: "t0" is unchanged by InstCombine + +1: "t1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "t2" +4: "t2" has unsupported operation: llvm.call + +1: "t3" +"t3" contains vectors which are unsupported + +1: "t4" +"t4" contains vectors which are unsupported + +1: "t5" +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: llvm.mlir.undef + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t5" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t6" +"t6" contains vectors which are unsupported + +1: "t7" +4: "t7" has unsupported operation: llvm.mlir.undef + +4: "t7" has unsupported operation: llvm.mlir.undef + +4: "t7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t7" has unsupported operation: llvm.mlir.undef + +4: "t7" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t7" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t8" +4: "t8" has unsupported operation: llvm.mlir.undef + +4: "t8" has unsupported operation: llvm.mlir.undef + +4: "t8" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t8" has unsupported operation: llvm.mlir.undef + +4: "t8" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t8" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t9" +"t9" contains vectors which are unsupported + +1: "t10" +4: "t10" has unsupported operation: llvm.mlir.undef + +4: "t10" has unsupported operation: llvm.mlir.undef + +4: "t10" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "t10" has unsupported operation: llvm.mlir.undef + +4: "t10" has unsupported operation: builtin.unregistered: llvm.insertelement + +4: "t10" has unsupported operation: builtin.unregistered: llvm.insertelement + +1: "t11" +4: "t11" has unsupported operation: llvm.mlir.addressof + +4: "t11" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "t12" +4: "t12" has unsupported operation: llvm.mlir.addressof + +4: "t12" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "t13" +4: "t13" has unsupported operation: llvm.mlir.addressof + +4: "t13" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "t13" has unsupported operation: llvm.mlir.addressof + +4: "t13" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +1: "use" +5: "use" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/xor-undef.txt b/SSA/Projects/InstCombine/tests/logs/xor-undef.txt new file mode 100644 index 000000000..1b5d126a5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor-undef.txt @@ -0,0 +1,3 @@ +1: "f" +"f" contains vectors which are unsupported + diff --git a/SSA/Projects/InstCombine/tests/logs/xor.txt b/SSA/Projects/InstCombine/tests/logs/xor.txt new file mode 100644 index 000000000..70ecdb8b6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor.txt @@ -0,0 +1,555 @@ +1: "use" +5: "use" is empty + +1: "test0" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.return + +1: "test1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.return + +1: "test2" +2: llvm.func +2: llvm.xor +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.xor +2: llvm.return + +1: "test4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test8" +4: "test8" has unsupported operation: builtin.unregistered: llvm.cond_br + +1: "test9" +4: "test9" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test9vec" +4: "test9vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test10" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test12" +4: "test12" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test12vec" +4: "test12vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test18" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.sub +2: llvm.return + +1: "test19" +2: llvm.func +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test20" +4: "test20" has unsupported operation: llvm.mlir.addressof + +4: "test20" has unsupported operation: llvm.mlir.addressof + +4: "test20" has unsupported operation: llvm.store + +4: "test20" has unsupported operation: llvm.store + +4: "test20" has unsupported operation: llvm.return + +1: "test22" +4: "test22" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_zext_xor_sandwich" +4: "fold_zext_xor_sandwich" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_zext_xor_sandwich_vec" +4: "fold_zext_xor_sandwich_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test23" +4: "test23" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test24" +4: "test24" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test25" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test27" +4: "test27" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "test27" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test28" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "test28vec" +"test28vec" contains vectors which are unsupported + +1: "test28_sub" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.sub +2: llvm.xor +2: llvm.return + +1: "test28_subvec" +"test28_subvec" contains vectors which are unsupported + +1: "test29" +4: "test29" has unsupported operation: builtin.unregistered: llvm.select + +1: "test29vec" +4: "test29vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "test29vec2" +4: "test29vec2" has unsupported operation: builtin.unregistered: llvm.select + +1: "test30" +4: "test30" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test30" has unsupported operation: builtin.unregistered: llvm.br + +1: "test30vec" +4: "test30vec" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "test30vec" has unsupported operation: builtin.unregistered: llvm.br + +1: "test30vec2" +4: "test30vec2" has unsupported operation: builtin.unregistered: llvm.cond_br + +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 + +1: "or_xor_commute2" +4: "or_xor_commute2" has unsupported operation: llvm.udiv + +4: "or_xor_commute2" has unsupported operation: llvm.udiv + +1: "or_xor_commute3" +4: "or_xor_commute3" has unsupported operation: llvm.udiv + +4: "or_xor_commute3" has unsupported operation: llvm.udiv + +1: "or_xor_commute4" +4: "or_xor_commute4" has unsupported operation: llvm.udiv + +4: "or_xor_commute4" has unsupported operation: llvm.udiv + +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 + +1: "and_xor_commute2" +4: "and_xor_commute2" has unsupported operation: llvm.udiv + +4: "and_xor_commute2" has unsupported operation: llvm.udiv + +1: "and_xor_commute3" +4: "and_xor_commute3" has unsupported operation: llvm.udiv + +4: "and_xor_commute3" has unsupported operation: llvm.udiv + +1: "and_xor_commute4" +4: "and_xor_commute4" has unsupported operation: llvm.udiv + +4: "and_xor_commute4" has unsupported operation: llvm.udiv + +1: "and_xor_extra_use" +4: "and_xor_extra_use" has unsupported operation: llvm.store + +1: "xor_or_not" +4: "xor_or_not" has unsupported operation: llvm.store + +1: "xor_or_not_uses" +4: "xor_or_not_uses" has unsupported operation: llvm.store + +1: "xor_and_not" +4: "xor_and_not" has unsupported operation: llvm.store + +1: "xor_and_not_uses" +4: "xor_and_not_uses" has unsupported operation: llvm.store + +1: "test39" +4: "test39" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test40" +4: "test40" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test41" +4: "test41" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test42" +4: "test42" has unsupported operation: builtin.unregistered: llvm.intr.umin + +1: "test43" +4: "test43" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test44" +4: "test44" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test45" +4: "test45" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test46" +4: "test46" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test47" +4: "test47" has unsupported operation: builtin.unregistered: llvm.intr.umax + +1: "test48" +4: "test48" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test48vec" +4: "test48vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test49" +4: "test49" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test49vec" +4: "test49vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test50" +4: "test50" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test50vec" +4: "test50vec" has unsupported operation: builtin.unregistered: llvm.intr.smax + +1: "test51" +4: "test51" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "test51vec" +4: "test51vec" has unsupported operation: builtin.unregistered: llvm.intr.smin + +1: "or_or_xor" +2: llvm.func +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_or_xor_commute1" +2: llvm.func +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_or_xor_commute2" +2: llvm.func +2: llvm.or +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_or_xor_commute3" +"or_or_xor_commute3" contains vectors which are unsupported + +1: "or_or_xor_use1" +4: "or_or_xor_use1" has unsupported operation: llvm.store + +1: "or_or_xor_use2" +4: "or_or_xor_use2" has unsupported operation: llvm.store + +1: "not_is_canonical" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.add +2: llvm.shl +2: llvm.return + +1: "not_shl" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.shl +2: llvm.xor +2: llvm.return + +1: "not_shl_vec" +"not_shl_vec" contains vectors which are unsupported + +1: "not_shl_extra_use" +4: "not_shl_extra_use" has unsupported operation: llvm.call + +1: "not_shl_wrong_const" +7: "not_shl_wrong_const" is unchanged by InstCombine + +1: "not_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "not_lshr_vec" +4: "not_lshr_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_lshr_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "not_lshr_extra_use" +4: "not_lshr_extra_use" has unsupported operation: llvm.call + +1: "not_lshr_wrong_const" +7: "not_lshr_wrong_const" is unchanged by InstCombine + +1: "ashr_not" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.ashr +2: llvm.return + +1: "not_ashr" +7: "not_ashr" is unchanged by InstCombine + +1: "not_ashr_vec" +4: "not_ashr_vec" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "not_ashr_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "not_ashr_extra_use" +4: "not_ashr_extra_use" has unsupported operation: llvm.call + +1: "not_ashr_wrong_const" +7: "not_ashr_wrong_const" is unchanged by InstCombine + +1: "xor_andn_commute1" +"xor_andn_commute1" contains vectors which are unsupported + +1: "xor_andn_commute2" +4: "xor_andn_commute2" has unsupported operation: llvm.udiv + +1: "xor_andn_commute3" +4: "xor_andn_commute3" has unsupported operation: llvm.udiv + +1: "xor_andn_commute4" +4: "xor_andn_commute4" has unsupported operation: llvm.udiv + +4: "xor_andn_commute4" has unsupported operation: llvm.udiv + +1: "xor_orn" +"xor_orn" contains vectors which are unsupported + +1: "xor_orn_commute1" +4: "xor_orn_commute1" has unsupported operation: llvm.udiv + +1: "xor_orn_commute2" +4: "xor_orn_commute2" has unsupported operation: llvm.udiv + +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 + +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" +4: "xor_orn_2use" has unsupported operation: llvm.store + +4: "xor_orn_2use" has unsupported operation: llvm.store + +1: "ctlz_pow2" +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" +4: "ctlz_pow2_or_zero" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "ctlz_pow2_wrong_const" +4: "ctlz_pow2_wrong_const" has unsupported operation: builtin.unregistered: llvm.intr.ctlz + +1: "tryFactorization_xor_ashr_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "tryFactorization_xor_lshr_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "tryFactorization_xor_ashr_lshr_negative_lhs" +7: "tryFactorization_xor_ashr_lshr_negative_lhs" is unchanged by InstCombine + +1: "tryFactorization_xor_lshr_lshr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.lshr +2: llvm.lshr +2: llvm.xor +2: llvm.return + +1: "tryFactorization_xor_ashr_ashr" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.ashr +2: llvm.ashr +2: llvm.xor +2: llvm.return + +1: "PR96857_xor_with_noundef" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "PR96857_xor_without_noundef" +2: llvm.func +2: llvm.mlir.constant +2: llvm.and +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "or_disjoint_with_xor" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_with_or_disjoint_ab" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_with_or_disjoint_ba" +2: llvm.func +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "or_disjoint_with_xor_vec" +"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 + +1: "select_or_disjoint_xor" +4: "select_or_disjoint_xor" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_or_disjoint_xor_vec" +4: "select_or_disjoint_xor_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_or_disjoint_or" +4: "select_or_disjoint_or" has unsupported operation: builtin.unregistered: llvm.select + +1: "select_or_disjoint_or_vec" +4: "select_or_disjoint_or_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "or_multi_use_disjoint_with_xor" +7: "or_multi_use_disjoint_with_xor" is unchanged by InstCombine + +1: "or_multi_use_disjoint_with_xor_vec" +7: "or_multi_use_disjoint_with_xor_vec" is unchanged by InstCombine + +1: "add_with_or" +7: "add_with_or" is unchanged by InstCombine + +1: "add_with_or_vec" +7: "add_with_or_vec" is unchanged by InstCombine + diff --git a/SSA/Projects/InstCombine/tests/logs/xor2.txt b/SSA/Projects/InstCombine/tests/logs/xor2.txt new file mode 100644 index 000000000..10f95a004 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/xor2.txt @@ -0,0 +1,365 @@ +1: "test0" +4: "test0" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test0vec" +4: "test0vec" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.icmp + +1: "test2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.and +2: llvm.add +2: llvm.xor +2: llvm.return + +1: "test3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test5" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.lshr +2: llvm.xor +2: llvm.add +2: llvm.return + +1: "test6" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mlir.constant +2: llvm.xor +2: llvm.lshr +2: llvm.add +2: llvm.return + +1: "test7" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test8" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "test9" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test9b" +2: llvm.func +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test10" +2: llvm.func +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test10b" +2: llvm.func +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test11" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11b" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11c" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11d" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11e" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test11f" +2: llvm.func +2: llvm.mlir.constant +2: llvm.mul +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.return + +1: "test12" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test12commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "test13" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "test13commuted" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute1" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute2" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute3" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute4" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute5" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute6" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute7" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_commute8" +2: llvm.func +2: llvm.xor +2: llvm.or +2: llvm.xor +2: llvm.return + +1: "xor_or_xor_common_op_extra_use1" +4: "xor_or_xor_common_op_extra_use1" has unsupported operation: llvm.store + +1: "xor_or_xor_common_op_extra_use2" +4: "xor_or_xor_common_op_extra_use2" has unsupported operation: llvm.store + +1: "xor_or_xor_common_op_extra_use3" +4: "xor_or_xor_common_op_extra_use3" has unsupported operation: llvm.store + +4: "xor_or_xor_common_op_extra_use3" has unsupported operation: llvm.store + +1: "test15" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.mul +2: llvm.return + +1: "test16" +2: llvm.func +2: llvm.mlir.constant +2: llvm.xor +2: llvm.xor +2: llvm.xor +2: llvm.and +2: llvm.mul +2: llvm.return + +1: "not_xor_to_or_not1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "not_xor_to_or_not2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "not_xor_to_or_not3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "not_xor_to_or_not4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "not_xor_to_or_not_vector" +"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 + +1: "not_xor_to_or_not_2use" +4: "not_xor_to_or_not_2use" has unsupported operation: llvm.call + +1: "xor_notand_to_or_not1" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_notand_to_or_not2" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_notand_to_or_not3" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_notand_to_or_not4" +2: llvm.func +2: llvm.mlir.constant +2: llvm.or +2: llvm.and +2: llvm.xor +2: llvm.xor +2: llvm.return + +1: "xor_notand_to_or_not_vector" +"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 + +1: "xor_notand_to_or_not_2use" +4: "xor_notand_to_or_not_2use" has unsupported operation: llvm.call + +1: "use3" +5: "use3" is empty + diff --git a/SSA/Projects/InstCombine/tests/logs/zero-point-zero-add.txt b/SSA/Projects/InstCombine/tests/logs/zero-point-zero-add.txt new file mode 100644 index 000000000..e6f24741c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zero-point-zero-add.txt @@ -0,0 +1,9 @@ +1: "fabs" +5: "fabs" is empty + +1: "test" +4: "test" has unsupported operation: builtin.unregistered: llvm.fadd + +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.intr.fabs + diff --git a/SSA/Projects/InstCombine/tests/logs/zeroext-and-reduce.txt b/SSA/Projects/InstCombine/tests/logs/zeroext-and-reduce.txt new file mode 100644 index 000000000..02ad426a0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zeroext-and-reduce.txt @@ -0,0 +1,3 @@ +1: "test1" +4: "test1" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt b/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt new file mode 100644 index 000000000..753470f68 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zext-bool-add-sub.txt @@ -0,0 +1,170 @@ +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 + +4: "PR30273_zext_add" has unsupported operation: builtin.unregistered: llvm.zext + +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 + +1: "zext_add_vec_splat" +4: "zext_add_vec_splat" has unsupported operation: builtin.unregistered: llvm.select + +1: "zext_add_vec" +4: "zext_add_vec" has unsupported operation: builtin.unregistered: llvm.select + +1: "use" +5: "use" is empty + +1: "zext_negate" +4: "zext_negate" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_negate_extra_use" +4: "zext_negate_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "zext_negate_extra_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_negate_extra_use" has unsupported operation: llvm.call + +1: "zext_negate_vec" +4: "zext_negate_vec" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zext_negate_vec_poison_elt" +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 + +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 + +1: "zext_sub_const_vec_poison_elt" +4: "zext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "zext_sub_const_vec_poison_elt" has unsupported operation: llvm.mlir.undef + +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.insertelement + +4: "zext_sub_const_vec_poison_elt" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "sext_negate_extra_use" +4: "sext_negate_extra_use" has unsupported operation: builtin.unregistered: llvm.zext + +4: "sext_negate_extra_use" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sext_negate_extra_use" has unsupported operation: llvm.call + +1: "sext_negate_vec" +4: "sext_negate_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_negate_vec_poison_elt" +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 + +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 + +1: "sext_sub_const_vec_poison_elt" +4: "sext_sub_const_vec_poison_elt" has unsupported operation: builtin.unregistered: llvm.mlir.poison + +4: "sext_sub_const_vec_poison_elt" has unsupported operation: llvm.mlir.undef + +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.insertelement + +4: "sext_sub_const_vec_poison_elt" has unsupported operation: llvm.mlir.undef + +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.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 + +1: "sext_sub_vec" +4: "sext_sub_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_sub_vec_nsw" +4: "sext_sub_vec_nsw" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_sub_nuw" +4: "sext_sub_nuw" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sextbool_add" +4: "sextbool_add" has unsupported operation: builtin.unregistered: llvm.sext + +1: "sextbool_add_commute" +4: "sextbool_add_commute" has unsupported operation: builtin.unregistered: llvm.sext + +1: "use32" +5: "use32" is empty + +1: "sextbool_add_uses" +4: "sextbool_add_uses" has unsupported operation: builtin.unregistered: llvm.sext + +4: "sextbool_add_uses" has unsupported operation: llvm.call + +1: "sextbool_add_vector" +4: "sextbool_add_vector" has unsupported operation: builtin.unregistered: llvm.sext + +1: "zextbool_sub" +4: "zextbool_sub" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zextbool_sub_uses" +4: "zextbool_sub_uses" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zextbool_sub_uses" has unsupported operation: llvm.call + +1: "zextbool_sub_vector" +4: "zextbool_sub_vector" has unsupported operation: builtin.unregistered: llvm.sext + diff --git a/SSA/Projects/InstCombine/tests/logs/zext-ctlz-trunc-to-ctlz-add.txt b/SSA/Projects/InstCombine/tests/logs/zext-ctlz-trunc-to-ctlz-add.txt new file mode 100644 index 000000000..296c2f309 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zext-ctlz-trunc-to-ctlz-add.txt @@ -0,0 +1,2 @@ +3: zext-ctlz-trunc-to-ctlz-add.ll: parsing has failed + diff --git a/SSA/Projects/InstCombine/tests/logs/zext-fold.txt b/SSA/Projects/InstCombine/tests/logs/zext-fold.txt new file mode 100644 index 000000000..b31e17c0c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zext-fold.txt @@ -0,0 +1,5 @@ +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.fcmp + +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/logs/zext-or-icmp.txt b/SSA/Projects/InstCombine/tests/logs/zext-or-icmp.txt new file mode 100644 index 000000000..e69de29bb diff --git a/SSA/Projects/InstCombine/tests/logs/zext-phi.txt b/SSA/Projects/InstCombine/tests/logs/zext-phi.txt new file mode 100644 index 000000000..1c2f3d95b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zext-phi.txt @@ -0,0 +1,7 @@ +1: "sink_i1_casts" +4: "sink_i1_casts" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "sink_i1_casts" has unsupported operation: builtin.unregistered: llvm.br + +4: "sink_i1_casts" 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 new file mode 100644 index 000000000..69eb744c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/logs/zext.txt @@ -0,0 +1,333 @@ +1: "use1" +5: "use1" is empty + +1: "use32" +5: "use32" is empty + +1: "use64" +5: "use64" is empty + +1: "use_vec" +5: "use_vec" is empty + +1: "test_sext_zext" +4: "test_sext_zext" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test2" +4: "test2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "test3" +"test3" contains vectors which are unsupported + +1: "test4" +"test4" contains vectors which are unsupported + +1: "fold_xor_zext_sandwich" +4: "fold_xor_zext_sandwich" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_xor_zext_sandwich_vec" +4: "fold_xor_zext_sandwich_vec" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_and_zext_icmp" +4: "fold_and_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_and_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_and_zext_icmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_or_zext_icmp" +4: "fold_or_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_or_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_or_zext_icmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_xor_zext_icmp" +4: "fold_xor_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_xor_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_xor_zext_icmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "fold_nested_logic_zext_icmp" +4: "fold_nested_logic_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_nested_logic_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_nested_logic_zext_icmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "fold_nested_logic_zext_icmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_zext_apint1" +4: "sext_zext_apint1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "sext_zext_apint2" +4: "sext_zext_apint2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_set" +4: "masked_bit_set" has unsupported operation after optimization: builtin.unregistered: llvm.icmp + +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 + +1: "masked_bit_set_commute" +"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 + +4: "masked_bit_clear_commute" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "masked_bit_set_use1" +4: "masked_bit_set_use1" has unsupported operation: llvm.call + +1: "masked_bit_set_use2" +4: "masked_bit_set_use2" has unsupported operation: llvm.call + +4: "masked_bit_set_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_set_use2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_set_use3" +4: "masked_bit_set_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_set_use3" has unsupported operation: llvm.call + +4: "masked_bit_set_use3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_clear_use1" +4: "masked_bit_clear_use1" has unsupported operation: llvm.call + +1: "masked_bit_clear_use2" +4: "masked_bit_clear_use2" has unsupported operation: llvm.call + +4: "masked_bit_clear_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_clear_use2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_clear_use3" +4: "masked_bit_clear_use3" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_clear_use3" has unsupported operation: llvm.call + +4: "masked_bit_clear_use3" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bits_set" +4: "masked_bits_set" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bits_set" has unsupported operation: builtin.unregistered: llvm.zext + +1: "div_bit_set" +4: "div_bit_set" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "div_bit_set" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_set_nonzero_cmp" +4: "masked_bit_set_nonzero_cmp" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_set_nonzero_cmp" has unsupported operation: builtin.unregistered: llvm.zext + +1: "masked_bit_wrong_pred" +4: "masked_bit_wrong_pred" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "masked_bit_wrong_pred" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_or_masked_bit_test" +4: "zext_or_masked_bit_test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_or_masked_bit_test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_or_masked_bit_test" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_or_masked_bit_test_uses" +4: "zext_or_masked_bit_test_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_or_masked_bit_test_uses" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_or_masked_bit_test_uses" has unsupported operation: llvm.call + +4: "zext_or_masked_bit_test_uses" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_masked_bit_zero_to_smaller_bitwidth" +4: "zext_masked_bit_zero_to_smaller_bitwidth" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "zext_masked_bit_zero_to_smaller_bitwidth_v4i32" +4: "zext_masked_bit_zero_to_smaller_bitwidth_v4i32" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "zext_masked_bit_zero_to_smaller_bitwidth_multi_use_shl" +4: "zext_masked_bit_zero_to_smaller_bitwidth_multi_use_shl" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_masked_bit_zero_to_smaller_bitwidth_multi_use_shl" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_masked_bit_zero_to_smaller_bitwidth_multi_use_shl" has unsupported operation: llvm.call + +1: "zext_masked_bit_nonzero_to_smaller_bitwidth" +4: "zext_masked_bit_nonzero_to_smaller_bitwidth" has unsupported operation: builtin.unregistered: llvm.trunc + +1: "zext_masked_bit_nonzero_to_smaller_bitwidth_multi_use_shl" +4: "zext_masked_bit_nonzero_to_smaller_bitwidth_multi_use_shl" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "zext_masked_bit_nonzero_to_smaller_bitwidth_multi_use_shl" has unsupported operation: llvm.call + +1: "zext_masked_bit_zero_to_larger_bitwidth" +4: "zext_masked_bit_zero_to_larger_bitwidth" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_masked_bit_zero_to_larger_bitwidth_v4i32" +4: "zext_masked_bit_zero_to_larger_bitwidth_v4i32" has unsupported operation: builtin.unregistered: llvm.zext + +1: "notneg_zext_wider" +4: "notneg_zext_wider" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "notneg_zext_wider" has unsupported operation: builtin.unregistered: llvm.zext + +1: "notneg_zext_narrower" +4: "notneg_zext_narrower" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "notneg_zext_narrower" has unsupported operation: builtin.unregistered: llvm.zext + +1: "notneg_zext_wider_use" +4: "notneg_zext_wider_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "notneg_zext_wider_use" has unsupported operation: llvm.call + +4: "notneg_zext_wider_use" has unsupported operation: builtin.unregistered: llvm.zext + +1: "notneg_zext_narrower_use" +4: "notneg_zext_narrower_use" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "notneg_zext_narrower_use" has unsupported operation: llvm.call + +4: "notneg_zext_narrower_use" has unsupported operation: builtin.unregistered: llvm.zext + +1: "disguised_signbit_clear_test" +4: "disguised_signbit_clear_test" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "disguised_signbit_clear_test" has unsupported operation: builtin.unregistered: llvm.zext + +1: "pr57899" +4: "pr57899" has unsupported operation: builtin.unregistered: llvm.cond_br + +4: "pr57899" has unsupported operation: builtin.unregistered: llvm.br + +1: "and_trunc_extra_use1" +4: "and_trunc_extra_use1" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use1" has unsupported operation: llvm.call + +4: "and_trunc_extra_use1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_trunc_extra_use1_commute" +4: "and_trunc_extra_use1_commute" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use1_commute" has unsupported operation: llvm.call + +4: "and_trunc_extra_use1_commute" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_trunc_extra_use2" +4: "and_trunc_extra_use2" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use2" has unsupported operation: llvm.call + +4: "and_trunc_extra_use2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "and_trunc_extra_use2_constant" +4: "and_trunc_extra_use2_constant" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use2_constant" has unsupported operation: llvm.call + +1: "and_trunc_extra_use3_constant_vec" +4: "and_trunc_extra_use3_constant_vec" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use3_constant_vec" has unsupported operation: llvm.call + +4: "and_trunc_extra_use3_constant_vec" has unsupported operation: llvm.call + +1: "and_trunc_extra_use1_wider_src" +4: "and_trunc_extra_use1_wider_src" has unsupported operation: builtin.unregistered: llvm.trunc + +4: "and_trunc_extra_use1_wider_src" has unsupported operation: llvm.call + +4: "and_trunc_extra_use1_wider_src" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_icmp_eq0_pow2" +4: "zext_icmp_eq0_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_icmp_eq0_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_icmp_eq0_pow2_use1" +4: "zext_icmp_eq0_pow2_use1" has unsupported operation: llvm.call + +4: "zext_icmp_eq0_pow2_use1" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_icmp_eq0_pow2_use1" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_icmp_eq0_pow2_use2" +4: "zext_icmp_eq0_pow2_use2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_icmp_eq0_pow2_use2" has unsupported operation: llvm.call + +4: "zext_icmp_eq0_pow2_use2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_icmp_eq_pow2" +4: "zext_icmp_eq_pow2" has unsupported operation: builtin.unregistered: llvm.icmp + +4: "zext_icmp_eq_pow2" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_icmp_eq_bool_0" +4: "zext_icmp_eq_bool_0" has unsupported operation: llvm.load + +1: "zext_icmp_eq_bool_1" +4: "zext_icmp_eq_bool_1" has unsupported operation: llvm.load + +1: "zext_icmp_ne_bool_0" +4: "zext_icmp_ne_bool_0" has unsupported operation: llvm.load + +1: "zext_icmp_ne_bool_1" +4: "zext_icmp_ne_bool_1" has unsupported operation: llvm.load + +1: "zext_icmp_eq0_no_shift" +4: "zext_icmp_eq0_no_shift" has unsupported operation: llvm.load + +4: "zext_icmp_eq0_no_shift" has unsupported operation: builtin.unregistered: llvm.zext + +1: "evaluate_zexted_const_expr" +4: "evaluate_zexted_const_expr" has unsupported operation: llvm.mlir.addressof + +4: "evaluate_zexted_const_expr" has unsupported operation: builtin.unregistered: llvm.ptrtoint + +4: "evaluate_zexted_const_expr" has unsupported operation: builtin.unregistered: llvm.trunc + +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" +4: "zext_nneg_flag_drop" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_nneg_redundant_and" +4: "zext_nneg_redundant_and" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_nneg_redundant_and_neg" +4: "zext_nneg_redundant_and_neg" has unsupported operation: builtin.unregistered: llvm.zext + +1: "zext_nneg_signbit_extract" +4: "zext_nneg_signbit_extract" has unsupported operation after optimization: builtin.unregistered: llvm.zext + +1: "zext_nneg_demanded_constant" +4: "zext_nneg_demanded_constant" has unsupported operation: builtin.unregistered: llvm.zext + +4: "zext_nneg_demanded_constant" has unsupported operation: llvm.call + +1: "zext_nneg_i1" +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 + +1: "zext_nneg_i2" +4: "zext_nneg_i2" has unsupported operation: builtin.unregistered: llvm.zext + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow.lean b/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow.lean new file mode 100644 index 000000000..5267462a0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow.lean @@ -0,0 +1,77 @@ +import SSA.Projects.InstCombine.tests.proofs.g2004h02h23hShiftShiftOverflow_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 g2004h02h23hShiftShiftOverflow_statements + +def test_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 17 : i32}> : () -> i32 + %1 = llvm.ashr %arg1, %0 : i32 + %2 = llvm.ashr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %1 = llvm.ashr %arg1, %0 : i32 + "llvm.return"(%1) : (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 + + + +def test2_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 17 : i32}> : () -> i32 + %1 = llvm.shl %arg0, %0 : i32 + %2 = llvm.shl %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +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 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow_proof.lean new file mode 100644 index 000000000..51be4e1ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2004h02h23hShiftShiftOverflow_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2004h02h23hShiftShiftOverflow_proof +theorem test_thm (x : BitVec 32) : (x.sshiftRight 17).sshiftRight 17 = x.sshiftRight 31 := sorry + +theorem test2_thm (x : BitVec 32) : x <<< 34 = 0#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold.lean b/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold.lean new file mode 100644 index 000000000..0bcae9062 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.g2004h11h22hMissedhandhfold_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 g2004h11h22hMissedhandhfold_statements + +def test21_before := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.ashr %arg0, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def test21_after := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg0, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem test21_proof : test21_before ⊑ test21_after := by + unfold test21_before test21_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test21 + apply test21_thm + ---END test21 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold_proof.lean new file mode 100644 index 000000000..3ee3dfc66 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2004h11h22hMissedhandhfold_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2004h11h22hMissedhandhfold_proof +theorem test21_thm (x : BitVec 8) : x.sshiftRight 7 &&& 1#8 = x >>> 7 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean index 945cdc04b..613844ae1 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h16hSDivOverflow2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h02h16hSDivOverflow2_statements - + def i_before := [llvm| { ^0(%arg0 : i8): @@ -37,7 +37,7 @@ theorem i_proof : i_before ⊑ i_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN i apply i_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean index 5ca97d86d..3202e2c17 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h02h23hMulSub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h02h23hMulSub_statements - + def test_before := [llvm| { ^0(%arg0 : i26): @@ -37,7 +37,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test apply test_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean index af4c63843..b433a2682 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hAddBool.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h05h31hAddBool_statements - + def test_before := [llvm| { ^0(%arg0 : i1, %arg1 : i1): @@ -34,7 +34,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test apply test_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean new file mode 100644 index 000000000..58b4a2cfd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools.lean @@ -0,0 +1,100 @@ +import SSA.Projects.InstCombine.tests.proofs.g2008h05h31hBools_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 g2008h05h31hBools_statements + +def foo1_before := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1): + %0 = llvm.sub %arg6, %arg7 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def foo1_after := [llvm| +{ +^0(%arg6 : i1, %arg7 : i1): + %0 = llvm.xor %arg7, %arg6 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem foo1_proof : foo1_before ⊑ foo1_after := by + unfold foo1_before foo1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo1 + apply foo1_thm + ---END foo1 + + + +def foo2_before := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + %0 = llvm.mul %arg4, %arg5 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def foo2_after := [llvm| +{ +^0(%arg4 : i1, %arg5 : i1): + %0 = llvm.and %arg4, %arg5 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +theorem foo2_proof : foo2_before ⊑ foo2_after := by + unfold foo2_before foo2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo2 + apply foo2_thm + ---END foo2 + + + +def foo4_before := [llvm| +{ +^0(%arg0 : i1, %arg1 : i1): + %0 = llvm.sdiv %arg0, %arg1 : i1 + "llvm.return"(%0) : (i1) -> () +} +] +def foo4_after := [llvm| +{ +^0(%arg0 : i1, %arg1 : i1): + "llvm.return"(%arg0) : (i1) -> () +} +] +theorem foo4_proof : foo4_before ⊑ foo4_after := by + unfold foo4_before foo4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo4 + apply foo4_thm + ---END foo4 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean new file mode 100644 index 000000000..d9a7c5714 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h05h31hBools_proof.lean @@ -0,0 +1,12 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section g2008h05h31hBools_proof +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 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/g2008h07h08hSubAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean index 8e16d6a88..850f3a3d1 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h08hSubAnd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h08hSubAnd_statements - + def a_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN a apply a_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean index 29f53606b..1713a2bb9 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h09hSubAndError.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h09hSubAndError_statements - + def foo_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo apply foo_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean index 626236f4d..70c97433c 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2008h07h11hRemAnd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2008h07h11hRemAnd_statements - + def a_before := [llvm| { ^0(%arg1 : i32): @@ -38,7 +38,7 @@ theorem a_proof : a_before ⊑ a_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN a apply a_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean index c29a05a8e..84b44985f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean +++ b/SSA/Projects/InstCombine/tests/proofs/g2010h11h23hDistributed.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section g2010h11h23hDistributed_statements - + def foo_before := [llvm| { ^0(%arg2 : i32, %arg3 : i32): @@ -37,7 +37,7 @@ theorem foo_proof : foo_before ⊑ foo_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN foo apply foo_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow.lean b/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow.lean new file mode 100644 index 000000000..fa7e4d828 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow.lean @@ -0,0 +1,415 @@ +import SSA.Projects.InstCombine.tests.proofs.gAddOverFlow_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 gAddOverFlow_statements + +def oppositesign_before := [llvm| +{ +^0(%arg32 : i16, %arg33 : i16): + %0 = "llvm.mlir.constant"() <{value = -32768 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %2 = llvm.or %arg32, %0 : i16 + %3 = llvm.and %arg33, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def oppositesign_after := [llvm| +{ +^0(%arg32 : i16, %arg33 : i16): + %0 = "llvm.mlir.constant"() <{value = -32768 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %2 = llvm.or %arg32, %0 : i16 + %3 = llvm.and %arg33, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem oppositesign_proof : oppositesign_before ⊑ oppositesign_after := by + unfold oppositesign_before oppositesign_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN oppositesign + apply oppositesign_thm + ---END oppositesign + + + +def zero_sign_bit_before := [llvm| +{ +^0(%arg31 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 512 : i16}> : () -> i16 + %2 = llvm.and %arg31, %0 : i16 + %3 = llvm.add %2, %1 : i16 + "llvm.return"(%3) : (i16) -> () +} +] +def zero_sign_bit_after := [llvm| +{ +^0(%arg31 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 512 : i16}> : () -> i16 + %2 = llvm.and %arg31, %0 : i16 + %3 = llvm.add %2, %1 overflow : i16 + "llvm.return"(%3) : (i16) -> () +} +] +theorem zero_sign_bit_proof : zero_sign_bit_before ⊑ zero_sign_bit_after := by + unfold zero_sign_bit_before zero_sign_bit_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN zero_sign_bit + apply zero_sign_bit_thm + ---END zero_sign_bit + + + +def zero_sign_bit2_before := [llvm| +{ +^0(%arg29 : i16, %arg30 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = llvm.and %arg29, %0 : i16 + %2 = llvm.and %arg30, %0 : i16 + %3 = llvm.add %1, %2 : i16 + "llvm.return"(%3) : (i16) -> () +} +] +def zero_sign_bit2_after := [llvm| +{ +^0(%arg29 : i16, %arg30 : i16): + %0 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %1 = llvm.and %arg29, %0 : i16 + %2 = llvm.and %arg30, %0 : i16 + %3 = llvm.add %1, %2 overflow : i16 + "llvm.return"(%3) : (i16) -> () +} +] +theorem zero_sign_bit2_proof : zero_sign_bit2_before ⊑ zero_sign_bit2_after := by + unfold zero_sign_bit2_before zero_sign_bit2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN zero_sign_bit2 + apply zero_sign_bit2_thm + ---END zero_sign_bit2 + + + +def ripple_nsw1_before := [llvm| +{ +^0(%arg23 : i16, %arg24 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -16385 : i16}> : () -> i16 + %2 = llvm.and %arg24, %0 : i16 + %3 = llvm.and %arg23, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw1_after := [llvm| +{ +^0(%arg23 : i16, %arg24 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -16385 : i16}> : () -> i16 + %2 = llvm.and %arg24, %0 : i16 + %3 = llvm.and %arg23, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw1_proof : ripple_nsw1_before ⊑ ripple_nsw1_after := by + unfold ripple_nsw1_before ripple_nsw1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw1 + apply ripple_nsw1_thm + ---END ripple_nsw1 + + + +def ripple_nsw2_before := [llvm| +{ +^0(%arg21 : i16, %arg22 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -16385 : i16}> : () -> i16 + %2 = llvm.and %arg22, %0 : i16 + %3 = llvm.and %arg21, %1 : i16 + %4 = llvm.add %3, %2 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw2_after := [llvm| +{ +^0(%arg21 : i16, %arg22 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -16385 : i16}> : () -> i16 + %2 = llvm.and %arg22, %0 : i16 + %3 = llvm.and %arg21, %1 : i16 + %4 = llvm.add %3, %2 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw2_proof : ripple_nsw2_before ⊑ ripple_nsw2_after := by + unfold ripple_nsw2_before ripple_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw2 + apply ripple_nsw2_thm + ---END ripple_nsw2 + + + +def ripple_nsw3_before := [llvm| +{ +^0(%arg19 : i16, %arg20 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 21843 : i16}> : () -> i16 + %2 = llvm.and %arg20, %0 : i16 + %3 = llvm.and %arg19, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw3_after := [llvm| +{ +^0(%arg19 : i16, %arg20 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 21843 : i16}> : () -> i16 + %2 = llvm.and %arg20, %0 : i16 + %3 = llvm.and %arg19, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw3_proof : ripple_nsw3_before ⊑ ripple_nsw3_after := by + unfold ripple_nsw3_before ripple_nsw3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw3 + apply ripple_nsw3_thm + ---END ripple_nsw3 + + + +def ripple_nsw4_before := [llvm| +{ +^0(%arg17 : i16, %arg18 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 21843 : i16}> : () -> i16 + %2 = llvm.and %arg18, %0 : i16 + %3 = llvm.and %arg17, %1 : i16 + %4 = llvm.add %3, %2 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw4_after := [llvm| +{ +^0(%arg17 : i16, %arg18 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 21843 : i16}> : () -> i16 + %2 = llvm.and %arg18, %0 : i16 + %3 = llvm.and %arg17, %1 : i16 + %4 = llvm.add %3, %2 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw4_proof : ripple_nsw4_before ⊑ ripple_nsw4_after := by + unfold ripple_nsw4_before ripple_nsw4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw4 + apply ripple_nsw4_thm + ---END ripple_nsw4 + + + +def ripple_nsw5_before := [llvm| +{ +^0(%arg15 : i16, %arg16 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -10923 : i16}> : () -> i16 + %2 = llvm.or %arg16, %0 : i16 + %3 = llvm.or %arg15, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw5_after := [llvm| +{ +^0(%arg15 : i16, %arg16 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -10923 : i16}> : () -> i16 + %2 = llvm.or %arg16, %0 : i16 + %3 = llvm.or %arg15, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw5_proof : ripple_nsw5_before ⊑ ripple_nsw5_after := by + unfold ripple_nsw5_before ripple_nsw5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw5 + apply ripple_nsw5_thm + ---END ripple_nsw5 + + + +def ripple_nsw6_before := [llvm| +{ +^0(%arg13 : i16, %arg14 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -10923 : i16}> : () -> i16 + %2 = llvm.or %arg14, %0 : i16 + %3 = llvm.or %arg13, %1 : i16 + %4 = llvm.add %3, %2 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_nsw6_after := [llvm| +{ +^0(%arg13 : i16, %arg14 : i16): + %0 = "llvm.mlir.constant"() <{value = -21845 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = -10923 : i16}> : () -> i16 + %2 = llvm.or %arg14, %0 : i16 + %3 = llvm.or %arg13, %1 : i16 + %4 = llvm.add %3, %2 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_nsw6_proof : ripple_nsw6_before ⊑ ripple_nsw6_after := by + unfold ripple_nsw6_before ripple_nsw6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_nsw6 + apply ripple_nsw6_thm + ---END ripple_nsw6 + + + +def ripple_no_nsw2_before := [llvm| +{ +^0(%arg9 : i16, %arg10 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %2 = llvm.and %arg10, %0 : i16 + %3 = llvm.and %arg9, %1 : i16 + %4 = llvm.add %2, %3 : i16 + "llvm.return"(%4) : (i16) -> () +} +] +def ripple_no_nsw2_after := [llvm| +{ +^0(%arg9 : i16, %arg10 : i16): + %0 = "llvm.mlir.constant"() <{value = 1 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 32767 : i16}> : () -> i16 + %2 = llvm.and %arg10, %0 : i16 + %3 = llvm.and %arg9, %1 : i16 + %4 = llvm.add %2, %3 overflow : i16 + "llvm.return"(%4) : (i16) -> () +} +] +theorem ripple_no_nsw2_proof : ripple_no_nsw2_before ⊑ ripple_no_nsw2_after := by + unfold ripple_no_nsw2_before ripple_no_nsw2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ripple_no_nsw2 + apply ripple_no_nsw2_thm + ---END ripple_no_nsw2 + + + +def PR38021_before := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -63 : i8}> : () -> i8 + %2 = llvm.lshr %arg0, %0 : i8 + %3 = llvm.add %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def PR38021_after := [llvm| +{ +^0(%arg0 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -63 : i8}> : () -> i8 + %2 = llvm.lshr %arg0, %0 : i8 + %3 = llvm.add %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem PR38021_proof : PR38021_before ⊑ PR38021_after := by + unfold PR38021_before PR38021_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR38021 + apply PR38021_thm + ---END PR38021 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow_proof.lean new file mode 100644 index 000000000..5f7ea0870 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gAddOverFlow_proof.lean @@ -0,0 +1,96 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gAddOverFlow_proof +theorem oppositesign_thm (x x_1 : BitVec 16) : + some ((x_1 ||| 32768#16) + (x &&& 32767#16)) ⊑ + if + (x_1.msb || (32768#16).msb) = (x.msb && (32767#16).msb) ∧ + ¬((x_1 ||| 32768#16) + (x &&& 32767#16)).msb = (x_1.msb || (32768#16).msb) then + none + else some ((x_1 ||| 32768#16) + (x &&& 32767#16)) := sorry + +theorem zero_sign_bit_thm (x : BitVec 16) : + some ((x &&& 32767#16) + 512#16) ⊑ + if (x &&& 32767#16) + 512#16 < x &&& 32767#16 ∨ (x &&& 32767#16) + 512#16 < 512#16 then none + else some ((x &&& 32767#16) + 512#16) := sorry + +theorem zero_sign_bit2_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 32767#16) + (x &&& 32767#16)) ⊑ + if + (x_1 &&& 32767#16) + (x &&& 32767#16) < x_1 &&& 32767#16 ∨ + (x_1 &&& 32767#16) + (x &&& 32767#16) < x &&& 32767#16 then + none + else some ((x_1 &&& 32767#16) + (x &&& 32767#16)) := sorry + +theorem ripple_nsw1_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 1#16) + (x &&& 49151#16)) ⊑ + if (x.msb = true → (49151#16).msb = false) ∧ ((x_1 &&& 1#16) + (x &&& 49151#16)).msb = true then none + else + if (x_1 &&& 1#16) + (x &&& 49151#16) < x_1 &&& 1#16 ∨ (x_1 &&& 1#16) + (x &&& 49151#16) < x &&& 49151#16 then none + else some ((x_1 &&& 1#16) + (x &&& 49151#16)) := sorry + +theorem ripple_nsw2_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 49151#16) + (x &&& 1#16)) ⊑ + if + (x_1.msb = true → (49151#16).msb = false) ∧ + ¬((x_1 &&& 49151#16) + (x &&& 1#16)).msb = (x_1.msb && (49151#16).msb) then + none + else + if (x_1 &&& 49151#16) + (x &&& 1#16) < x_1 &&& 49151#16 ∨ (x_1 &&& 49151#16) + (x &&& 1#16) < x &&& 1#16 then none + else some ((x_1 &&& 49151#16) + (x &&& 1#16)) := sorry + +theorem ripple_nsw3_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 43691#16) + (x &&& 21843#16)) ⊑ + if + (x_1.msb && (43691#16).msb) = (x.msb && (21843#16).msb) ∧ + ¬((x_1 &&& 43691#16) + (x &&& 21843#16)).msb = (x_1.msb && (43691#16).msb) then + none + else + if + (x_1 &&& 43691#16) + (x &&& 21843#16) < x_1 &&& 43691#16 ∨ + (x_1 &&& 43691#16) + (x &&& 21843#16) < x &&& 21843#16 then + none + else some ((x_1 &&& 43691#16) + (x &&& 21843#16)) := sorry + +theorem ripple_nsw4_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 21843#16) + (x &&& 43691#16)) ⊑ + if + (x_1.msb && (21843#16).msb) = (x.msb && (43691#16).msb) ∧ + ¬((x_1 &&& 21843#16) + (x &&& 43691#16)).msb = (x_1.msb && (21843#16).msb) then + none + else + if + (x_1 &&& 21843#16) + (x &&& 43691#16) < x_1 &&& 21843#16 ∨ + (x_1 &&& 21843#16) + (x &&& 43691#16) < x &&& 43691#16 then + none + else some ((x_1 &&& 21843#16) + (x &&& 43691#16)) := sorry + +theorem ripple_nsw5_thm (x x_1 : BitVec 16) : + some ((x_1 ||| 43691#16) + (x ||| 54613#16)) ⊑ + if + (x_1.msb || (43691#16).msb) = (x.msb || (54613#16).msb) ∧ + ¬((x_1 ||| 43691#16) + (x ||| 54613#16)).msb = (x_1.msb || (43691#16).msb) then + none + else some ((x_1 ||| 43691#16) + (x ||| 54613#16)) := sorry + +theorem ripple_nsw6_thm (x x_1 : BitVec 16) : + some ((x_1 ||| 54613#16) + (x ||| 43691#16)) ⊑ + if + (x_1.msb || (54613#16).msb) = (x.msb || (43691#16).msb) ∧ + ¬((x_1 ||| 54613#16) + (x ||| 43691#16)).msb = (x_1.msb || (54613#16).msb) then + none + else some ((x_1 ||| 54613#16) + (x ||| 43691#16)) := sorry + +theorem ripple_no_nsw2_thm (x x_1 : BitVec 16) : + some ((x_1 &&& 1#16) + (x &&& 32767#16)) ⊑ + if (x_1 &&& 1#16) + (x &&& 32767#16) < x_1 &&& 1#16 ∨ (x_1 &&& 1#16) + (x &&& 32767#16) < x &&& 32767#16 then none + else some ((x_1 &&& 1#16) + (x &&& 32767#16)) := sorry + +theorem PR38021_thm (x : BitVec 8) : + some (x >>> 3 + 193#8) ⊑ + if (193#8).msb = false ∧ (x >>> 3 + 193#8).msb = true then none + else if x >>> 3 + 193#8 < x >>> 3 ∨ x >>> 3 + 193#8 < 193#8 then none else some (x >>> 3 + 193#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd2.lean b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean index 15b3968bb..79378d227 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd2_statements - + def test2_before := [llvm| { ^0(%arg59 : i32): @@ -39,7 +39,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm @@ -76,7 +76,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 apply test3_thm @@ -106,7 +106,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 apply test4_thm @@ -140,7 +140,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 apply test9_thm @@ -181,7 +181,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 apply test10_thm @@ -218,7 +218,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 apply test11_thm @@ -255,7 +255,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 apply test12_thm @@ -292,7 +292,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 apply test13_thm @@ -329,7 +329,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 apply test14_thm @@ -365,7 +365,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 apply test15_thm @@ -401,7 +401,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 apply test16_thm @@ -436,7 +436,7 @@ theorem test17_proof : test17_before ⊑ test17_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test17 apply test17_thm @@ -472,7 +472,7 @@ theorem test18_proof : test18_before ⊑ test18_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test18 apply test18_thm @@ -503,7 +503,7 @@ theorem add_nsw_mul_nsw_proof : add_nsw_mul_nsw_before ⊑ add_nsw_mul_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_mul_nsw apply add_nsw_mul_nsw_thm @@ -535,7 +535,7 @@ theorem mul_add_to_mul_1_proof : mul_add_to_mul_1_before ⊑ mul_add_to_mul_1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_1 apply mul_add_to_mul_1_thm @@ -567,7 +567,7 @@ theorem mul_add_to_mul_2_proof : mul_add_to_mul_2_before ⊑ mul_add_to_mul_2_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_2 apply mul_add_to_mul_2_thm @@ -601,7 +601,7 @@ theorem mul_add_to_mul_3_proof : mul_add_to_mul_3_before ⊑ mul_add_to_mul_3_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_3 apply mul_add_to_mul_3_thm @@ -635,7 +635,7 @@ theorem mul_add_to_mul_4_proof : mul_add_to_mul_4_before ⊑ mul_add_to_mul_4_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_4 apply mul_add_to_mul_4_thm @@ -669,7 +669,7 @@ theorem mul_add_to_mul_5_proof : mul_add_to_mul_5_before ⊑ mul_add_to_mul_5_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_5 apply mul_add_to_mul_5_thm @@ -703,7 +703,7 @@ theorem mul_add_to_mul_6_proof : mul_add_to_mul_6_before ⊑ mul_add_to_mul_6_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_6 apply mul_add_to_mul_6_thm @@ -735,7 +735,7 @@ theorem mul_add_to_mul_7_proof : mul_add_to_mul_7_before ⊑ mul_add_to_mul_7_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_7 apply mul_add_to_mul_7_thm @@ -769,7 +769,7 @@ theorem mul_add_to_mul_8_proof : mul_add_to_mul_8_before ⊑ mul_add_to_mul_8_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_8 apply mul_add_to_mul_8_thm @@ -802,7 +802,7 @@ theorem mul_add_to_mul_9_proof : mul_add_to_mul_9_before ⊑ mul_add_to_mul_9_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_add_to_mul_9 apply mul_add_to_mul_9_thm @@ -833,7 +833,7 @@ theorem add_or_and_proof : add_or_and_before ⊑ add_or_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_and apply add_or_and_thm @@ -864,7 +864,7 @@ theorem add_or_and_commutative_proof : add_or_and_commutative_before ⊑ add_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_and_commutative apply add_or_and_commutative_thm @@ -895,7 +895,7 @@ theorem add_and_or_proof : add_and_or_before ⊑ add_and_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_and_or all_goals (try extract_goal ; sorry) @@ -926,7 +926,7 @@ theorem add_and_or_commutative_proof : add_and_or_commutative_before ⊑ add_and simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_and_or_commutative apply add_and_or_commutative_thm @@ -957,7 +957,7 @@ theorem add_nsw_or_and_proof : add_nsw_or_and_before ⊑ add_nsw_or_and_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nsw_or_and apply add_nsw_or_and_thm @@ -988,7 +988,7 @@ theorem add_nuw_or_and_proof : add_nuw_or_and_before ⊑ add_nuw_or_and_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_or_and apply add_nuw_or_and_thm @@ -1019,7 +1019,7 @@ theorem add_nuw_nsw_or_and_proof : add_nuw_nsw_or_and_before ⊑ add_nuw_nsw_or_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_nuw_nsw_or_and apply add_nuw_nsw_or_and_thm @@ -1051,7 +1051,7 @@ theorem add_of_mul_proof : add_of_mul_before ⊑ add_of_mul_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_of_mul apply add_of_mul_thm @@ -1088,7 +1088,7 @@ theorem add_undemanded_low_bits_proof : add_undemanded_low_bits_before ⊑ add_u simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_undemanded_low_bits apply add_undemanded_low_bits_thm @@ -1125,7 +1125,7 @@ theorem sub_undemanded_low_bits_proof : sub_undemanded_low_bits_before ⊑ sub_u simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_undemanded_low_bits apply sub_undemanded_low_bits_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd4.lean b/SSA/Projects/InstCombine/tests/proofs/gadd4.lean index 9b3854de2..6425d50e4 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd4.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd4.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd4_statements - + def match_andAsRem_lshrAsDiv_shlAsMul_before := [llvm| { ^0(%arg16 : i64): @@ -42,7 +42,7 @@ theorem match_andAsRem_lshrAsDiv_shlAsMul_proof : match_andAsRem_lshrAsDiv_shlAs simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN match_andAsRem_lshrAsDiv_shlAsMul apply match_andAsRem_lshrAsDiv_shlAsMul_thm @@ -84,7 +84,7 @@ theorem match_signed_proof : match_signed_before ⊑ match_signed_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN match_signed apply match_signed_thm @@ -125,7 +125,7 @@ theorem not_match_inconsistent_signs_proof : not_match_inconsistent_signs_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_match_inconsistent_signs apply not_match_inconsistent_signs_thm @@ -163,7 +163,7 @@ theorem fold_add_sdiv_srem_proof : fold_add_sdiv_srem_before ⊑ fold_add_sdiv_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN fold_add_sdiv_srem apply fold_add_sdiv_srem_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean index 805d13d32..c8ca83c86 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gadd_or_sub.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gadd_or_sub_statements - + def add_or_sub_comb_i32_commuted1_nuw_before := [llvm| { ^0(%arg16 : i32): @@ -36,7 +36,7 @@ theorem add_or_sub_comb_i32_commuted1_nuw_proof : add_or_sub_comb_i32_commuted1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i32_commuted1_nuw apply add_or_sub_comb_i32_commuted1_nuw_thm @@ -72,7 +72,7 @@ theorem add_or_sub_comb_i8_commuted2_nsw_proof : add_or_sub_comb_i8_commuted2_ns simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_commuted2_nsw apply add_or_sub_comb_i8_commuted2_nsw_thm @@ -105,7 +105,7 @@ theorem add_or_sub_comb_i128_commuted3_nuw_nsw_proof : add_or_sub_comb_i128_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i128_commuted3_nuw_nsw apply add_or_sub_comb_i128_commuted3_nuw_nsw_thm @@ -141,7 +141,7 @@ theorem add_or_sub_comb_i64_commuted4_proof : add_or_sub_comb_i64_commuted4_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i64_commuted4 apply add_or_sub_comb_i64_commuted4_thm @@ -176,7 +176,7 @@ theorem add_or_sub_comb_i8_negative_y_sub_proof : add_or_sub_comb_i8_negative_y_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_sub apply add_or_sub_comb_i8_negative_y_sub_thm @@ -211,7 +211,7 @@ theorem add_or_sub_comb_i8_negative_y_or_proof : add_or_sub_comb_i8_negative_y_o simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_or apply add_or_sub_comb_i8_negative_y_or_thm @@ -246,7 +246,7 @@ theorem add_or_sub_comb_i8_negative_y_add_proof : add_or_sub_comb_i8_negative_y_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_y_add apply add_or_sub_comb_i8_negative_y_add_thm @@ -281,7 +281,7 @@ theorem add_or_sub_comb_i8_negative_xor_instead_or_proof : add_or_sub_comb_i8_ne simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_or_sub_comb_i8_negative_xor_instead_or apply add_or_sub_comb_i8_negative_xor_instead_or_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean index 5fe57a96c..b314c3a78 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhmask_statements - + def add_mask_ashr28_i32_before := [llvm| { ^0(%arg2 : i32): @@ -41,7 +41,7 @@ theorem add_mask_ashr28_i32_proof : add_mask_ashr28_i32_before ⊑ add_mask_ashr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr28_i32 apply add_mask_ashr28_i32_thm @@ -78,7 +78,7 @@ theorem add_mask_ashr28_non_pow2_i32_proof : add_mask_ashr28_non_pow2_i32_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr28_non_pow2_i32 apply add_mask_ashr28_non_pow2_i32_thm @@ -115,7 +115,7 @@ theorem add_mask_ashr27_i32_proof : add_mask_ashr27_i32_before ⊑ add_mask_ashr simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_mask_ashr27_i32 apply add_mask_ashr27_i32_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg.lean new file mode 100644 index 000000000..e09f8cd3a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg.lean @@ -0,0 +1,126 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddhmaskhneg_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 gaddhmaskhneg_statements + +def dec_mask_neg_i32_before := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg7 : i32 + %3 = llvm.and %2, %arg7 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def dec_mask_neg_i32_after := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.add %arg7, %0 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem dec_mask_neg_i32_proof : dec_mask_neg_i32_before ⊑ dec_mask_neg_i32_after := by + unfold dec_mask_neg_i32_before dec_mask_neg_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN dec_mask_neg_i32 + apply dec_mask_neg_i32_thm + ---END dec_mask_neg_i32 + + + +def dec_mask_commute_neg_i32_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %3 = llvm.sdiv %0, %arg6 : i32 + %4 = llvm.sub %1, %3 : i32 + %5 = llvm.and %3, %4 : i32 + %6 = llvm.add %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def dec_mask_commute_neg_i32_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.sdiv %0, %arg6 : i32 + %3 = llvm.add %2, %1 overflow : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.and %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem dec_mask_commute_neg_i32_proof : dec_mask_commute_neg_i32_before ⊑ dec_mask_commute_neg_i32_after := by + unfold dec_mask_commute_neg_i32_before dec_mask_commute_neg_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN dec_mask_commute_neg_i32 + apply dec_mask_commute_neg_i32_thm + ---END dec_mask_commute_neg_i32 + + + +def dec_commute_mask_neg_i32_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg5 : i32 + %3 = llvm.and %2, %arg5 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def dec_commute_mask_neg_i32_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.add %arg5, %0 : i32 + %2 = llvm.xor %arg5, %0 : i32 + %3 = llvm.and %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem dec_commute_mask_neg_i32_proof : dec_commute_mask_neg_i32_before ⊑ dec_commute_mask_neg_i32_after := by + unfold dec_commute_mask_neg_i32_before dec_commute_mask_neg_i32_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN dec_commute_mask_neg_i32 + apply dec_commute_mask_neg_i32_thm + ---END dec_commute_mask_neg_i32 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg_proof.lean new file mode 100644 index 000000000..36f5502eb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhmaskhneg_proof.lean @@ -0,0 +1,20 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddhmaskhneg_proof +theorem dec_mask_neg_i32_thm (x : BitVec 32) : (-x &&& x) + 4294967295#32 = x + 4294967295#32 &&& (x ^^^ 4294967295#32) := sorry + +theorem dec_mask_commute_neg_i32_thm (x : 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 ((a &&& -a_1) + 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 => + (if a.msb = (4294967295#32).msb ∧ ¬(a + 4294967295#32).msb = a.msb then none else some (a + 4294967295#32)).bind + fun a => + Option.bind (if x = 0#32 ∨ 42#32 = intMin 32 ∧ x = 4294967295#32 then none else some ((42#32).sdiv x)) fun x => + some (a &&& (x ^^^ 4294967295#32)) := sorry + +theorem dec_commute_mask_neg_i32_thm (x : BitVec 32) : 4294967295#32 + (-x &&& x) = x + 4294967295#32 &&& (x ^^^ 4294967295#32) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean index 6e84ef54c..7224842a3 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhshift_statements - + def flip_add_of_shift_neg_before := [llvm| { ^0(%arg12 : i8, %arg13 : i8, %arg14 : i8): @@ -38,7 +38,7 @@ theorem flip_add_of_shift_neg_proof : flip_add_of_shift_neg_before ⊑ flip_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN flip_add_of_shift_neg apply flip_add_of_shift_neg_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean index 811b72716..1160e7c39 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddhshlhsdivhtohsrem.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddhshlhsdivhtohsrem_statements - + def addhshlhsdivhscalar0_before := [llvm| { ^0(%arg19 : i8): @@ -39,7 +39,7 @@ theorem addhshlhsdivhscalar0_proof : addhshlhsdivhscalar0_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar0 apply addhshlhsdivhscalar0_thm @@ -73,7 +73,7 @@ theorem addhshlhsdivhscalar1_proof : addhshlhsdivhscalar1_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar1 apply addhshlhsdivhscalar1_thm @@ -107,7 +107,7 @@ theorem addhshlhsdivhscalar2_proof : addhshlhsdivhscalar2_before ⊑ addhshlhsdi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhscalar2 apply addhshlhsdivhscalar2_thm @@ -144,7 +144,7 @@ theorem addhshlhsdivhnegative0_proof : addhshlhsdivhnegative0_before ⊑ addhshl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhnegative0 apply addhshlhsdivhnegative0_thm @@ -178,7 +178,7 @@ theorem addhshlhsdivhnegative1_proof : addhshlhsdivhnegative1_before ⊑ addhshl simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN addhshlhsdivhnegative1 apply addhshlhsdivhnegative1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean index 784adaeb6..3e2d67968 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gaddnegneg.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gaddnegneg_statements - + def l_before := [llvm| { ^0(%arg0 : i32, %arg1 : i32, %arg2 : i32, %arg3 : i32): @@ -39,7 +39,7 @@ theorem l_proof : l_before ⊑ l_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN l apply l_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding.lean b/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding.lean new file mode 100644 index 000000000..205e945c1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding.lean @@ -0,0 +1,645 @@ +import SSA.Projects.InstCombine.tests.proofs.gaddsubhconstanthfolding_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 gaddsubhconstanthfolding_statements + +def add_const_add_const_before := [llvm| +{ +^0(%arg71 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.add %arg71, %0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_const_add_const_after := [llvm| +{ +^0(%arg71 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = llvm.add %arg71, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem add_const_add_const_proof : add_const_add_const_before ⊑ add_const_add_const_after := by + unfold add_const_add_const_before add_const_add_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_const_add_const + apply add_const_add_const_thm + ---END add_const_add_const + + + +def add_const_sub_const_before := [llvm| +{ +^0(%arg66 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.add %arg66, %0 : i32 + %3 = llvm.sub %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_const_sub_const_after := [llvm| +{ +^0(%arg66 : i32): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = llvm.add %arg66, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem add_const_sub_const_proof : add_const_sub_const_before ⊑ add_const_sub_const_after := by + unfold add_const_sub_const_before add_const_sub_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_const_sub_const + apply add_const_sub_const_thm + ---END add_const_sub_const + + + +def add_const_const_sub_before := [llvm| +{ +^0(%arg61 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.add %arg61, %0 : i32 + %3 = llvm.sub %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_const_const_sub_after := [llvm| +{ +^0(%arg61 : i32): + %0 = "llvm.mlir.constant"() <{value = -6 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg61 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem add_const_const_sub_proof : add_const_const_sub_before ⊑ add_const_const_sub_after := by + unfold add_const_const_sub_before add_const_const_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_const_const_sub + apply add_const_const_sub_thm + ---END add_const_const_sub + + + +def add_nsw_const_const_sub_nsw_before := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg60, %0 overflow : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_const_const_sub_nsw_after := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg60 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_nsw_const_const_sub_nsw_proof : add_nsw_const_const_sub_nsw_before ⊑ add_nsw_const_const_sub_nsw_after := by + unfold add_nsw_const_const_sub_nsw_before add_nsw_const_const_sub_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw_const_const_sub_nsw + apply add_nsw_const_const_sub_nsw_thm + ---END add_nsw_const_const_sub_nsw + + + +def add_nsw_const_const_sub_before := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg59, %0 overflow : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_const_const_sub_after := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg59 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_nsw_const_const_sub_proof : add_nsw_const_const_sub_before ⊑ add_nsw_const_const_sub_after := by + unfold add_nsw_const_const_sub_before add_nsw_const_const_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw_const_const_sub + apply add_nsw_const_const_sub_thm + ---END add_nsw_const_const_sub + + + +def add_const_const_sub_nsw_before := [llvm| +{ +^0(%arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg58, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_const_const_sub_nsw_after := [llvm| +{ +^0(%arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg58 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_const_const_sub_nsw_proof : add_const_const_sub_nsw_before ⊑ add_const_const_sub_nsw_after := by + unfold add_const_const_sub_nsw_before add_const_const_sub_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_const_const_sub_nsw + apply add_const_const_sub_nsw_thm + ---END add_const_const_sub_nsw + + + +def add_nsw_const_const_sub_nsw_ov_before := [llvm| +{ +^0(%arg57 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg57, %0 overflow : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nsw_const_const_sub_nsw_ov_after := [llvm| +{ +^0(%arg57 : i8): + %0 = "llvm.mlir.constant"() <{value = 127 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg57 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_nsw_const_const_sub_nsw_ov_proof : add_nsw_const_const_sub_nsw_ov_before ⊑ add_nsw_const_const_sub_nsw_ov_after := by + unfold add_nsw_const_const_sub_nsw_ov_before add_nsw_const_const_sub_nsw_ov_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nsw_const_const_sub_nsw_ov + apply add_nsw_const_const_sub_nsw_ov_thm + ---END add_nsw_const_const_sub_nsw_ov + + + +def add_nuw_const_const_sub_nuw_before := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg56, %0 overflow : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nuw_const_const_sub_nuw_after := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg56 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_nuw_const_const_sub_nuw_proof : add_nuw_const_const_sub_nuw_before ⊑ add_nuw_const_const_sub_nuw_after := by + unfold add_nuw_const_const_sub_nuw_before add_nuw_const_const_sub_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nuw_const_const_sub_nuw + apply add_nuw_const_const_sub_nuw_thm + ---END add_nuw_const_const_sub_nuw + + + +def add_nuw_const_const_sub_before := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg55, %0 overflow : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_nuw_const_const_sub_after := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg55 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_nuw_const_const_sub_proof : add_nuw_const_const_sub_before ⊑ add_nuw_const_const_sub_after := by + unfold add_nuw_const_const_sub_before add_nuw_const_const_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nuw_const_const_sub + apply add_nuw_const_const_sub_thm + ---END add_nuw_const_const_sub + + + +def add_const_const_sub_nuw_before := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -127 : i8}> : () -> i8 + %2 = llvm.add %arg54, %0 : i8 + %3 = llvm.sub %1, %2 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def add_const_const_sub_nuw_after := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = -128 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg54 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem add_const_const_sub_nuw_proof : add_const_const_sub_nuw_before ⊑ add_const_const_sub_nuw_after := by + unfold add_const_const_sub_nuw_before add_const_const_sub_nuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_const_const_sub_nuw + apply add_const_const_sub_nuw_thm + ---END add_const_const_sub_nuw + + + +def sub_const_add_const_before := [llvm| +{ +^0(%arg45 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %arg45, %0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sub_const_add_const_after := [llvm| +{ +^0(%arg45 : i32): + %0 = "llvm.mlir.constant"() <{value = -6 : i32}> : () -> i32 + %1 = llvm.add %arg45, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sub_const_add_const_proof : sub_const_add_const_before ⊑ sub_const_add_const_after := by + unfold sub_const_add_const_before sub_const_add_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_const_add_const + apply sub_const_add_const_thm + ---END sub_const_add_const + + + +def sub_const_sub_const_before := [llvm| +{ +^0(%arg40 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %arg40, %0 : i32 + %3 = llvm.sub %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sub_const_sub_const_after := [llvm| +{ +^0(%arg40 : i32): + %0 = "llvm.mlir.constant"() <{value = -10 : i32}> : () -> i32 + %1 = llvm.add %arg40, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sub_const_sub_const_proof : sub_const_sub_const_before ⊑ sub_const_sub_const_after := by + unfold sub_const_sub_const_before sub_const_sub_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_const_sub_const + apply sub_const_sub_const_thm + ---END sub_const_sub_const + + + +def sub_const_const_sub_before := [llvm| +{ +^0(%arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %arg35, %0 : i32 + %3 = llvm.sub %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def sub_const_const_sub_after := [llvm| +{ +^0(%arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg35 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem sub_const_const_sub_proof : sub_const_const_sub_before ⊑ sub_const_const_sub_after := by + unfold sub_const_const_sub_before sub_const_const_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_const_const_sub + apply sub_const_const_sub_thm + ---END sub_const_const_sub + + + +def const_sub_add_const_before := [llvm| +{ +^0(%arg30 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg30 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def const_sub_add_const_after := [llvm| +{ +^0(%arg30 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg30 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem const_sub_add_const_proof : const_sub_add_const_before ⊑ const_sub_add_const_after := by + unfold const_sub_add_const_before const_sub_add_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN const_sub_add_const + apply const_sub_add_const_thm + ---END const_sub_add_const + + + +def const_sub_sub_const_before := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg25 : i32 + %3 = llvm.sub %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def const_sub_sub_const_after := [llvm| +{ +^0(%arg25 : i32): + %0 = "llvm.mlir.constant"() <{value = 6 : i32}> : () -> i32 + %1 = llvm.sub %0, %arg25 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem const_sub_sub_const_proof : const_sub_sub_const_before ⊑ const_sub_sub_const_after := by + unfold const_sub_sub_const_before const_sub_sub_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN const_sub_sub_const + apply const_sub_sub_const_thm + ---END const_sub_sub_const + + + +def const_sub_const_sub_before := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.sub %0, %arg20 : i32 + %3 = llvm.sub %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def const_sub_const_sub_after := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = -6 : i32}> : () -> i32 + %1 = llvm.add %arg20, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem const_sub_const_sub_proof : const_sub_const_sub_before ⊑ const_sub_const_sub_after := by + unfold const_sub_const_sub_before const_sub_const_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN const_sub_const_sub + apply const_sub_const_sub_thm + ---END const_sub_const_sub + + + +def addsub_combine_constants_before := [llvm| +{ +^0(%arg14 : i7, %arg15 : i7): + %0 = "llvm.mlir.constant"() <{value = 42 : i7}> : () -> i7 + %1 = "llvm.mlir.constant"() <{value = 10 : i7}> : () -> i7 + %2 = llvm.add %arg14, %0 : i7 + %3 = llvm.sub %1, %arg15 : i7 + %4 = llvm.add %2, %3 overflow : i7 + "llvm.return"(%4) : (i7) -> () +} +] +def addsub_combine_constants_after := [llvm| +{ +^0(%arg14 : i7, %arg15 : i7): + %0 = "llvm.mlir.constant"() <{value = 52 : i7}> : () -> i7 + %1 = llvm.sub %arg14, %arg15 : i7 + %2 = llvm.add %1, %0 : i7 + "llvm.return"(%2) : (i7) -> () +} +] +theorem addsub_combine_constants_proof : addsub_combine_constants_before ⊑ addsub_combine_constants_after := by + unfold addsub_combine_constants_before addsub_combine_constants_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN addsub_combine_constants + apply addsub_combine_constants_thm + ---END addsub_combine_constants + + + +def sub_from_constant_before := [llvm| +{ +^0(%arg6 : i5, %arg7 : i5): + %0 = "llvm.mlir.constant"() <{value = 10 : i5}> : () -> i5 + %1 = llvm.sub %0, %arg6 : i5 + %2 = llvm.add %1, %arg7 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +def sub_from_constant_after := [llvm| +{ +^0(%arg6 : i5, %arg7 : i5): + %0 = "llvm.mlir.constant"() <{value = 10 : i5}> : () -> i5 + %1 = llvm.sub %arg7, %arg6 : i5 + %2 = llvm.add %1, %0 : i5 + "llvm.return"(%2) : (i5) -> () +} +] +theorem sub_from_constant_proof : sub_from_constant_before ⊑ sub_from_constant_after := by + unfold sub_from_constant_before sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant + apply sub_from_constant_thm + ---END sub_from_constant + + + +def sub_from_constant_commute_before := [llvm| +{ +^0(%arg4 : i5, %arg5 : i5): + %0 = "llvm.mlir.constant"() <{value = 10 : i5}> : () -> i5 + %1 = llvm.mul %arg5, %arg5 : i5 + %2 = llvm.sub %0, %arg4 overflow : i5 + %3 = llvm.add %1, %2 overflow : i5 + "llvm.return"(%3) : (i5) -> () +} +] +def sub_from_constant_commute_after := [llvm| +{ +^0(%arg4 : i5, %arg5 : i5): + %0 = "llvm.mlir.constant"() <{value = 10 : i5}> : () -> i5 + %1 = llvm.mul %arg5, %arg5 : i5 + %2 = llvm.sub %1, %arg4 : i5 + %3 = llvm.add %2, %0 : i5 + "llvm.return"(%3) : (i5) -> () +} +] +theorem sub_from_constant_commute_proof : sub_from_constant_commute_before ⊑ sub_from_constant_commute_after := by + unfold sub_from_constant_commute_before sub_from_constant_commute_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_commute + apply sub_from_constant_commute_thm + ---END sub_from_constant_commute + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding_proof.lean new file mode 100644 index 000000000..533778765 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gaddsubhconstanthfolding_proof.lean @@ -0,0 +1,67 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gaddsubhconstanthfolding_proof +theorem add_const_add_const_thm (x : BitVec 32) : x + 8#32 + 2#32 = x + 10#32 := sorry + +theorem add_const_sub_const_thm (x : BitVec 32) : x + 8#32 - 2#32 = x + 6#32 := sorry + +theorem add_const_const_sub_thm (x : BitVec 32) : 2#32 - (x + 8#32) = 4294967290#32 - x := sorry + +theorem add_nsw_const_const_sub_nsw_thm (x : BitVec 8) : + ((if x.msb = false ∧ ¬(x + 1#8).msb = x.msb then none else some (x + 1#8)).bind fun a => + if (385#9 - signExtend 9 a).msb = (385#9 - signExtend 9 a).getMsbD 1 then some (129#8 - a) else none) ⊑ + if (384#9 - signExtend 9 x).msb = (384#9 - signExtend 9 x).getMsbD 1 then some (128#8 - x) else none := sorry + +theorem add_nsw_const_const_sub_thm (x : BitVec 8) : + ((if x.msb = false ∧ ¬(x + 1#8).msb = x.msb then none else some (x + 1#8)).bind fun y' => some (129#8 - y')) ⊑ + some (128#8 - x) := sorry + +theorem add_const_const_sub_nsw_thm (x : BitVec 8) : + (if (385#9 - signExtend 9 (x + 1#8)).msb = (385#9 - signExtend 9 (x + 1#8)).getMsbD 1 then some (129#8 - (x + 1#8)) + else none) ⊑ + some (128#8 - x) := sorry + +theorem add_nsw_const_const_sub_nsw_ov_thm (x : BitVec 8) : + ((if x.msb = (2#8).msb ∧ ¬(x + 2#8).msb = x.msb then none else some (x + 2#8)).bind fun a => + if (385#9 - signExtend 9 a).msb = (385#9 - signExtend 9 a).getMsbD 1 then some (129#8 - a) else none) ⊑ + some (127#8 - x) := sorry + +theorem add_nuw_const_const_sub_nuw_thm (x : BitVec 8) : + ((if x + 1#8 < x ∨ x + 1#8 < 1#8 then none else some (x + 1#8)).bind fun y' => + if 129#8 < y' then none else some (129#8 - y')) ⊑ + if 128#8 < x then none else some (128#8 - x) := sorry + +theorem add_nuw_const_const_sub_thm (x : BitVec 8) : + ((if x + 1#8 < x ∨ x + 1#8 < 1#8 then none else some (x + 1#8)).bind fun y' => some (129#8 - y')) ⊑ + some (128#8 - x) := sorry + +theorem add_const_const_sub_nuw_thm (x : BitVec 8) : + (if 129#8 < x + 1#8 then none else some (129#8 - (x + 1#8))) ⊑ some (128#8 - x) := sorry + +theorem sub_const_add_const_thm (x : BitVec 32) : x - 8#32 + 2#32 = x + 4294967290#32 := sorry + +theorem sub_const_sub_const_thm (x : BitVec 32) : x - 8#32 - 2#32 = x + 4294967286#32 := sorry + +theorem sub_const_const_sub_thm (x : BitVec 32) : 2#32 - (x - 8#32) = 10#32 - x := sorry + +theorem const_sub_add_const_thm (x : BitVec 32) : 8#32 - x + 2#32 = 10#32 - x := sorry + +theorem const_sub_sub_const_thm (x : BitVec 32) : 8#32 - x - 2#32 = 6#32 - x := sorry + +theorem const_sub_const_sub_thm (x : BitVec 32) : 2#32 - (8#32 - x) = x + 4294967290#32 := sorry + +theorem addsub_combine_constants_thm (x x_1 : BitVec 7) : + (if (x_1 + 42#7).msb = (10#7 - x).msb ∧ ¬(x_1 + 42#7 + (10#7 - x)).msb = (x_1 + 42#7).msb then none + else some (x_1 + 42#7 + (10#7 - x))) ⊑ + some (x_1 - x + 52#7) := sorry + +theorem sub_from_constant_thm (x x_1 : BitVec 5) : 10#5 - x_1 + x = x - x_1 + 10#5 := sorry + +theorem sub_from_constant_commute_thm (x x_1 : BitVec 5) : + ((if (10#6 - signExtend 6 x).msb = (10#6 - signExtend 6 x).getMsbD 1 then some (10#5 - x) else none).bind fun y' => + if (x_1 * x_1).msb = y'.msb ∧ ¬(x_1 * x_1 + y').msb = (x_1 * x_1).msb then none else some (x_1 * x_1 + y')) ⊑ + some (x_1 * x_1 - x + 10#5) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gand2.lean b/SSA/Projects/InstCombine/tests/proofs/gand2.lean index 4a053dbc6..dd0fcdafe 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gand2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gand2.lean @@ -12,7 +12,7 @@ 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): @@ -35,7 +35,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm @@ -65,7 +65,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 apply test3_thm @@ -98,7 +98,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 apply test9_thm @@ -134,7 +134,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 apply test10_thm @@ -169,7 +169,7 @@ theorem and1_shl1_is_cmp_eq_0_multiuse_proof : and1_shl1_is_cmp_eq_0_multiuse_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_shl1_is_cmp_eq_0_multiuse apply and1_shl1_is_cmp_eq_0_multiuse_thm @@ -201,7 +201,7 @@ theorem and1_lshr1_is_cmp_eq_0_proof : and1_lshr1_is_cmp_eq_0_before ⊑ and1_ls simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_lshr1_is_cmp_eq_0 apply and1_lshr1_is_cmp_eq_0_thm @@ -235,7 +235,7 @@ theorem and1_lshr1_is_cmp_eq_0_multiuse_proof : and1_lshr1_is_cmp_eq_0_multiuse_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and1_lshr1_is_cmp_eq_0_multiuse apply and1_lshr1_is_cmp_eq_0_multiuse_thm @@ -273,7 +273,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 apply test11_thm @@ -311,7 +311,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 apply test12_thm @@ -349,7 +349,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 apply test13_thm @@ -389,7 +389,7 @@ theorem test14_proof : test14_before ⊑ test14_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test14 apply test14_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean index d6d0906ae..8012f0fd2 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhorhand_statements - + def test1_before := [llvm| { ^0(%arg10 : i32, %arg11 : i32): @@ -40,7 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm @@ -73,7 +73,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 apply test3_thm @@ -107,7 +107,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 apply test4_thm @@ -138,7 +138,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test1 apply or_test1_thm @@ -170,7 +170,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test2 apply or_test2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean index 2c354266a..ebe78ab49 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gandhorhnot.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhorhnot_statements - + def and_to_xor1_before := [llvm| { ^0(%arg119 : i32, %arg120 : i32): @@ -38,7 +38,7 @@ theorem and_to_xor1_proof : and_to_xor1_before ⊑ and_to_xor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor1 apply and_to_xor1_thm @@ -71,7 +71,7 @@ theorem and_to_xor2_proof : and_to_xor2_before ⊑ and_to_xor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor2 apply and_to_xor2_thm @@ -104,7 +104,7 @@ theorem and_to_xor3_proof : and_to_xor3_before ⊑ and_to_xor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor3 apply and_to_xor3_thm @@ -137,7 +137,7 @@ theorem and_to_xor4_proof : and_to_xor4_before ⊑ and_to_xor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN and_to_xor4 apply and_to_xor4_thm @@ -172,7 +172,7 @@ theorem or_to_nxor1_proof : or_to_nxor1_before ⊑ or_to_nxor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor1 apply or_to_nxor1_thm @@ -207,7 +207,7 @@ theorem or_to_nxor2_proof : or_to_nxor2_before ⊑ or_to_nxor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor2 apply or_to_nxor2_thm @@ -242,7 +242,7 @@ theorem or_to_nxor3_proof : or_to_nxor3_before ⊑ or_to_nxor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor3 apply or_to_nxor3_thm @@ -277,7 +277,7 @@ theorem or_to_nxor4_proof : or_to_nxor4_before ⊑ or_to_nxor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_to_nxor4 apply or_to_nxor4_thm @@ -308,7 +308,7 @@ theorem xor_to_xor1_proof : xor_to_xor1_before ⊑ xor_to_xor1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor1 apply xor_to_xor1_thm @@ -339,7 +339,7 @@ theorem xor_to_xor2_proof : xor_to_xor2_before ⊑ xor_to_xor2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor2 apply xor_to_xor2_thm @@ -370,7 +370,7 @@ theorem xor_to_xor3_proof : xor_to_xor3_before ⊑ xor_to_xor3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor3 apply xor_to_xor3_thm @@ -401,7 +401,7 @@ theorem xor_to_xor4_proof : xor_to_xor4_before ⊑ xor_to_xor4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_to_xor4 apply xor_to_xor4_thm @@ -440,7 +440,7 @@ theorem PR32830_proof : PR32830_before ⊑ PR32830_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR32830 apply PR32830_thm @@ -473,7 +473,7 @@ theorem simplify_or_common_op_commute0_proof : simplify_or_common_op_commute0_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute0 apply simplify_or_common_op_commute0_thm @@ -506,7 +506,7 @@ theorem simplify_or_common_op_commute1_proof : simplify_or_common_op_commute1_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute1 apply simplify_or_common_op_commute1_thm @@ -541,7 +541,7 @@ theorem simplify_or_common_op_commute2_proof : simplify_or_common_op_commute2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_or_common_op_commute2 apply simplify_or_common_op_commute2_thm @@ -574,7 +574,7 @@ theorem simplify_and_common_op_commute1_proof : simplify_and_common_op_commute1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_and_common_op_commute1 apply simplify_and_common_op_commute1_thm @@ -609,7 +609,7 @@ theorem simplify_and_common_op_commute2_proof : simplify_and_common_op_commute2_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN simplify_and_common_op_commute2 apply simplify_and_common_op_commute2_thm @@ -641,7 +641,7 @@ theorem reduce_xor_common_op_commute0_proof : reduce_xor_common_op_commute0_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reduce_xor_common_op_commute0 apply reduce_xor_common_op_commute0_thm @@ -673,7 +673,7 @@ theorem reduce_xor_common_op_commute1_proof : reduce_xor_common_op_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reduce_xor_common_op_commute1 apply reduce_xor_common_op_commute1_thm @@ -708,7 +708,7 @@ theorem annihilate_xor_common_op_commute2_proof : annihilate_xor_common_op_commu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN annihilate_xor_common_op_commute2 apply annihilate_xor_common_op_commute2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean index 27ac58d02..eb8946129 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gandhxorhmerge.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gandhxorhmerge_statements - + def test1_before := [llvm| { ^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): @@ -37,7 +37,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm @@ -68,7 +68,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm @@ -101,7 +101,7 @@ theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN PR75692_1 apply PR75692_1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gannotations.lean b/SSA/Projects/InstCombine/tests/proofs/gannotations.lean new file mode 100644 index 000000000..8c696ca45 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gannotations.lean @@ -0,0 +1,45 @@ +import SSA.Projects.InstCombine.tests.proofs.gannotations_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 gannotations_statements + +def do_not_add_annotation_to_existing_instr_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = llvm.add %arg15, %arg16 : i32 + %2 = llvm.add %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def do_not_add_annotation_to_existing_instr_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.add %arg15, %arg16 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem do_not_add_annotation_to_existing_instr_proof : do_not_add_annotation_to_existing_instr_before ⊑ do_not_add_annotation_to_existing_instr_after := by + unfold do_not_add_annotation_to_existing_instr_before do_not_add_annotation_to_existing_instr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN do_not_add_annotation_to_existing_instr + all_goals (try extract_goal ; sorry) + ---END do_not_add_annotation_to_existing_instr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean new file mode 100644 index 000000000..7ef0dfc3c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gannotations_proof.lean @@ -0,0 +1,6 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gannotations_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean new file mode 100644 index 000000000..37a5c8bb4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthand.lean @@ -0,0 +1,262 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthand_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 gapinthand_statements + +def test0_before := [llvm| +{ +^0(%arg13 : i39): + %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 + %1 = llvm.and %arg13, %0 : i39 + "llvm.return"(%1) : (i39) -> () +} +] +def test0_after := [llvm| +{ +^0(%arg13 : i39): + %0 = "llvm.mlir.constant"() <{value = 0 : i39}> : () -> i39 + "llvm.return"(%0) : (i39) -> () +} +] +theorem test0_proof : test0_before ⊑ test0_after := by + unfold test0_before test0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test0 + all_goals (try extract_goal ; sorry) + ---END test0 + + + +def test2_before := [llvm| +{ +^0(%arg12 : i15): + %0 = "llvm.mlir.constant"() <{value = -1 : i15}> : () -> i15 + %1 = llvm.and %arg12, %0 : i15 + "llvm.return"(%1) : (i15) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg12 : i15): + "llvm.return"(%arg12) : (i15) -> () +} +] +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(%arg11 : i23): + %0 = "llvm.mlir.constant"() <{value = 127 : i23}> : () -> i23 + %1 = "llvm.mlir.constant"() <{value = 128 : i23}> : () -> i23 + %2 = llvm.and %arg11, %0 : i23 + %3 = llvm.and %2, %1 : i23 + "llvm.return"(%3) : (i23) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg11 : i23): + %0 = "llvm.mlir.constant"() <{value = 0 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +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 test7_before := [llvm| +{ +^0(%arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 255 : i47}> : () -> i47 + %2 = llvm.ashr %arg7, %0 : i47 + %3 = llvm.and %2, %1 : i47 + "llvm.return"(%3) : (i47) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = 39 : i47}> : () -> i47 + %1 = llvm.lshr %arg7, %0 : i47 + "llvm.return"(%1) : (i47) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + + +def test8_before := [llvm| +{ +^0(%arg6 : i999): + %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 + %1 = llvm.and %arg6, %0 : i999 + "llvm.return"(%1) : (i999) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg6 : i999): + %0 = "llvm.mlir.constant"() <{value = 0 : i999}> : () -> i999 + "llvm.return"(%0) : (i999) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test8 + all_goals (try extract_goal ; sorry) + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg5 : i1005): + %0 = "llvm.mlir.constant"() <{value = -1 : i1005}> : () -> i1005 + %1 = llvm.and %arg5, %0 : i1005 + "llvm.return"(%1) : (i1005) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg5 : i1005): + "llvm.return"(%arg5) : (i1005) -> () +} +] +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(%arg4 : i123): + %0 = "llvm.mlir.constant"() <{value = 127 : i123}> : () -> i123 + %1 = "llvm.mlir.constant"() <{value = 128 : i123}> : () -> i123 + %2 = llvm.and %arg4, %0 : i123 + %3 = llvm.and %2, %1 : i123 + "llvm.return"(%3) : (i123) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg4 : i123): + %0 = "llvm.mlir.constant"() <{value = 0 : i123}> : () -> i123 + "llvm.return"(%0) : (i123) -> () +} +] +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 test13_before := [llvm| +{ +^0(%arg0 : i1024): + %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 + %1 = "llvm.mlir.constant"() <{value = 255 : i1024}> : () -> i1024 + %2 = llvm.ashr %arg0, %0 : i1024 + %3 = llvm.and %2, %1 : i1024 + "llvm.return"(%3) : (i1024) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg0 : i1024): + %0 = "llvm.mlir.constant"() <{value = 1016 : i1024}> : () -> i1024 + %1 = llvm.lshr %arg0, %0 : i1024 + "llvm.return"(%1) : (i1024) -> () +} +] +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 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean new file mode 100644 index 000000000..be5acd0f0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthand_proof.lean @@ -0,0 +1,24 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthand_proof +theorem test2_thm (x : BitVec 15) : x &&& 32767#15 = x := sorry + +theorem test3_thm (x : BitVec 23) : x &&& 127#23 &&& 128#23 = 0#23 := sorry + +theorem test7_thm (x : BitVec 47) : x.sshiftRight 39 &&& 255#47 = x >>> 39 := sorry + +theorem test9_thm (x : BitVec 1005) : + x &&& + 342882754299605542703496015699200579379649539745770754382000124278512336359979559197823481221022674600830295333617006984059886491421540493951506482390354393725906168794375391533474387361995876540094533828897487199474622120556760561893297406274466013266278287285969349365133754612883980378790581378220031#1005 = + x := sorry + +theorem test10_thm (x : BitVec 123) : x &&& 127#123 &&& 128#123 = 0#123 := sorry + +theorem test13_thm (x : BitVec 1024) : + (Option.bind (if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x.sshiftRight (1016 % 2 ^ 1024))) fun x' => + some (x' &&& 255#1024)) ⊑ + if 1024 % 2 ^ 1024 ≤ 1016 % 2 ^ 1024 then none else some (x >>> (1016 % 2 ^ 1024)) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean index 281a7884e..8bb4f0868 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhorhand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthandhorhand_statements - + def test1_before := [llvm| { ^0(%arg8 : i17, %arg9 : i17): @@ -40,7 +40,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm @@ -73,7 +73,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 apply test3_thm @@ -107,7 +107,7 @@ theorem test4_proof : test4_before ⊑ test4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test4 apply test4_thm @@ -138,7 +138,7 @@ theorem or_test1_proof : or_test1_before ⊑ or_test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test1 apply or_test1_thm @@ -170,7 +170,7 @@ theorem or_test2_proof : or_test2_before ⊑ or_test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN or_test2 apply or_test2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean index 3a8c83b65..fe4a49c90 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthandhxorhmerge.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthandhxorhmerge_statements - + def test1_before := [llvm| { ^0(%arg3 : i57, %arg4 : i57, %arg5 : i57): @@ -37,7 +37,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm @@ -68,7 +68,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean index 152f80318..2c2c8d009 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul1.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthmul1_statements - + def test1_before := [llvm| { ^0(%arg2 : i17): @@ -36,7 +36,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean index fb85fcec9..0a352f33d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthmul2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthmul2_statements - + def test1_before := [llvm| { ^0(%arg2 : i177): @@ -38,7 +38,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean index bb02457a0..4db587b5d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthnot.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthnot_statements - + def test1_before := [llvm| { ^0(%arg2 : i33): @@ -35,7 +35,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean new file mode 100644 index 000000000..2b0def2ed --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthor.lean @@ -0,0 +1,154 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthor_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 gapinthor_statements + +def test1_before := [llvm| +{ +^0(%arg5 : i23): + %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 + %1 = llvm.xor %0, %arg5 : i23 + %2 = llvm.or %arg5, %1 : i23 + "llvm.return"(%2) : (i23) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg5 : i23): + %0 = "llvm.mlir.constant"() <{value = -1 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +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(%arg3 : i39, %arg4 : i39): + %0 = "llvm.mlir.constant"() <{value = 274877906943 : i39}> : () -> i39 + %1 = "llvm.mlir.constant"() <{value = -1 : i39}> : () -> i39 + %2 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 + %3 = llvm.xor %0, %1 : i39 + %4 = llvm.and %arg4, %2 : i39 + %5 = llvm.add %arg3, %4 : i39 + %6 = llvm.and %5, %3 : i39 + %7 = llvm.and %arg3, %0 : i39 + %8 = llvm.or %6, %7 : i39 + "llvm.return"(%8) : (i39) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg3 : i39, %arg4 : i39): + %0 = "llvm.mlir.constant"() <{value = -274877906944 : i39}> : () -> i39 + %1 = llvm.and %arg4, %0 : i39 + %2 = llvm.add %arg3, %1 : i39 + "llvm.return"(%2) : (i39) -> () +} +] +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 test4_before := [llvm| +{ +^0(%arg2 : i1023): + %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 + %1 = llvm.xor %0, %arg2 : i1023 + %2 = llvm.or %arg2, %1 : i1023 + "llvm.return"(%2) : (i1023) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg2 : i1023): + %0 = "llvm.mlir.constant"() <{value = -1 : i1023}> : () -> i1023 + "llvm.return"(%0) : (i1023) -> () +} +] +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 test5_before := [llvm| +{ +^0(%arg0 : i399, %arg1 : i399): + %0 = "llvm.mlir.constant"() <{value = 274877906943 : i399}> : () -> i399 + %1 = "llvm.mlir.constant"() <{value = -1 : i399}> : () -> i399 + %2 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 + %3 = llvm.xor %0, %1 : i399 + %4 = llvm.and %arg1, %2 : i399 + %5 = llvm.add %arg0, %4 : i399 + %6 = llvm.and %5, %3 : i399 + %7 = llvm.and %arg0, %0 : i399 + %8 = llvm.or %6, %7 : i399 + "llvm.return"(%8) : (i399) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg0 : i399, %arg1 : i399): + %0 = "llvm.mlir.constant"() <{value = 18446742974197923840 : i399}> : () -> i399 + %1 = llvm.and %arg1, %0 : i399 + %2 = llvm.add %arg0, %1 : i399 + "llvm.return"(%2) : (i399) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean new file mode 100644 index 000000000..84c8b8e3e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthor_proof.lean @@ -0,0 +1,23 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthor_proof +theorem test1_thm (x : BitVec 23) : x ||| 8388607#23 ^^^ x = 8388607#23 := sorry + +theorem test2_thm (x x_1 : BitVec 39) : + x_1 + (x &&& 274877906944#39) &&& 274877906944#39 ||| x_1 &&& 274877906943#39 = x_1 + (x &&& 274877906944#39) := sorry + +theorem test4_thm (x : BitVec 1023) : + x ||| + 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 ^^^ + x = + 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068607#1023 := sorry + +theorem test5_thm (x x_1 : BitVec 399) : + x_1 + (x &&& 18446742974197923840#399) &&& + 1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585711495839744#399 ||| + x_1 &&& 274877906943#399 = + x_1 + (x &&& 18446742974197923840#399) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean new file mode 100644 index 000000000..bc05e5a25 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthrem1_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 gapinthrem1_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 4096 : i33}> : () -> i33 + %1 = llvm.urem %arg3, %0 : i33 + "llvm.return"(%1) : (i33) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i33): + %0 = "llvm.mlir.constant"() <{value = 4095 : i33}> : () -> i33 + %1 = llvm.and %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 = 11 : i49}> : () -> i49 + %2 = llvm.shl %0, %1 : i49 + %3 = llvm.urem %arg2, %2 : i49 + "llvm.return"(%3) : (i49) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i49): + %0 = "llvm.mlir.constant"() <{value = 8388607 : i49}> : () -> i49 + %1 = llvm.and %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 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean new file mode 100644 index 000000000..a78d007f5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem1_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthrem1_proof +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 + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean new file mode 100644 index 000000000..a3fb177c0 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2.lean @@ -0,0 +1,78 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthrem2_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 gapinthrem2_statements + +def test1_before := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i333}> : () -> i333 + %1 = llvm.urem %arg3, %0 : i333 + "llvm.return"(%1) : (i333) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg3 : i333): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i333}> : () -> i333 + %1 = llvm.and %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 = 111 : i499}> : () -> i499 + %2 = llvm.shl %0, %1 : i499 + %3 = llvm.urem %arg2, %2 : i499 + "llvm.return"(%3) : (i499) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg2 : i499): + %0 = "llvm.mlir.constant"() <{value = 10633823966279326983230456482242756607 : i499}> : () -> i499 + %1 = llvm.and %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 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean new file mode 100644 index 000000000..80ea80a7c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthrem2_proof.lean @@ -0,0 +1,13 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthrem2_proof +theorem test1_thm (x : BitVec 333) : x % 70368744177664#333 = x &&& 70368744177663#333 := sorry + +theorem test2_thm (x : BitVec 499) : + (Option.bind (if 499 % 2 ^ 499 ≤ 111 % 2 ^ 499 then none else some (4096#499 <<< (111 % 2 ^ 499))) fun y' => + if y' = 0#499 then none else some (x % y')) ⊑ + some (x &&& 10633823966279326983230456482242756607#499) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean new file mode 100644 index 000000000..d9c29c537 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshift.lean @@ -0,0 +1,534 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthshift_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 gapinthshift_statements + +def test6_before := [llvm| +{ +^0(%arg48 : i55): + %0 = "llvm.mlir.constant"() <{value = 1 : i55}> : () -> i55 + %1 = "llvm.mlir.constant"() <{value = 3 : i55}> : () -> i55 + %2 = llvm.shl %arg48, %0 : i55 + %3 = llvm.mul %2, %1 : i55 + "llvm.return"(%3) : (i55) -> () +} +] +def test6_after := [llvm| +{ +^0(%arg48 : i55): + %0 = "llvm.mlir.constant"() <{value = 6 : i55}> : () -> i55 + %1 = llvm.mul %arg48, %0 : i55 + "llvm.return"(%1) : (i55) -> () +} +] +theorem test6_proof : test6_before ⊑ test6_after := by + unfold test6_before test6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6 + apply test6_thm + ---END test6 + + + +def test6a_before := [llvm| +{ +^0(%arg47 : i55): + %0 = "llvm.mlir.constant"() <{value = 3 : i55}> : () -> i55 + %1 = "llvm.mlir.constant"() <{value = 1 : i55}> : () -> i55 + %2 = llvm.mul %arg47, %0 : i55 + %3 = llvm.shl %2, %1 : i55 + "llvm.return"(%3) : (i55) -> () +} +] +def test6a_after := [llvm| +{ +^0(%arg47 : i55): + %0 = "llvm.mlir.constant"() <{value = 6 : i55}> : () -> i55 + %1 = llvm.mul %arg47, %0 : i55 + "llvm.return"(%1) : (i55) -> () +} +] +theorem test6a_proof : test6a_before ⊑ test6a_after := by + unfold test6a_before test6a_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6a + apply test6a_thm + ---END test6a + + + +def test8_before := [llvm| +{ +^0(%arg43 : i7): + %0 = "llvm.mlir.constant"() <{value = 4 : i7}> : () -> i7 + %1 = "llvm.mlir.constant"() <{value = 3 : i7}> : () -> i7 + %2 = llvm.shl %arg43, %0 : i7 + %3 = llvm.shl %2, %1 : i7 + "llvm.return"(%3) : (i7) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg43 : i7): + %0 = "llvm.mlir.constant"() <{value = 0 : i7}> : () -> i7 + "llvm.return"(%0) : (i7) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test8 + apply test8_thm + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg42 : i17): + %0 = "llvm.mlir.constant"() <{value = 16 : i17}> : () -> i17 + %1 = llvm.shl %arg42, %0 : i17 + %2 = llvm.lshr %1, %0 : i17 + "llvm.return"(%2) : (i17) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg42 : i17): + %0 = "llvm.mlir.constant"() <{value = 1 : i17}> : () -> i17 + %1 = llvm.and %arg42, %0 : i17 + "llvm.return"(%1) : (i17) -> () +} +] +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(%arg41 : i19): + %0 = "llvm.mlir.constant"() <{value = 18 : i19}> : () -> i19 + %1 = llvm.lshr %arg41, %0 : i19 + %2 = llvm.shl %1, %0 : i19 + "llvm.return"(%2) : (i19) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg41 : i19): + %0 = "llvm.mlir.constant"() <{value = -262144 : i19}> : () -> i19 + %1 = llvm.and %arg41, %0 : i19 + "llvm.return"(%1) : (i19) -> () +} +] +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 + all_goals (try extract_goal ; sorry) + ---END test10 + + + +def multiuse_lshr_lshr_before := [llvm| +{ +^0(%arg39 : i9): + %0 = "llvm.mlir.constant"() <{value = 2 : i9}> : () -> i9 + %1 = "llvm.mlir.constant"() <{value = 3 : i9}> : () -> i9 + %2 = llvm.lshr %arg39, %0 : i9 + %3 = llvm.lshr %2, %1 : i9 + %4 = llvm.mul %2, %3 : i9 + "llvm.return"(%4) : (i9) -> () +} +] +def multiuse_lshr_lshr_after := [llvm| +{ +^0(%arg39 : i9): + %0 = "llvm.mlir.constant"() <{value = 2 : i9}> : () -> i9 + %1 = "llvm.mlir.constant"() <{value = 5 : i9}> : () -> i9 + %2 = llvm.lshr %arg39, %0 : i9 + %3 = llvm.lshr %arg39, %1 : i9 + %4 = llvm.mul %2, %3 : i9 + "llvm.return"(%4) : (i9) -> () +} +] +theorem multiuse_lshr_lshr_proof : multiuse_lshr_lshr_before ⊑ multiuse_lshr_lshr_after := by + unfold multiuse_lshr_lshr_before multiuse_lshr_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN multiuse_lshr_lshr + all_goals (try extract_goal ; sorry) + ---END multiuse_lshr_lshr + + + +def multiuse_shl_shl_before := [llvm| +{ +^0(%arg36 : i42): + %0 = "llvm.mlir.constant"() <{value = 8 : i42}> : () -> i42 + %1 = "llvm.mlir.constant"() <{value = 9 : i42}> : () -> i42 + %2 = llvm.shl %arg36, %0 : i42 + %3 = llvm.shl %2, %1 : i42 + %4 = llvm.mul %2, %3 : i42 + "llvm.return"(%4) : (i42) -> () +} +] +def multiuse_shl_shl_after := [llvm| +{ +^0(%arg36 : i42): + %0 = "llvm.mlir.constant"() <{value = 8 : i42}> : () -> i42 + %1 = "llvm.mlir.constant"() <{value = 17 : i42}> : () -> i42 + %2 = llvm.shl %arg36, %0 : i42 + %3 = llvm.shl %arg36, %1 : i42 + %4 = llvm.mul %2, %3 : i42 + "llvm.return"(%4) : (i42) -> () +} +] +theorem multiuse_shl_shl_proof : multiuse_shl_shl_before ⊑ multiuse_shl_shl_after := by + unfold multiuse_shl_shl_before multiuse_shl_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN multiuse_shl_shl + all_goals (try extract_goal ; sorry) + ---END multiuse_shl_shl + + + +def test11_before := [llvm| +{ +^0(%arg30 : i23): + %0 = "llvm.mlir.constant"() <{value = 3 : i23}> : () -> i23 + %1 = "llvm.mlir.constant"() <{value = 11 : i23}> : () -> i23 + %2 = "llvm.mlir.constant"() <{value = 12 : i23}> : () -> i23 + %3 = llvm.mul %arg30, %0 : i23 + %4 = llvm.lshr %3, %1 : i23 + %5 = llvm.shl %4, %2 : i23 + "llvm.return"(%5) : (i23) -> () +} +] +def test11_after := [llvm| +{ +^0(%arg30 : i23): + %0 = "llvm.mlir.constant"() <{value = 6 : i23}> : () -> i23 + %1 = "llvm.mlir.constant"() <{value = -4096 : i23}> : () -> i23 + %2 = llvm.mul %arg30, %0 : i23 + %3 = llvm.and %2, %1 : i23 + "llvm.return"(%3) : (i23) -> () +} +] +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(%arg29 : i47): + %0 = "llvm.mlir.constant"() <{value = 8 : i47}> : () -> i47 + %1 = llvm.ashr %arg29, %0 : i47 + %2 = llvm.shl %1, %0 : i47 + "llvm.return"(%2) : (i47) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg29 : i47): + %0 = "llvm.mlir.constant"() <{value = -256 : i47}> : () -> i47 + %1 = llvm.and %arg29, %0 : i47 + "llvm.return"(%1) : (i47) -> () +} +] +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(%arg27 : i18): + %0 = "llvm.mlir.constant"() <{value = 3 : i18}> : () -> i18 + %1 = "llvm.mlir.constant"() <{value = 8 : i18}> : () -> i18 + %2 = "llvm.mlir.constant"() <{value = 9 : i18}> : () -> i18 + %3 = llvm.mul %arg27, %0 : i18 + %4 = llvm.ashr %3, %1 : i18 + %5 = llvm.shl %4, %2 : i18 + "llvm.return"(%5) : (i18) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg27 : i18): + %0 = "llvm.mlir.constant"() <{value = 6 : i18}> : () -> i18 + %1 = "llvm.mlir.constant"() <{value = -512 : i18}> : () -> i18 + %2 = llvm.mul %arg27, %0 : i18 + %3 = llvm.and %2, %1 : i18 + "llvm.return"(%3) : (i18) -> () +} +] +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(%arg26 : i35): + %0 = "llvm.mlir.constant"() <{value = 4 : i35}> : () -> i35 + %1 = "llvm.mlir.constant"() <{value = 1234 : i35}> : () -> i35 + %2 = llvm.lshr %arg26, %0 : i35 + %3 = llvm.or %2, %1 : i35 + %4 = llvm.shl %3, %0 : i35 + "llvm.return"(%4) : (i35) -> () +} +] +def test14_after := [llvm| +{ +^0(%arg26 : i35): + %0 = "llvm.mlir.constant"() <{value = -19760 : i35}> : () -> i35 + %1 = "llvm.mlir.constant"() <{value = 19744 : i35}> : () -> i35 + %2 = llvm.and %arg26, %0 : i35 + %3 = llvm.or %2, %1 : i35 + "llvm.return"(%3) : (i35) -> () +} +] +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 + + + +def test14a_before := [llvm| +{ +^0(%arg25 : i79): + %0 = "llvm.mlir.constant"() <{value = 4 : i79}> : () -> i79 + %1 = "llvm.mlir.constant"() <{value = 1234 : i79}> : () -> i79 + %2 = llvm.shl %arg25, %0 : i79 + %3 = llvm.and %2, %1 : i79 + %4 = llvm.lshr %3, %0 : i79 + "llvm.return"(%4) : (i79) -> () +} +] +def test14a_after := [llvm| +{ +^0(%arg25 : i79): + %0 = "llvm.mlir.constant"() <{value = 77 : i79}> : () -> i79 + %1 = llvm.and %arg25, %0 : i79 + "llvm.return"(%1) : (i79) -> () +} +] +theorem test14a_proof : test14a_before ⊑ test14a_after := by + unfold test14a_before test14a_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test14a + apply test14a_thm + ---END test14a + + + +def shl_lshr_eq_amt_multi_use_before := [llvm| +{ +^0(%arg7 : i44): + %0 = "llvm.mlir.constant"() <{value = 33 : i44}> : () -> i44 + %1 = llvm.shl %arg7, %0 : i44 + %2 = llvm.lshr %1, %0 : i44 + %3 = llvm.add %1, %2 : i44 + "llvm.return"(%3) : (i44) -> () +} +] +def shl_lshr_eq_amt_multi_use_after := [llvm| +{ +^0(%arg7 : i44): + %0 = "llvm.mlir.constant"() <{value = 33 : i44}> : () -> i44 + %1 = "llvm.mlir.constant"() <{value = 2047 : i44}> : () -> i44 + %2 = llvm.shl %arg7, %0 : i44 + %3 = llvm.and %arg7, %1 : i44 + %4 = llvm.or %2, %3 : i44 + "llvm.return"(%4) : (i44) -> () +} +] +theorem shl_lshr_eq_amt_multi_use_proof : shl_lshr_eq_amt_multi_use_before ⊑ shl_lshr_eq_amt_multi_use_after := by + unfold shl_lshr_eq_amt_multi_use_before shl_lshr_eq_amt_multi_use_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_lshr_eq_amt_multi_use + apply shl_lshr_eq_amt_multi_use_thm + ---END shl_lshr_eq_amt_multi_use + + + +def lshr_shl_eq_amt_multi_use_before := [llvm| +{ +^0(%arg5 : i43): + %0 = "llvm.mlir.constant"() <{value = 23 : i43}> : () -> i43 + %1 = llvm.lshr %arg5, %0 : i43 + %2 = llvm.shl %1, %0 : i43 + %3 = llvm.mul %1, %2 : i43 + "llvm.return"(%3) : (i43) -> () +} +] +def lshr_shl_eq_amt_multi_use_after := [llvm| +{ +^0(%arg5 : i43): + %0 = "llvm.mlir.constant"() <{value = 23 : i43}> : () -> i43 + %1 = "llvm.mlir.constant"() <{value = -8388608 : i43}> : () -> i43 + %2 = llvm.lshr %arg5, %0 : i43 + %3 = llvm.and %arg5, %1 : i43 + %4 = llvm.mul %2, %3 : i43 + "llvm.return"(%4) : (i43) -> () +} +] +theorem lshr_shl_eq_amt_multi_use_proof : lshr_shl_eq_amt_multi_use_before ⊑ lshr_shl_eq_amt_multi_use_after := by + unfold lshr_shl_eq_amt_multi_use_before lshr_shl_eq_amt_multi_use_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_shl_eq_amt_multi_use + all_goals (try extract_goal ; sorry) + ---END lshr_shl_eq_amt_multi_use + + + +def test25_before := [llvm| +{ +^0(%arg2 : i37, %arg3 : i37): + %0 = "llvm.mlir.constant"() <{value = 17 : i37}> : () -> i37 + %1 = llvm.lshr %arg3, %0 : i37 + %2 = llvm.lshr %arg2, %0 : i37 + %3 = llvm.add %2, %1 : i37 + %4 = llvm.shl %3, %0 : i37 + "llvm.return"(%4) : (i37) -> () +} +] +def test25_after := [llvm| +{ +^0(%arg2 : i37, %arg3 : i37): + %0 = "llvm.mlir.constant"() <{value = -131072 : i37}> : () -> i37 + %1 = llvm.and %arg2, %0 : i37 + %2 = llvm.add %arg3, %1 : i37 + %3 = llvm.and %2, %0 : i37 + "llvm.return"(%3) : (i37) -> () +} +] +theorem test25_proof : test25_before ⊑ test25_after := by + unfold test25_before test25_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test25 + apply test25_thm + ---END test25 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean new file mode 100644 index 000000000..e90068fb6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshift_proof.lean @@ -0,0 +1,29 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthshift_proof +theorem test6_thm (x : BitVec 55) : x <<< 1 * 3#55 = x * 6#55 := sorry + +theorem test6a_thm (x : BitVec 55) : (x * 3#55) <<< 1 = x * 6#55 := sorry + +theorem test8_thm (x : BitVec 7) : x <<< 7 = 0#7 := sorry + +theorem test9_thm (x : BitVec 17) : x <<< 16 >>> 16 = x &&& 1#17 := sorry + +theorem test11_thm (x : BitVec 23) : (x * 3#23) >>> 11 <<< 12 = x * 6#23 &&& 8384512#23 := sorry + +theorem test12_thm (x : BitVec 47) : x.sshiftRight 8 <<< 8 = x &&& 140737488355072#47 := sorry + +theorem test13_thm (x : BitVec 18) : (x * 3#18).sshiftRight 8 <<< 9 = x * 6#18 &&& 261632#18 := sorry + +theorem test14_thm (x : BitVec 35) : (x >>> 4 ||| 1234#35) <<< 4 = x &&& 34359718608#35 ||| 19744#35 := sorry + +theorem test14a_thm (x : BitVec 79) : (x <<< 4 &&& 1234#79) >>> 4 = x &&& 77#79 := 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) : + (x_1 &&& 137438822400#37) + (x &&& 137438822400#37) = x + (x_1 &&& 137438822400#37) &&& 137438822400#37 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean index f9b4219a9..b44363fdd 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthshifthsimplify.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gapinthshifthsimplify_statements - + def test0_before := [llvm| { ^0(%arg6 : i41, %arg7 : i41, %arg8 : i41): @@ -37,7 +37,7 @@ theorem test0_proof : test0_before ⊑ test0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test0 apply test0_thm @@ -69,7 +69,7 @@ theorem test1_proof : test1_before ⊑ test1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test1 apply test1_thm @@ -101,7 +101,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthsub.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthsub.lean new file mode 100644 index 000000000..b1b8524ac --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthsub.lean @@ -0,0 +1,451 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthsub_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 gapinthsub_statements + +def test1_before := [llvm| +{ +^0(%arg26 : i23): + %0 = llvm.sub %arg26, %arg26 : i23 + "llvm.return"(%0) : (i23) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg26 : i23): + %0 = "llvm.mlir.constant"() <{value = 0 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +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(%arg25 : i47): + %0 = "llvm.mlir.constant"() <{value = 0 : i47}> : () -> i47 + %1 = llvm.sub %arg25, %0 : i47 + "llvm.return"(%1) : (i47) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg25 : i47): + "llvm.return"(%arg25) : (i47) -> () +} +] +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(%arg24 : i97): + %0 = "llvm.mlir.constant"() <{value = 0 : i97}> : () -> i97 + %1 = llvm.sub %0, %arg24 : i97 + %2 = llvm.sub %0, %1 : i97 + "llvm.return"(%2) : (i97) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg24 : i97): + "llvm.return"(%arg24) : (i97) -> () +} +] +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 + + + +def test4_before := [llvm| +{ +^0(%arg22 : i108, %arg23 : i108): + %0 = "llvm.mlir.constant"() <{value = 0 : i108}> : () -> i108 + %1 = llvm.sub %0, %arg22 : i108 + %2 = llvm.sub %arg23, %1 : i108 + "llvm.return"(%2) : (i108) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg22 : i108, %arg23 : i108): + %0 = llvm.add %arg23, %arg22 : i108 + "llvm.return"(%0) : (i108) -> () +} +] +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 test5_before := [llvm| +{ +^0(%arg19 : i19, %arg20 : i19, %arg21 : i19): + %0 = llvm.sub %arg20, %arg21 : i19 + %1 = llvm.sub %arg19, %0 : i19 + "llvm.return"(%1) : (i19) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg19 : i19, %arg20 : i19, %arg21 : i19): + %0 = llvm.sub %arg21, %arg20 : i19 + %1 = llvm.add %0, %arg19 : i19 + "llvm.return"(%1) : (i19) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + + +def test6_before := [llvm| +{ +^0(%arg17 : i57, %arg18 : i57): + %0 = llvm.and %arg17, %arg18 : i57 + %1 = llvm.sub %arg17, %0 : i57 + "llvm.return"(%1) : (i57) -> () +} +] +def test6_after := [llvm| +{ +^0(%arg17 : i57, %arg18 : i57): + %0 = "llvm.mlir.constant"() <{value = -1 : i57}> : () -> i57 + %1 = llvm.xor %arg18, %0 : i57 + %2 = llvm.and %arg17, %1 : i57 + "llvm.return"(%2) : (i57) -> () +} +] +theorem test6_proof : test6_before ⊑ test6_after := by + unfold test6_before test6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6 + apply test6_thm + ---END test6 + + + +def test7_before := [llvm| +{ +^0(%arg16 : i77): + %0 = "llvm.mlir.constant"() <{value = -1 : i77}> : () -> i77 + %1 = llvm.sub %0, %arg16 : i77 + "llvm.return"(%1) : (i77) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg16 : i77): + %0 = "llvm.mlir.constant"() <{value = -1 : i77}> : () -> i77 + %1 = llvm.xor %arg16, %0 : i77 + "llvm.return"(%1) : (i77) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + + +def test8_before := [llvm| +{ +^0(%arg15 : i27): + %0 = "llvm.mlir.constant"() <{value = 9 : i27}> : () -> i27 + %1 = llvm.mul %0, %arg15 : i27 + %2 = llvm.sub %1, %arg15 : i27 + "llvm.return"(%2) : (i27) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg15 : i27): + %0 = "llvm.mlir.constant"() <{value = 3 : i27}> : () -> i27 + %1 = llvm.shl %arg15, %0 : i27 + "llvm.return"(%1) : (i27) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test8 + apply test8_thm + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg14 : i42): + %0 = "llvm.mlir.constant"() <{value = 3 : i42}> : () -> i42 + %1 = llvm.mul %0, %arg14 : i42 + %2 = llvm.sub %arg14, %1 : i42 + "llvm.return"(%2) : (i42) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg14 : i42): + %0 = "llvm.mlir.constant"() <{value = -2 : i42}> : () -> i42 + %1 = llvm.mul %arg14, %0 : i42 + "llvm.return"(%1) : (i42) -> () +} +] +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 test12_before := [llvm| +{ +^0(%arg11 : i43): + %0 = "llvm.mlir.constant"() <{value = 42 : i43}> : () -> i43 + %1 = "llvm.mlir.constant"() <{value = 0 : i43}> : () -> i43 + %2 = llvm.ashr %arg11, %0 : i43 + %3 = llvm.sub %1, %2 : i43 + "llvm.return"(%3) : (i43) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg11 : i43): + %0 = "llvm.mlir.constant"() <{value = 42 : i43}> : () -> i43 + %1 = llvm.lshr %arg11, %0 : i43 + "llvm.return"(%1) : (i43) -> () +} +] +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(%arg10 : i79): + %0 = "llvm.mlir.constant"() <{value = 78 : i79}> : () -> i79 + %1 = "llvm.mlir.constant"() <{value = 0 : i79}> : () -> i79 + %2 = llvm.lshr %arg10, %0 : i79 + %3 = llvm.sub %1, %2 : i79 + "llvm.return"(%3) : (i79) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg10 : i79): + %0 = "llvm.mlir.constant"() <{value = 78 : i79}> : () -> i79 + %1 = llvm.ashr %arg10, %0 : i79 + "llvm.return"(%1) : (i79) -> () +} +] +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 test16_before := [llvm| +{ +^0(%arg8 : i51): + %0 = "llvm.mlir.constant"() <{value = 1123 : i51}> : () -> i51 + %1 = "llvm.mlir.constant"() <{value = 0 : i51}> : () -> i51 + %2 = llvm.sdiv %arg8, %0 : i51 + %3 = llvm.sub %1, %2 : i51 + "llvm.return"(%3) : (i51) -> () +} +] +def test16_after := [llvm| +{ +^0(%arg8 : i51): + %0 = "llvm.mlir.constant"() <{value = -1123 : i51}> : () -> i51 + %1 = llvm.sdiv %arg8, %0 : i51 + "llvm.return"(%1) : (i51) -> () +} +] +theorem test16_proof : test16_before ⊑ test16_after := by + unfold test16_before test16_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test16 + apply test16_thm + ---END test16 + + + +def test18_before := [llvm| +{ +^0(%arg6 : i128): + %0 = "llvm.mlir.constant"() <{value = 2 : i128}> : () -> i128 + %1 = llvm.shl %arg6, %0 : i128 + %2 = llvm.shl %arg6, %0 : i128 + %3 = llvm.sub %1, %2 : i128 + "llvm.return"(%3) : (i128) -> () +} +] +def test18_after := [llvm| +{ +^0(%arg6 : i128): + %0 = "llvm.mlir.constant"() <{value = 0 : i128}> : () -> i128 + "llvm.return"(%0) : (i128) -> () +} +] +theorem test18_proof : test18_before ⊑ test18_after := by + unfold test18_before test18_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test18 + all_goals (try extract_goal ; sorry) + ---END test18 + + + +def test19_before := [llvm| +{ +^0(%arg4 : i39, %arg5 : i39): + %0 = llvm.sub %arg4, %arg5 : i39 + %1 = llvm.add %0, %arg5 : i39 + "llvm.return"(%1) : (i39) -> () +} +] +def test19_after := [llvm| +{ +^0(%arg4 : i39, %arg5 : i39): + "llvm.return"(%arg4) : (i39) -> () +} +] +theorem test19_proof : test19_before ⊑ test19_after := by + unfold test19_before test19_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19 + all_goals (try extract_goal ; sorry) + ---END test19 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthsub_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthsub_proof.lean new file mode 100644 index 000000000..b43b5c054 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthsub_proof.lean @@ -0,0 +1,22 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthsub_proof +theorem test5_thm (x x_1 x_2 : BitVec 19) : x_2 - (x_1 - x) = x - x_1 + x_2 := sorry + +theorem test6_thm (x x_1 : BitVec 57) : x_1 - (x_1 &&& x) = x_1 &&& (x ^^^ 144115188075855871#57) := sorry + +theorem test7_thm (x : BitVec 77) : 151115727451828646838271#77 - x = x ^^^ 151115727451828646838271#77 := sorry + +theorem test8_thm (x : BitVec 27) : 9#27 * x - x = x <<< 3 := sorry + +theorem test9_thm (x : BitVec 42) : x - 3#42 * x = x * 4398046511102#42 := sorry + +theorem test12_thm (x : BitVec 43) : -x.sshiftRight 42 = x >>> 42 := sorry + +theorem test13_thm (x : BitVec 79) : -x >>> 78 = x.sshiftRight 78 := sorry + +theorem test16_thm (x : BitVec 51) : -x.sdiv 1123#51 = x.sdiv 2251799813684125#51 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthxor1.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthxor1.lean new file mode 100644 index 000000000..d578be5ea --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthxor1.lean @@ -0,0 +1,237 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthxor1_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 gapinthxor1_statements + +def test1_before := [llvm| +{ +^0(%arg6 : i47, %arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = -70368744177664 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 70368744177661 : i47}> : () -> i47 + %2 = llvm.and %arg6, %0 : i47 + %3 = llvm.and %arg7, %1 : i47 + %4 = llvm.xor %2, %3 : i47 + "llvm.return"(%4) : (i47) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg6 : i47, %arg7 : i47): + %0 = "llvm.mlir.constant"() <{value = -70368744177664 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 70368744177661 : i47}> : () -> i47 + %2 = llvm.and %arg6, %0 : i47 + %3 = llvm.and %arg7, %1 : i47 + %4 = llvm.or %2, %3 : i47 + "llvm.return"(%4) : (i47) -> () +} +] +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(%arg5 : i15): + %0 = "llvm.mlir.constant"() <{value = 0 : i15}> : () -> i15 + %1 = llvm.xor %arg5, %0 : i15 + "llvm.return"(%1) : (i15) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg5 : i15): + "llvm.return"(%arg5) : (i15) -> () +} +] +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(%arg4 : i23): + %0 = llvm.xor %arg4, %arg4 : i23 + "llvm.return"(%0) : (i23) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg4 : i23): + %0 = "llvm.mlir.constant"() <{value = 0 : i23}> : () -> i23 + "llvm.return"(%0) : (i23) -> () +} +] +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 + + + +def test4_before := [llvm| +{ +^0(%arg3 : i37): + %0 = "llvm.mlir.constant"() <{value = -1 : i37}> : () -> i37 + %1 = llvm.xor %0, %arg3 : i37 + %2 = llvm.xor %arg3, %1 : i37 + "llvm.return"(%2) : (i37) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg3 : i37): + %0 = "llvm.mlir.constant"() <{value = -1 : i37}> : () -> i37 + "llvm.return"(%0) : (i37) -> () +} +] +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 test5_before := [llvm| +{ +^0(%arg2 : i7): + %0 = "llvm.mlir.constant"() <{value = 23 : i7}> : () -> i7 + %1 = llvm.or %arg2, %0 : i7 + %2 = llvm.xor %1, %0 : i7 + "llvm.return"(%2) : (i7) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg2 : i7): + %0 = "llvm.mlir.constant"() <{value = -24 : i7}> : () -> i7 + %1 = llvm.and %arg2, %0 : i7 + "llvm.return"(%1) : (i7) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + + +def test6_before := [llvm| +{ +^0(%arg1 : i7): + %0 = "llvm.mlir.constant"() <{value = 23 : i7}> : () -> i7 + %1 = llvm.xor %arg1, %0 : i7 + %2 = llvm.xor %1, %0 : i7 + "llvm.return"(%2) : (i7) -> () +} +] +def test6_after := [llvm| +{ +^0(%arg1 : i7): + "llvm.return"(%arg1) : (i7) -> () +} +] +theorem test6_proof : test6_before ⊑ test6_after := by + unfold test6_before test6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6 + apply test6_thm + ---END test6 + + + +def test7_before := [llvm| +{ +^0(%arg0 : i47): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 703687463 : i47}> : () -> i47 + %2 = llvm.or %arg0, %0 : i47 + %3 = llvm.xor %2, %1 : i47 + "llvm.return"(%3) : (i47) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg0 : i47): + %0 = "llvm.mlir.constant"() <{value = -70368744177664 : i47}> : () -> i47 + %1 = "llvm.mlir.constant"() <{value = 70368040490200 : i47}> : () -> i47 + %2 = llvm.and %arg0, %0 : i47 + %3 = llvm.or %2, %1 : i47 + "llvm.return"(%3) : (i47) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthxor1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthxor1_proof.lean new file mode 100644 index 000000000..9a4cd415f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthxor1_proof.lean @@ -0,0 +1,18 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthxor1_proof +theorem test1_thm (x x_1 : BitVec 47) : + x_1 &&& 70368744177664#47 ^^^ x &&& 70368744177661#47 = x_1 &&& 70368744177664#47 ||| x &&& 70368744177661#47 := sorry + +theorem test4_thm (x : BitVec 37) : x ^^^ (137438953471#37 ^^^ x) = 137438953471#37 := sorry + +theorem test5_thm (x : BitVec 7) : (x ||| 23#7) ^^^ 23#7 = x &&& 104#7 := sorry + +theorem test6_thm (x : BitVec 7) : x ^^^ 23#7 ^^^ 23#7 = x := sorry + +theorem test7_thm (x : BitVec 47) : + (x ||| 70368744177663#47) ^^^ 703687463#47 = x &&& 70368744177664#47 ||| 70368040490200#47 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthxor2.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthxor2.lean new file mode 100644 index 000000000..3191fe1fd --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthxor2.lean @@ -0,0 +1,237 @@ +import SSA.Projects.InstCombine.tests.proofs.gapinthxor2_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 gapinthxor2_statements + +def test1_before := [llvm| +{ +^0(%arg6 : i447, %arg7 : i447): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i447}> : () -> i447 + %1 = "llvm.mlir.constant"() <{value = 70368744177663 : i447}> : () -> i447 + %2 = llvm.and %arg6, %0 : i447 + %3 = llvm.and %arg7, %1 : i447 + %4 = llvm.xor %2, %3 : i447 + "llvm.return"(%4) : (i447) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg6 : i447, %arg7 : i447): + %0 = "llvm.mlir.constant"() <{value = 70368744177664 : i447}> : () -> i447 + %1 = "llvm.mlir.constant"() <{value = 70368744177663 : i447}> : () -> i447 + %2 = llvm.and %arg6, %0 : i447 + %3 = llvm.and %arg7, %1 : i447 + %4 = llvm.or %2, %3 : i447 + "llvm.return"(%4) : (i447) -> () +} +] +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(%arg5 : i1005): + %0 = "llvm.mlir.constant"() <{value = 0 : i1005}> : () -> i1005 + %1 = llvm.xor %arg5, %0 : i1005 + "llvm.return"(%1) : (i1005) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg5 : i1005): + "llvm.return"(%arg5) : (i1005) -> () +} +] +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(%arg4 : i123): + %0 = llvm.xor %arg4, %arg4 : i123 + "llvm.return"(%0) : (i123) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg4 : i123): + %0 = "llvm.mlir.constant"() <{value = 0 : i123}> : () -> i123 + "llvm.return"(%0) : (i123) -> () +} +] +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 + + + +def test4_before := [llvm| +{ +^0(%arg3 : i737): + %0 = "llvm.mlir.constant"() <{value = -1 : i737}> : () -> i737 + %1 = llvm.xor %0, %arg3 : i737 + %2 = llvm.xor %arg3, %1 : i737 + "llvm.return"(%2) : (i737) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg3 : i737): + %0 = "llvm.mlir.constant"() <{value = -1 : i737}> : () -> i737 + "llvm.return"(%0) : (i737) -> () +} +] +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 test5_before := [llvm| +{ +^0(%arg2 : i700): + %0 = "llvm.mlir.constant"() <{value = 288230376151711743 : i700}> : () -> i700 + %1 = llvm.or %arg2, %0 : i700 + %2 = llvm.xor %1, %0 : i700 + "llvm.return"(%2) : (i700) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg2 : i700): + %0 = "llvm.mlir.constant"() <{value = -288230376151711744 : i700}> : () -> i700 + %1 = llvm.and %arg2, %0 : i700 + "llvm.return"(%1) : (i700) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + + +def test6_before := [llvm| +{ +^0(%arg1 : i77): + %0 = "llvm.mlir.constant"() <{value = 23 : i77}> : () -> i77 + %1 = llvm.xor %arg1, %0 : i77 + %2 = llvm.xor %1, %0 : i77 + "llvm.return"(%2) : (i77) -> () +} +] +def test6_after := [llvm| +{ +^0(%arg1 : i77): + "llvm.return"(%arg1) : (i77) -> () +} +] +theorem test6_proof : test6_before ⊑ test6_after := by + unfold test6_before test6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test6 + apply test6_thm + ---END test6 + + + +def test7_before := [llvm| +{ +^0(%arg0 : i1023): + %0 = "llvm.mlir.constant"() <{value = 70368744177663 : i1023}> : () -> i1023 + %1 = "llvm.mlir.constant"() <{value = 703687463 : i1023}> : () -> i1023 + %2 = llvm.or %arg0, %0 : i1023 + %3 = llvm.xor %2, %1 : i1023 + "llvm.return"(%3) : (i1023) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg0 : i1023): + %0 = "llvm.mlir.constant"() <{value = -70368744177664 : i1023}> : () -> i1023 + %1 = "llvm.mlir.constant"() <{value = 70368040490200 : i1023}> : () -> i1023 + %2 = llvm.and %arg0, %0 : i1023 + %3 = llvm.or %2, %1 : i1023 + "llvm.return"(%3) : (i1023) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gapinthxor2_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gapinthxor2_proof.lean new file mode 100644 index 000000000..364d62cc8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gapinthxor2_proof.lean @@ -0,0 +1,29 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gapinthxor2_proof +theorem test1_thm (x x_1 : BitVec 447) : + x_1 &&& 70368744177664#447 ^^^ x &&& 70368744177663#447 = + x_1 &&& 70368744177664#447 ||| x &&& 70368744177663#447 := sorry + +theorem test4_thm (x : BitVec 737) : + x ^^^ + (722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137471#737 ^^^ + x) = + 722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137471#737 := sorry + +theorem test5_thm (x : BitVec 700) : + (x ||| 288230376151711743#700) ^^^ 288230376151711743#700 = + x &&& + 5260135901548373507240989882880128665550339802823173859498280903068732154297080822113666536277588451226982968856178217713019432250183803863127814770651880849955223671128444598191663757884322716983062875584069632#700 := sorry + +theorem test6_thm (x : BitVec 77) : x ^^^ 23#77 ^^^ 23#77 = x := sorry + +theorem test7_thm (x : BitVec 1023) : + (x ||| 70368744177663#1023) ^^^ 703687463#1023 = + x &&& + 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678094443367890944#1023 ||| + 70368040490200#1023 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gashrhdemand.lean b/SSA/Projects/InstCombine/tests/proofs/gashrhdemand.lean new file mode 100644 index 000000000..6e90a56d3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gashrhdemand.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.gashrhdemand_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 gashrhdemand_statements + +def srem2_ashr_mask_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 31 : i32}> : () -> i32 + %2 = llvm.srem %arg6, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + %4 = llvm.and %3, %0 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def srem2_ashr_mask_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = llvm.srem %arg6, %0 : i32 + %2 = llvm.and %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem srem2_ashr_mask_proof : srem2_ashr_mask_before ⊑ srem2_ashr_mask_after := by + unfold srem2_ashr_mask_before srem2_ashr_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN srem2_ashr_mask + apply srem2_ashr_mask_thm + ---END srem2_ashr_mask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gashrhdemand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gashrhdemand_proof.lean new file mode 100644 index 000000000..813743337 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gashrhdemand_proof.lean @@ -0,0 +1,9 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gashrhdemand_proof +theorem srem2_ashr_mask_thm (x : BitVec 32) : + (x - x.sdiv 2#32 * 2#32).sshiftRight 31 &&& 2#32 = x - x.sdiv 2#32 * 2#32 &&& 2#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean index 56478234f..a7b0d035f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gashrhlshr.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gashrhlshr_statements - + def ashr_known_pos_exact_before := [llvm| { ^0(%arg35 : i8, %arg36 : i8): @@ -38,7 +38,7 @@ theorem ashr_known_pos_exact_proof : ashr_known_pos_exact_before ⊑ ashr_known_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_known_pos_exact apply ashr_known_pos_exact_thm @@ -72,7 +72,7 @@ theorem lshr_mul_times_3_div_2_proof : lshr_mul_times_3_div_2_before ⊑ lshr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2 apply lshr_mul_times_3_div_2_thm @@ -106,7 +106,7 @@ theorem lshr_mul_times_3_div_2_exact_proof : lshr_mul_times_3_div_2_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2_exact apply lshr_mul_times_3_div_2_exact_thm @@ -140,7 +140,7 @@ theorem lshr_mul_times_3_div_2_exact_2_proof : lshr_mul_times_3_div_2_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_3_div_2_exact_2 apply lshr_mul_times_3_div_2_exact_2_thm @@ -174,7 +174,7 @@ theorem lshr_mul_times_5_div_4_proof : lshr_mul_times_5_div_4_before ⊑ lshr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4 apply lshr_mul_times_5_div_4_thm @@ -208,7 +208,7 @@ theorem lshr_mul_times_5_div_4_exact_proof : lshr_mul_times_5_div_4_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4_exact apply lshr_mul_times_5_div_4_exact_thm @@ -242,7 +242,7 @@ theorem lshr_mul_times_5_div_4_exact_2_proof : lshr_mul_times_5_div_4_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_mul_times_5_div_4_exact_2 apply lshr_mul_times_5_div_4_exact_2_thm @@ -276,7 +276,7 @@ theorem ashr_mul_times_3_div_2_proof : ashr_mul_times_3_div_2_before ⊑ ashr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2 apply ashr_mul_times_3_div_2_thm @@ -310,7 +310,7 @@ theorem ashr_mul_times_3_div_2_exact_proof : ashr_mul_times_3_div_2_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2_exact apply ashr_mul_times_3_div_2_exact_thm @@ -344,7 +344,7 @@ theorem ashr_mul_times_3_div_2_exact_2_proof : ashr_mul_times_3_div_2_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_3_div_2_exact_2 apply ashr_mul_times_3_div_2_exact_2_thm @@ -378,7 +378,7 @@ theorem ashr_mul_times_5_div_4_proof : ashr_mul_times_5_div_4_before ⊑ ashr_mu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4 apply ashr_mul_times_5_div_4_thm @@ -412,7 +412,7 @@ theorem ashr_mul_times_5_div_4_exact_proof : ashr_mul_times_5_div_4_exact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4_exact apply ashr_mul_times_5_div_4_exact_thm @@ -446,7 +446,7 @@ theorem ashr_mul_times_5_div_4_exact_2_proof : ashr_mul_times_5_div_4_exact_2_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_mul_times_5_div_4_exact_2 apply ashr_mul_times_5_div_4_exact_2_thm @@ -485,7 +485,7 @@ theorem lsb_mask_sign_zext_wrong_cst2_proof : lsb_mask_sign_zext_wrong_cst2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lsb_mask_sign_zext_wrong_cst2 apply lsb_mask_sign_zext_wrong_cst2_thm @@ -524,7 +524,7 @@ theorem lsb_mask_sign_sext_wrong_cst2_proof : lsb_mask_sign_sext_wrong_cst2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lsb_mask_sign_sext_wrong_cst2 apply lsb_mask_sign_sext_wrong_cst2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean b/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean index 1ea61e0db..a81f17a07 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gavghlsb.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gavghlsb_statements - + def avg_lsb_before := [llvm| { ^0(%arg4 : i8, %arg5 : i8): @@ -40,7 +40,7 @@ theorem avg_lsb_proof : avg_lsb_before ⊑ avg_lsb_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN avg_lsb apply avg_lsb_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts.lean new file mode 100644 index 000000000..1c82c36f8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts.lean @@ -0,0 +1,1058 @@ +import SSA.Projects.InstCombine.tests.proofs.gbinophandhshifts_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 gbinophandhshifts_statements + +def shl_and_and_before := [llvm| +{ +^0(%arg172 : i8, %arg173 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 88 : i8}> : () -> i8 + %2 = llvm.shl %arg172, %0 : i8 + %3 = llvm.shl %arg173, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.and %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_and_and_after := [llvm| +{ +^0(%arg172 : i8, %arg173 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 80 : i8}> : () -> i8 + %2 = llvm.and %arg173, %arg172 : i8 + %3 = llvm.shl %2, %0 : i8 + %4 = llvm.and %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_and_and_proof : shl_and_and_before ⊑ shl_and_and_after := by + unfold shl_and_and_before shl_and_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_and_and + apply shl_and_and_thm + ---END shl_and_and + + + +def shl_and_and_fail_before := [llvm| +{ +^0(%arg170 : i8, %arg171 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 88 : i8}> : () -> i8 + %3 = llvm.shl %arg170, %0 : i8 + %4 = llvm.shl %arg171, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.and %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def shl_and_and_fail_after := [llvm| +{ +^0(%arg170 : i8, %arg171 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %3 = llvm.shl %arg170, %0 : i8 + %4 = llvm.shl %arg171, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.and %3, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem shl_and_and_fail_proof : shl_and_and_fail_before ⊑ shl_and_and_fail_after := by + unfold shl_and_and_fail_before shl_and_and_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_and_and_fail + apply shl_and_and_fail_thm + ---END shl_and_and_fail + + + +def shl_add_add_before := [llvm| +{ +^0(%arg168 : i8, %arg169 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.shl %arg168, %0 : i8 + %3 = llvm.shl %arg169, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.add %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_add_add_after := [llvm| +{ +^0(%arg168 : i8, %arg169 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.add %arg169, %arg168 : i8 + %3 = llvm.shl %2, %0 : i8 + %4 = llvm.add %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_add_proof : shl_add_add_before ⊑ shl_add_add_after := by + unfold shl_add_add_before shl_add_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_add + apply shl_add_add_thm + ---END shl_add_add + + + +def shl_add_add_fail_before := [llvm| +{ +^0(%arg166 : i8, %arg167 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.lshr %arg166, %0 : i8 + %3 = llvm.lshr %arg167, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.add %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_add_add_fail_after := [llvm| +{ +^0(%arg166 : i8, %arg167 : i8): + %0 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.lshr %arg166, %0 : i8 + %3 = llvm.lshr %arg167, %0 : i8 + %4 = llvm.add %3, %1 overflow : i8 + %5 = llvm.add %2, %4 overflow : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem shl_add_add_fail_proof : shl_add_add_fail_before ⊑ shl_add_add_fail_after := by + unfold shl_add_add_fail_before shl_add_add_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_add_fail + apply shl_add_add_fail_thm + ---END shl_add_add_fail + + + +def shl_and_xor_before := [llvm| +{ +^0(%arg158 : i8, %arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 20 : i8}> : () -> i8 + %2 = llvm.shl %arg158, %0 : i8 + %3 = llvm.shl %arg159, %0 : i8 + %4 = llvm.and %2, %1 : i8 + %5 = llvm.xor %3, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_and_xor_after := [llvm| +{ +^0(%arg158 : i8, %arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = 10 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.and %arg158, %0 : i8 + %3 = llvm.xor %arg159, %2 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_and_xor_proof : shl_and_xor_before ⊑ shl_and_xor_after := by + unfold shl_and_xor_before shl_and_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_and_xor + apply shl_and_xor_thm + ---END shl_and_xor + + + +def shl_and_add_before := [llvm| +{ +^0(%arg156 : i8, %arg157 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 119 : i8}> : () -> i8 + %2 = llvm.shl %arg156, %0 : i8 + %3 = llvm.shl %arg157, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.add %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_and_add_after := [llvm| +{ +^0(%arg156 : i8, %arg157 : i8): + %0 = "llvm.mlir.constant"() <{value = 59 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.and %arg157, %0 : i8 + %3 = llvm.add %arg156, %2 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_and_add_proof : shl_and_add_before ⊑ shl_and_add_after := by + unfold shl_and_add_before shl_and_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_and_add + apply shl_and_add_thm + ---END shl_and_add + + + +def lshr_or_and_before := [llvm| +{ +^0(%arg152 : i8, %arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -58 : i8}> : () -> i8 + %2 = llvm.lshr %arg152, %0 : i8 + %3 = llvm.lshr %arg153, %0 : i8 + %4 = llvm.or %2, %1 : i8 + %5 = llvm.and %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_or_and_after := [llvm| +{ +^0(%arg152 : i8, %arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.or %arg152, %0 : i8 + %3 = llvm.and %arg153, %2 : i8 + %4 = llvm.lshr %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem lshr_or_and_proof : lshr_or_and_before ⊑ lshr_or_and_after := by + unfold lshr_or_and_before lshr_or_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_or_and + apply lshr_or_and_thm + ---END lshr_or_and + + + +def lshr_or_or_fail_before := [llvm| +{ +^0(%arg150 : i8, %arg151 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -58 : i8}> : () -> i8 + %2 = llvm.lshr %arg150, %0 : i8 + %3 = llvm.lshr %arg151, %0 : i8 + %4 = llvm.or %3, %1 : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_or_or_fail_after := [llvm| +{ +^0(%arg150 : i8, %arg151 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -58 : i8}> : () -> i8 + %2 = llvm.or %arg151, %arg150 : i8 + %3 = llvm.lshr %2, %0 : i8 + %4 = llvm.or %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem lshr_or_or_fail_proof : lshr_or_or_fail_before ⊑ lshr_or_or_fail_after := by + unfold lshr_or_or_fail_before lshr_or_or_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_or_or_fail + apply lshr_or_or_fail_thm + ---END lshr_or_or_fail + + + +def lshr_or_or_no_const_before := [llvm| +{ +^0(%arg142 : i8, %arg143 : i8, %arg144 : i8, %arg145 : i8): + %0 = llvm.lshr %arg142, %arg144 : i8 + %1 = llvm.lshr %arg143, %arg144 : i8 + %2 = llvm.or %1, %arg145 : i8 + %3 = llvm.or %0, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def lshr_or_or_no_const_after := [llvm| +{ +^0(%arg142 : i8, %arg143 : i8, %arg144 : i8, %arg145 : i8): + %0 = llvm.or %arg143, %arg142 : i8 + %1 = llvm.lshr %0, %arg144 : i8 + %2 = llvm.or %1, %arg145 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem lshr_or_or_no_const_proof : lshr_or_or_no_const_before ⊑ lshr_or_or_no_const_after := by + unfold lshr_or_or_no_const_before lshr_or_or_no_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_or_or_no_const + apply lshr_or_or_no_const_thm + ---END lshr_or_or_no_const + + + +def shl_xor_xor_no_const_before := [llvm| +{ +^0(%arg134 : i8, %arg135 : i8, %arg136 : i8, %arg137 : i8): + %0 = llvm.shl %arg134, %arg136 : i8 + %1 = llvm.shl %arg135, %arg136 : i8 + %2 = llvm.xor %1, %arg137 : i8 + %3 = llvm.xor %0, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_xor_xor_no_const_after := [llvm| +{ +^0(%arg134 : i8, %arg135 : i8, %arg136 : i8, %arg137 : i8): + %0 = llvm.xor %arg135, %arg134 : i8 + %1 = llvm.shl %0, %arg136 : i8 + %2 = llvm.xor %1, %arg137 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem shl_xor_xor_no_const_proof : shl_xor_xor_no_const_before ⊑ shl_xor_xor_no_const_after := by + unfold shl_xor_xor_no_const_before shl_xor_xor_no_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_xor_xor_no_const + apply shl_xor_xor_no_const_thm + ---END shl_xor_xor_no_const + + + +def shl_add_add_no_const_before := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8, %arg124 : i8, %arg125 : i8): + %0 = llvm.shl %arg122, %arg124 : i8 + %1 = llvm.shl %arg123, %arg124 : i8 + %2 = llvm.add %1, %arg125 : i8 + %3 = llvm.add %0, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def shl_add_add_no_const_after := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8, %arg124 : i8, %arg125 : i8): + %0 = llvm.add %arg123, %arg122 : i8 + %1 = llvm.shl %0, %arg124 : i8 + %2 = llvm.add %1, %arg125 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem shl_add_add_no_const_proof : shl_add_add_no_const_before ⊑ shl_add_add_no_const_after := by + unfold shl_add_add_no_const_before shl_add_add_no_const_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_add_no_const + apply shl_add_add_no_const_thm + ---END shl_add_add_no_const + + + +def lshr_xor_or_good_mask_before := [llvm| +{ +^0(%arg108 : i8, %arg109 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.lshr %arg108, %0 : i8 + %3 = llvm.lshr %arg109, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_xor_or_good_mask_after := [llvm| +{ +^0(%arg108 : i8, %arg109 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 48 : i8}> : () -> i8 + %2 = llvm.or %arg109, %arg108 : i8 + %3 = llvm.lshr %2, %0 : i8 + %4 = llvm.or %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem lshr_xor_or_good_mask_proof : lshr_xor_or_good_mask_before ⊑ lshr_xor_or_good_mask_after := by + unfold lshr_xor_or_good_mask_before lshr_xor_or_good_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_xor_or_good_mask + apply lshr_xor_or_good_mask_thm + ---END lshr_xor_or_good_mask + + + +def shl_xor_xor_good_mask_before := [llvm| +{ +^0(%arg100 : i8, %arg101 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 88 : i8}> : () -> i8 + %2 = llvm.shl %arg100, %0 : i8 + %3 = llvm.shl %arg101, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.xor %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_xor_xor_good_mask_after := [llvm| +{ +^0(%arg100 : i8, %arg101 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 88 : i8}> : () -> i8 + %2 = llvm.xor %arg101, %arg100 : i8 + %3 = llvm.shl %2, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_xor_xor_good_mask_proof : shl_xor_xor_good_mask_before ⊑ shl_xor_xor_good_mask_after := by + unfold shl_xor_xor_good_mask_before shl_xor_xor_good_mask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_xor_xor_good_mask + apply shl_xor_xor_good_mask_thm + ---END shl_xor_xor_good_mask + + + +def shl_xor_xor_bad_mask_distribute_before := [llvm| +{ +^0(%arg98 : i8, %arg99 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -68 : i8}> : () -> i8 + %2 = llvm.shl %arg98, %0 : i8 + %3 = llvm.shl %arg99, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.xor %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_xor_xor_bad_mask_distribute_after := [llvm| +{ +^0(%arg98 : i8, %arg99 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -68 : i8}> : () -> i8 + %2 = llvm.xor %arg99, %arg98 : i8 + %3 = llvm.shl %2, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_xor_xor_bad_mask_distribute_proof : shl_xor_xor_bad_mask_distribute_before ⊑ shl_xor_xor_bad_mask_distribute_after := by + unfold shl_xor_xor_bad_mask_distribute_before shl_xor_xor_bad_mask_distribute_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_xor_xor_bad_mask_distribute + apply shl_xor_xor_bad_mask_distribute_thm + ---END shl_xor_xor_bad_mask_distribute + + + +def shl_add_and_before := [llvm| +{ +^0(%arg96 : i8, %arg97 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.shl %arg96, %0 : i8 + %3 = llvm.shl %arg97, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.and %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_add_and_after := [llvm| +{ +^0(%arg96 : i8, %arg97 : i8): + %0 = "llvm.mlir.constant"() <{value = 61 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = llvm.add %arg97, %0 : i8 + %3 = llvm.and %arg96, %2 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_and_proof : shl_add_and_before ⊑ shl_add_and_after := by + unfold shl_add_and_before shl_add_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_and + apply shl_add_and_thm + ---END shl_add_and + + + +def lshr_and_add_fail_before := [llvm| +{ +^0(%arg94 : i8, %arg95 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg94, %0 : i8 + %3 = llvm.lshr %arg95, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.add %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_and_add_fail_after := [llvm| +{ +^0(%arg94 : i8, %arg95 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg94, %0 : i8 + %3 = llvm.lshr %arg95, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.add %2, %4 overflow : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem lshr_and_add_fail_proof : lshr_and_add_fail_before ⊑ lshr_and_add_fail_after := by + unfold lshr_and_add_fail_before lshr_and_add_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_add_fail + apply lshr_and_add_fail_thm + ---END lshr_and_add_fail + + + +def lshr_add_or_fail_before := [llvm| +{ +^0(%arg92 : i8, %arg93 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg92, %0 : i8 + %3 = llvm.lshr %arg93, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_add_or_fail_after := [llvm| +{ +^0(%arg92 : i8, %arg93 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg92, %0 : i8 + %3 = llvm.lshr %arg93, %0 : i8 + %4 = llvm.add %3, %1 overflow : i8 + %5 = llvm.or %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem lshr_add_or_fail_proof : lshr_add_or_fail_before ⊑ lshr_add_or_fail_after := by + unfold lshr_add_or_fail_before lshr_add_or_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_add_or_fail + apply lshr_add_or_fail_thm + ---END lshr_add_or_fail + + + +def lshr_add_xor_fail_before := [llvm| +{ +^0(%arg90 : i8, %arg91 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg90, %0 : i8 + %3 = llvm.lshr %arg91, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.xor %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_add_xor_fail_after := [llvm| +{ +^0(%arg90 : i8, %arg91 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.lshr %arg90, %0 : i8 + %3 = llvm.lshr %arg91, %0 : i8 + %4 = llvm.add %3, %1 overflow : i8 + %5 = llvm.xor %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem lshr_add_xor_fail_proof : lshr_add_xor_fail_before ⊑ lshr_add_xor_fail_after := by + unfold lshr_add_xor_fail_before lshr_add_xor_fail_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_add_xor_fail + apply lshr_add_xor_fail_thm + ---END lshr_add_xor_fail + + + +def shl_add_and_fail_mismatch_shift_before := [llvm| +{ +^0(%arg84 : i8, %arg85 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.shl %arg84, %0 : i8 + %3 = llvm.lshr %arg85, %0 : i8 + %4 = llvm.add %3, %1 : i8 + %5 = llvm.and %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def shl_add_and_fail_mismatch_shift_after := [llvm| +{ +^0(%arg84 : i8, %arg85 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 123 : i8}> : () -> i8 + %2 = llvm.shl %arg84, %0 : i8 + %3 = llvm.lshr %arg85, %0 : i8 + %4 = llvm.add %3, %1 overflow : i8 + %5 = llvm.and %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem shl_add_and_fail_mismatch_shift_proof : shl_add_and_fail_mismatch_shift_before ⊑ shl_add_and_fail_mismatch_shift_after := by + unfold shl_add_and_fail_mismatch_shift_before shl_add_and_fail_mismatch_shift_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_and_fail_mismatch_shift + apply shl_add_and_fail_mismatch_shift_thm + ---END shl_add_and_fail_mismatch_shift + + + +def and_ashr_not_before := [llvm| +{ +^0(%arg81 : i8, %arg82 : i8, %arg83 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg81, %arg83 : i8 + %2 = llvm.ashr %arg82, %arg83 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.and %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def and_ashr_not_after := [llvm| +{ +^0(%arg81 : i8, %arg82 : i8, %arg83 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg82, %0 : i8 + %2 = llvm.and %arg81, %1 : i8 + %3 = llvm.ashr %2, %arg83 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem and_ashr_not_proof : and_ashr_not_before ⊑ and_ashr_not_after := by + unfold and_ashr_not_before and_ashr_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_ashr_not + apply and_ashr_not_thm + ---END and_ashr_not + + + +def and_ashr_not_commuted_before := [llvm| +{ +^0(%arg78 : i8, %arg79 : i8, %arg80 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg78, %arg80 : i8 + %2 = llvm.ashr %arg79, %arg80 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.and %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def and_ashr_not_commuted_after := [llvm| +{ +^0(%arg78 : i8, %arg79 : i8, %arg80 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg79, %0 : i8 + %2 = llvm.and %arg78, %1 : i8 + %3 = llvm.ashr %2, %arg80 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem and_ashr_not_commuted_proof : and_ashr_not_commuted_before ⊑ and_ashr_not_commuted_after := by + unfold and_ashr_not_commuted_before and_ashr_not_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_ashr_not_commuted + apply and_ashr_not_commuted_thm + ---END and_ashr_not_commuted + + + +def or_ashr_not_before := [llvm| +{ +^0(%arg54 : i8, %arg55 : i8, %arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg54, %arg56 : i8 + %2 = llvm.ashr %arg55, %arg56 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.or %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def or_ashr_not_after := [llvm| +{ +^0(%arg54 : i8, %arg55 : i8, %arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg55, %0 : i8 + %2 = llvm.or %arg54, %1 : i8 + %3 = llvm.ashr %2, %arg56 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem or_ashr_not_proof : or_ashr_not_before ⊑ or_ashr_not_after := by + unfold or_ashr_not_before or_ashr_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_ashr_not + apply or_ashr_not_thm + ---END or_ashr_not + + + +def or_ashr_not_commuted_before := [llvm| +{ +^0(%arg51 : i8, %arg52 : i8, %arg53 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg51, %arg53 : i8 + %2 = llvm.ashr %arg52, %arg53 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.or %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def or_ashr_not_commuted_after := [llvm| +{ +^0(%arg51 : i8, %arg52 : i8, %arg53 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg52, %0 : i8 + %2 = llvm.or %arg51, %1 : i8 + %3 = llvm.ashr %2, %arg53 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem or_ashr_not_commuted_proof : or_ashr_not_commuted_before ⊑ or_ashr_not_commuted_after := by + unfold or_ashr_not_commuted_before or_ashr_not_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_ashr_not_commuted + apply or_ashr_not_commuted_thm + ---END or_ashr_not_commuted + + + +def xor_ashr_not_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8, %arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg27, %arg29 : i8 + %2 = llvm.ashr %arg28, %arg29 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_ashr_not_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8, %arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg28, %arg27 : i8 + %2 = llvm.ashr %1, %arg29 : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_ashr_not_proof : xor_ashr_not_before ⊑ xor_ashr_not_after := by + unfold xor_ashr_not_before xor_ashr_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_ashr_not + apply xor_ashr_not_thm + ---END xor_ashr_not + + + +def xor_ashr_not_commuted_before := [llvm| +{ +^0(%arg24 : i8, %arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg24, %arg26 : i8 + %2 = llvm.ashr %arg25, %arg26 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_ashr_not_commuted_after := [llvm| +{ +^0(%arg24 : i8, %arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg25, %arg24 : i8 + %2 = llvm.ashr %1, %arg26 : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_ashr_not_commuted_proof : xor_ashr_not_commuted_before ⊑ xor_ashr_not_commuted_after := by + unfold xor_ashr_not_commuted_before xor_ashr_not_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_ashr_not_commuted + apply xor_ashr_not_commuted_thm + ---END xor_ashr_not_commuted + + + +def xor_ashr_not_fail_lshr_ashr_before := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8, %arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.lshr %arg21, %arg23 : i8 + %2 = llvm.ashr %arg22, %arg23 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_ashr_not_fail_lshr_ashr_after := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8, %arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.lshr %arg21, %arg23 : i8 + %2 = llvm.ashr %arg22, %arg23 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.xor %3, %0 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem xor_ashr_not_fail_lshr_ashr_proof : xor_ashr_not_fail_lshr_ashr_before ⊑ xor_ashr_not_fail_lshr_ashr_after := by + unfold xor_ashr_not_fail_lshr_ashr_before xor_ashr_not_fail_lshr_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_ashr_not_fail_lshr_ashr + apply xor_ashr_not_fail_lshr_ashr_thm + ---END xor_ashr_not_fail_lshr_ashr + + + +def xor_ashr_not_fail_ashr_lshr_before := [llvm| +{ +^0(%arg18 : i8, %arg19 : i8, %arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg18, %arg20 : i8 + %2 = llvm.lshr %arg19, %arg20 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_ashr_not_fail_ashr_lshr_after := [llvm| +{ +^0(%arg18 : i8, %arg19 : i8, %arg20 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.ashr %arg18, %arg20 : i8 + %2 = llvm.lshr %arg19, %arg20 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.xor %3, %0 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem xor_ashr_not_fail_ashr_lshr_proof : xor_ashr_not_fail_ashr_lshr_before ⊑ xor_ashr_not_fail_ashr_lshr_after := by + unfold xor_ashr_not_fail_ashr_lshr_before xor_ashr_not_fail_ashr_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_ashr_not_fail_ashr_lshr + apply xor_ashr_not_fail_ashr_lshr_thm + ---END xor_ashr_not_fail_ashr_lshr + + + +def xor_ashr_not_fail_invalid_xor_constant_before := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -2 : i8}> : () -> i8 + %1 = llvm.ashr %arg15, %arg17 : i8 + %2 = llvm.ashr %arg16, %arg17 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.xor %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_ashr_not_fail_invalid_xor_constant_after := [llvm| +{ +^0(%arg15 : i8, %arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -2 : i8}> : () -> i8 + %1 = llvm.xor %arg16, %arg15 : i8 + %2 = llvm.ashr %1, %arg17 : i8 + %3 = llvm.xor %2, %0 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_ashr_not_fail_invalid_xor_constant_proof : xor_ashr_not_fail_invalid_xor_constant_before ⊑ xor_ashr_not_fail_invalid_xor_constant_after := by + unfold xor_ashr_not_fail_invalid_xor_constant_before xor_ashr_not_fail_invalid_xor_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_ashr_not_fail_invalid_xor_constant + apply xor_ashr_not_fail_invalid_xor_constant_thm + ---END xor_ashr_not_fail_invalid_xor_constant + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts_proof.lean new file mode 100644 index 000000000..d033425c6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophandhshifts_proof.lean @@ -0,0 +1,121 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gbinophandhshifts_proof +theorem shl_and_and_thm (x x_1 : BitVec 8) : x_1 <<< 4 &&& (x <<< 4 &&& 88#8) = (x &&& x_1) <<< 4 &&& 80#8 := sorry + +theorem shl_and_and_fail_thm (x x_1 : BitVec 8) : x_1 <<< 4 &&& (x <<< 5 &&& 88#8) = x_1 <<< 4 &&& (x <<< 5 &&& 64#8) := sorry + +theorem shl_add_add_thm (x x_1 : BitVec 8) : x_1 <<< 2 + (x <<< 2 + 48#8) = x <<< 2 + x_1 <<< 2 + 48#8 := sorry + +theorem shl_add_add_fail_thm (x x_1 : BitVec 8) : + some (x_1 >>> 2 + (x >>> 2 + 48#8)) ⊑ + (if (48#8).msb = false ∧ (x >>> 2 + 48#8).msb = true then none + else if x >>> 2 + 48#8 < x >>> 2 ∨ x >>> 2 + 48#8 < 48#8 then none else some (x >>> 2 + 48#8)).bind + fun y' => if x_1 >>> 2 + y' < x_1 >>> 2 ∨ x_1 >>> 2 + y' < y' then none else some (x_1 >>> 2 + y') := sorry + +theorem shl_and_xor_thm (x x_1 : BitVec 8) : x_1 <<< 1 ^^^ x <<< 1 &&& 20#8 = (x_1 ^^^ x &&& 10#8) <<< 1 := sorry + +theorem shl_and_add_thm (x : BitVec 8) : x <<< 1 &&& 119#8 = (x &&& 59#8) <<< 1 := sorry + +theorem lshr_or_and_thm (x x_1 : BitVec 8) : (x_1 >>> 5 ||| 198#8) &&& x >>> 5 = (x &&& (x_1 ||| 192#8)) >>> 5 := sorry + +theorem lshr_or_or_fail_thm (x x_1 : BitVec 8) : x_1 >>> 5 ||| (x >>> 5 ||| 198#8) = (x ||| x_1) >>> 5 ||| 198#8 := sorry + +theorem lshr_or_or_no_const_thm (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 + +theorem shl_xor_xor_no_const_thm (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 + +theorem shl_add_add_no_const_thm (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_2.toNat + x_3 <<< x_2.toNat)) fun a => + some (a + x) := sorry + +theorem lshr_xor_or_good_mask_thm (x x_1 : BitVec 8) : x_1 >>> 4 ||| x >>> 4 ^^^ 48#8 = (x ||| x_1) >>> 4 ||| 48#8 := sorry + +theorem shl_xor_xor_good_mask_thm (x x_1 : BitVec 8) : x_1 <<< 1 ^^^ (x <<< 1 ^^^ 88#8) = (x ^^^ x_1) <<< 1 ^^^ 88#8 := sorry + +theorem shl_xor_xor_bad_mask_distribute_thm (x x_1 : BitVec 8) : x_1 <<< 1 ^^^ (x <<< 1 ^^^ 188#8) = (x ^^^ x_1) <<< 1 ^^^ 188#8 := sorry + +theorem shl_add_and_thm (x x_1 : BitVec 8) : x_1 <<< 1 &&& x <<< 1 + 123#8 = (x_1 &&& x + 61#8) <<< 1 := sorry + +theorem lshr_and_add_fail_thm (x x_1 : BitVec 8) : + some (x_1 >>> 1 + (x >>> 1 &&& 123#8)) ⊑ + if x_1 >>> 1 + (x >>> 1 &&& 123#8) < x_1 >>> 1 ∨ x_1 >>> 1 + (x >>> 1 &&& 123#8) < x >>> 1 &&& 123#8 then none + else some (x_1 >>> 1 + (x >>> 1 &&& 123#8)) := sorry + +theorem lshr_add_or_fail_thm (x x_1 : BitVec 8) : + some (x_1 >>> 1 ||| x >>> 1 + 123#8) ⊑ + (if x >>> 1 + 123#8 < x >>> 1 ∨ x >>> 1 + 123#8 < 123#8 then none else some (x >>> 1 + 123#8)).bind fun y' => + some (x_1 >>> 1 ||| y') := sorry + +theorem lshr_add_xor_fail_thm (x x_1 : BitVec 8) : + some (x_1 >>> 1 ^^^ x >>> 1 + 123#8) ⊑ + (if x >>> 1 + 123#8 < x >>> 1 ∨ x >>> 1 + 123#8 < 123#8 then none else some (x >>> 1 + 123#8)).bind fun y' => + some (x_1 >>> 1 ^^^ y') := sorry + +theorem shl_add_and_fail_mismatch_shift_thm (x x_1 : BitVec 8) : + some (x_1 <<< 1 &&& x >>> 1 + 123#8) ⊑ + (if x >>> 1 + 123#8 < x >>> 1 ∨ x >>> 1 + 123#8 < 123#8 then none else some (x >>> 1 + 123#8)).bind fun y' => + some (x_1 <<< 1 &&& y') := sorry + +theorem and_ashr_not_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun x => some (a &&& (x ^^^ 255#8))) ⊑ + if 8#8 ≤ x_1 then none else some ((x_2 &&& (x ^^^ 255#8)).sshiftRight x_1.toNat) := sorry + +theorem and_ashr_not_commuted_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun y' => some ((a ^^^ 255#8) &&& y')) ⊑ + if 8#8 ≤ x_1 then none else some ((x &&& (x_2 ^^^ 255#8)).sshiftRight x_1.toNat) := sorry + +theorem or_ashr_not_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun x => some (a ||| x ^^^ 255#8)) ⊑ + if 8#8 ≤ x_1 then none else some ((x_2 ||| x ^^^ 255#8).sshiftRight x_1.toNat) := sorry + +theorem or_ashr_not_commuted_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun y' => some (a ^^^ 255#8 ||| y')) ⊑ + if 8#8 ≤ x_1 then none else some ((x ||| x_2 ^^^ 255#8).sshiftRight x_1.toNat) := sorry + +theorem xor_ashr_not_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun x => some (a ^^^ (x ^^^ 255#8))) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some ((x ^^^ x_2).sshiftRight x_1.toNat)) fun x' => + some (x' ^^^ 255#8) := sorry + +theorem xor_ashr_not_commuted_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun y' => some (a ^^^ 255#8 ^^^ y')) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some ((x_2 ^^^ x).sshiftRight x_1.toNat)) fun x' => + some (x' ^^^ 255#8) := sorry + +theorem xor_ashr_not_fail_lshr_ashr_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2 >>> x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun x => some (a ^^^ (x ^^^ 255#8))) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x_2 >>> x_1.toNat)) fun x => some (a ^^^ x ^^^ 255#8) := sorry + +theorem xor_ashr_not_fail_ashr_lshr_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x >>> x_1.toNat)) fun x => some (a ^^^ (x ^^^ 255#8))) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some (x >>> x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun x => + some (a ^^^ x ^^^ 255#8) := sorry + +theorem xor_ashr_not_fail_invalid_xor_constant_thm (x x_1 x_2 : BitVec 8) : + (Option.bind (if 8#8 ≤ x_1 then none else some (x_2.sshiftRight x_1.toNat)) fun a => + Option.bind (if 8#8 ≤ x_1 then none else some (x.sshiftRight x_1.toNat)) fun x => some (a ^^^ (x ^^^ 254#8))) ⊑ + Option.bind (if 8#8 ≤ x_1 then none else some ((x ^^^ x_2).sshiftRight x_1.toNat)) fun x' => + some (x' ^^^ 254#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean index 49bb84dd2..016a8a704 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gbinophofhdisplacedhshifts.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gbinophofhdisplacedhshifts_statements - + def shl_or_before := [llvm| { ^0(%arg25 : i8): @@ -41,7 +41,7 @@ theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or apply shl_or_thm @@ -77,7 +77,7 @@ theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_or apply lshr_or_thm @@ -113,7 +113,7 @@ theorem ashr_or_proof : ashr_or_before ⊑ ashr_or_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_or apply ashr_or_thm @@ -149,7 +149,7 @@ theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor apply shl_xor_thm @@ -185,7 +185,7 @@ theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_xor apply lshr_xor_thm @@ -221,7 +221,7 @@ theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_xor apply ashr_xor_thm @@ -257,7 +257,7 @@ theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and apply shl_and_thm @@ -293,7 +293,7 @@ theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_and apply lshr_and_thm @@ -329,7 +329,7 @@ theorem ashr_and_proof : ashr_and_before ⊑ ashr_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_and apply ashr_and_thm @@ -365,7 +365,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add apply shl_add_thm @@ -406,7 +406,7 @@ theorem lshr_add_fail_proof : lshr_add_fail_before ⊑ lshr_add_fail_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_add_fail apply lshr_add_fail_thm @@ -442,7 +442,7 @@ theorem shl_or_commuted_proof : shl_or_commuted_before ⊑ shl_or_commuted_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_commuted apply shl_or_commuted_thm @@ -478,7 +478,7 @@ theorem shl_or_with_or_disjoint_instead_of_add_proof : shl_or_with_or_disjoint_i simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_with_or_disjoint_instead_of_add apply shl_or_with_or_disjoint_instead_of_add_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean index 647861f10..e2a54d51d 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehashrhshlhtohmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gcanonicalizehashrhshlhtohmasking_statements - + def positive_samevar_before := [llvm| { ^0(%arg62 : i8, %arg63 : i8): @@ -37,7 +37,7 @@ theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar apply positive_samevar_thm @@ -69,7 +69,7 @@ theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameco simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst apply positive_sameconst_thm @@ -104,7 +104,7 @@ theorem positive_biggerashr_proof : positive_biggerashr_before ⊑ positive_bigg simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr apply positive_biggerashr_thm @@ -139,7 +139,7 @@ theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_bigger simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl apply positive_biggershl_thm @@ -171,7 +171,7 @@ theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw apply positive_samevar_shlnuw_thm @@ -203,7 +203,7 @@ theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw apply positive_sameconst_shlnuw_thm @@ -238,7 +238,7 @@ theorem positive_biggerashr_shlnuw_proof : positive_biggerashr_shlnuw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuw apply positive_biggerashr_shlnuw_thm @@ -273,7 +273,7 @@ theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw apply positive_biggershl_shlnuw_thm @@ -305,7 +305,7 @@ theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ posit simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw apply positive_samevar_shlnsw_thm @@ -337,7 +337,7 @@ theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw apply positive_sameconst_shlnsw_thm @@ -372,7 +372,7 @@ theorem positive_biggerashr_shlnsw_proof : positive_biggerashr_shlnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnsw apply positive_biggerashr_shlnsw_thm @@ -407,7 +407,7 @@ theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw apply positive_biggershl_shlnsw_thm @@ -439,7 +439,7 @@ theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw apply positive_samevar_shlnuwnsw_thm @@ -471,7 +471,7 @@ theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw apply positive_sameconst_shlnuwnsw_thm @@ -506,7 +506,7 @@ theorem positive_biggerashr_shlnuwnsw_proof : positive_biggerashr_shlnuwnsw_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuwnsw apply positive_biggerashr_shlnuwnsw_thm @@ -541,7 +541,7 @@ theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw apply positive_biggershl_shlnuwnsw_thm @@ -570,7 +570,7 @@ theorem positive_samevar_ashrexact_proof : positive_samevar_ashrexact_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_ashrexact apply positive_samevar_ashrexact_thm @@ -600,7 +600,7 @@ theorem positive_sameconst_ashrexact_proof : positive_sameconst_ashrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_ashrexact apply positive_sameconst_ashrexact_thm @@ -633,7 +633,7 @@ theorem positive_biggerashr_ashrexact_proof : positive_biggerashr_ashrexact_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_ashrexact apply positive_biggerashr_ashrexact_thm @@ -666,7 +666,7 @@ theorem positive_biggershl_ashrexact_proof : positive_biggershl_ashrexact_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_ashrexact apply positive_biggershl_ashrexact_thm @@ -695,7 +695,7 @@ theorem positive_samevar_shlnsw_ashrexact_proof : positive_samevar_shlnsw_ashrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnsw_ashrexact apply positive_samevar_shlnsw_ashrexact_thm @@ -725,7 +725,7 @@ theorem positive_sameconst_shlnsw_ashrexact_proof : positive_sameconst_shlnsw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnsw_ashrexact apply positive_sameconst_shlnsw_ashrexact_thm @@ -758,7 +758,7 @@ theorem positive_biggerashr_shlnsw_ashrexact_proof : positive_biggerashr_shlnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnsw_ashrexact apply positive_biggerashr_shlnsw_ashrexact_thm @@ -791,7 +791,7 @@ theorem positive_biggershl_shlnsw_ashrexact_proof : positive_biggershl_shlnsw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnsw_ashrexact apply positive_biggershl_shlnsw_ashrexact_thm @@ -820,7 +820,7 @@ theorem positive_samevar_shlnuw_ashrexact_proof : positive_samevar_shlnuw_ashrex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuw_ashrexact apply positive_samevar_shlnuw_ashrexact_thm @@ -850,7 +850,7 @@ theorem positive_sameconst_shlnuw_ashrexact_proof : positive_sameconst_shlnuw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuw_ashrexact apply positive_sameconst_shlnuw_ashrexact_thm @@ -883,7 +883,7 @@ theorem positive_biggerashr_shlnuw_ashrexact_proof : positive_biggerashr_shlnuw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuw_ashrexact apply positive_biggerashr_shlnuw_ashrexact_thm @@ -916,7 +916,7 @@ theorem positive_biggershl_shlnuw_ashrexact_proof : positive_biggershl_shlnuw_as simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuw_ashrexact apply positive_biggershl_shlnuw_ashrexact_thm @@ -945,7 +945,7 @@ theorem positive_samevar_shlnuwnsw_ashrexact_proof : positive_samevar_shlnuwnsw_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_samevar_shlnuwnsw_ashrexact apply positive_samevar_shlnuwnsw_ashrexact_thm @@ -975,7 +975,7 @@ theorem positive_sameconst_shlnuwnsw_ashrexact_proof : positive_sameconst_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_sameconst_shlnuwnsw_ashrexact apply positive_sameconst_shlnuwnsw_ashrexact_thm @@ -1008,7 +1008,7 @@ theorem positive_biggerashr_shlnuwnsw_ashrexact_proof : positive_biggerashr_shln simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggerashr_shlnuwnsw_ashrexact apply positive_biggerashr_shlnuwnsw_ashrexact_thm @@ -1041,7 +1041,7 @@ theorem positive_biggershl_shlnuwnsw_ashrexact_proof : positive_biggershl_shlnuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN positive_biggershl_shlnuwnsw_ashrexact apply positive_biggershl_shlnuwnsw_ashrexact_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean new file mode 100644 index 000000000..f8c7b4178 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking.lean @@ -0,0 +1,1050 @@ +import SSA.Projects.InstCombine.tests.proofs.gcanonicalizehlshrhshlhtohmasking_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 gcanonicalizehlshrhshlhtohmasking_statements + +def positive_samevar_before := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = llvm.lshr %arg62, %arg63 : i8 + %1 = llvm.shl %0, %arg63 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_after := [llvm| +{ +^0(%arg62 : i8, %arg63 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg63 overflow : i8 + %2 = llvm.and %1, %arg62 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_after := by + unfold positive_samevar_before positive_samevar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar + apply positive_samevar_thm + ---END positive_samevar + + + +def positive_sameconst_before := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg61, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_after := [llvm| +{ +^0(%arg61 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg61, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameconst_after := by + unfold positive_sameconst_before positive_sameconst_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst + all_goals (try extract_goal ; sorry) + ---END positive_sameconst + + + +def positive_biggerlshr_before := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg60, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_after := [llvm| +{ +^0(%arg60 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg60, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_proof : positive_biggerlshr_before ⊑ positive_biggerlshr_after := by + unfold positive_biggerlshr_before positive_biggerlshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr + apply positive_biggerlshr_thm + ---END positive_biggerlshr + + + +def positive_biggershl_before := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg59, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_after := [llvm| +{ +^0(%arg59 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg59, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_proof : positive_biggershl_before ⊑ positive_biggershl_after := by + unfold positive_biggershl_before positive_biggershl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl + apply positive_biggershl_thm + ---END positive_biggershl + + + +def positive_samevar_shlnuw_before := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = llvm.lshr %arg57, %arg58 : i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_after := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg58 overflow : i8 + %2 = llvm.and %1, %arg57 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ positive_samevar_shlnuw_after := by + unfold positive_samevar_shlnuw_before positive_samevar_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnuw + apply positive_samevar_shlnuw_thm + ---END positive_samevar_shlnuw + + + +def positive_sameconst_shlnuw_before := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg56, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_after := [llvm| +{ +^0(%arg56 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg56, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ positive_sameconst_shlnuw_after := by + unfold positive_sameconst_shlnuw_before positive_sameconst_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnuw + apply positive_sameconst_shlnuw_thm + ---END positive_sameconst_shlnuw + + + +def positive_biggerlshr_shlnuw_before := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg55, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuw_after := [llvm| +{ +^0(%arg55 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg55, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuw_proof : positive_biggerlshr_shlnuw_before ⊑ positive_biggerlshr_shlnuw_after := by + unfold positive_biggerlshr_shlnuw_before positive_biggerlshr_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnuw + apply positive_biggerlshr_shlnuw_thm + ---END positive_biggerlshr_shlnuw + + + +def positive_biggershl_shlnuw_before := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg54, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_after := [llvm| +{ +^0(%arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -64 : i8}> : () -> i8 + %2 = llvm.shl %arg54, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_proof : positive_biggershl_shlnuw_before ⊑ positive_biggershl_shlnuw_after := by + unfold positive_biggershl_shlnuw_before positive_biggershl_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnuw + apply positive_biggershl_shlnuw_thm + ---END positive_biggershl_shlnuw + + + +def positive_samevar_shlnsw_before := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = llvm.lshr %arg52, %arg53 : i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_after := [llvm| +{ +^0(%arg52 : i8, %arg53 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg53 overflow : i8 + %2 = llvm.and %1, %arg52 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_proof : positive_samevar_shlnsw_before ⊑ positive_samevar_shlnsw_after := by + unfold positive_samevar_shlnsw_before positive_samevar_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnsw + apply positive_samevar_shlnsw_thm + ---END positive_samevar_shlnsw + + + +def positive_sameconst_shlnsw_before := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg51, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_after := [llvm| +{ +^0(%arg51 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg51, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_proof : positive_sameconst_shlnsw_before ⊑ positive_sameconst_shlnsw_after := by + unfold positive_sameconst_shlnsw_before positive_sameconst_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnsw + apply positive_sameconst_shlnsw_thm + ---END positive_sameconst_shlnsw + + + +def positive_biggerlshr_shlnsw_before := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg50, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnsw_after := [llvm| +{ +^0(%arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg50, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnsw_proof : positive_biggerlshr_shlnsw_before ⊑ positive_biggerlshr_shlnsw_after := by + unfold positive_biggerlshr_shlnsw_before positive_biggerlshr_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnsw + apply positive_biggerlshr_shlnsw_thm + ---END positive_biggerlshr_shlnsw + + + +def positive_biggershl_shlnsw_before := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg49, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_after := [llvm| +{ +^0(%arg49 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = llvm.shl %arg49, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_proof : positive_biggershl_shlnsw_before ⊑ positive_biggershl_shlnsw_after := by + unfold positive_biggershl_shlnsw_before positive_biggershl_shlnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnsw + apply positive_biggershl_shlnsw_thm + ---END positive_biggershl_shlnsw + + + +def positive_samevar_shlnuwnsw_before := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = llvm.lshr %arg47, %arg48 : i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_after := [llvm| +{ +^0(%arg47 : i8, %arg48 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg48 overflow : i8 + %2 = llvm.and %1, %arg47 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_proof : positive_samevar_shlnuwnsw_before ⊑ positive_samevar_shlnuwnsw_after := by + unfold positive_samevar_shlnuwnsw_before positive_samevar_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnuwnsw + apply positive_samevar_shlnuwnsw_thm + ---END positive_samevar_shlnuwnsw + + + +def positive_sameconst_shlnuwnsw_before := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg46, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_after := [llvm| +{ +^0(%arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = llvm.and %arg46, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_proof : positive_sameconst_shlnuwnsw_before ⊑ positive_sameconst_shlnuwnsw_after := by + unfold positive_sameconst_shlnuwnsw_before positive_sameconst_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw + apply positive_sameconst_shlnuwnsw_thm + ---END positive_sameconst_shlnuwnsw + + + +def positive_biggerlshr_shlnuwnsw_before := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg45, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuwnsw_after := [llvm| +{ +^0(%arg45 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.lshr %arg45, %0 : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuwnsw_proof : positive_biggerlshr_shlnuwnsw_before ⊑ positive_biggerlshr_shlnuwnsw_after := by + unfold positive_biggerlshr_shlnuwnsw_before positive_biggerlshr_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnuwnsw + apply positive_biggerlshr_shlnuwnsw_thm + ---END positive_biggerlshr_shlnuwnsw + + + +def positive_biggershl_shlnuwnsw_before := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg44, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_after := [llvm| +{ +^0(%arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 64 : i8}> : () -> i8 + %2 = llvm.shl %arg44, %0 overflow : i8 + %3 = llvm.and %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_proof : positive_biggershl_shlnuwnsw_before ⊑ positive_biggershl_shlnuwnsw_after := by + unfold positive_biggershl_shlnuwnsw_before positive_biggershl_shlnuwnsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw + apply positive_biggershl_shlnuwnsw_thm + ---END positive_biggershl_shlnuwnsw + + + +def positive_samevar_lshrexact_before := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + %0 = llvm.lshr %arg42, %arg43 : i8 + %1 = llvm.shl %0, %arg43 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_lshrexact_after := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8): + "llvm.return"(%arg42) : (i8) -> () +} +] +theorem positive_samevar_lshrexact_proof : positive_samevar_lshrexact_before ⊑ positive_samevar_lshrexact_after := by + unfold positive_samevar_lshrexact_before positive_samevar_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_lshrexact + apply positive_samevar_lshrexact_thm + ---END positive_samevar_lshrexact + + + +def positive_sameconst_lshrexact_before := [llvm| +{ +^0(%arg41 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg41, %0 : i8 + %2 = llvm.shl %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_lshrexact_after := [llvm| +{ +^0(%arg41 : i8): + "llvm.return"(%arg41) : (i8) -> () +} +] +theorem positive_sameconst_lshrexact_proof : positive_sameconst_lshrexact_before ⊑ positive_sameconst_lshrexact_after := by + unfold positive_sameconst_lshrexact_before positive_sameconst_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_lshrexact + apply positive_sameconst_lshrexact_thm + ---END positive_sameconst_lshrexact + + + +def positive_biggerlshr_lshrexact_before := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg40, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_lshrexact_after := [llvm| +{ +^0(%arg40 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg40, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_lshrexact_proof : positive_biggerlshr_lshrexact_before ⊑ positive_biggerlshr_lshrexact_after := by + unfold positive_biggerlshr_lshrexact_before positive_biggerlshr_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_lshrexact + apply positive_biggerlshr_lshrexact_thm + ---END positive_biggerlshr_lshrexact + + + +def positive_biggershl_lshrexact_before := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg39, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_lshrexact_after := [llvm| +{ +^0(%arg39 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg39, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_lshrexact_proof : positive_biggershl_lshrexact_before ⊑ positive_biggershl_lshrexact_after := by + unfold positive_biggershl_lshrexact_before positive_biggershl_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_lshrexact + apply positive_biggershl_lshrexact_thm + ---END positive_biggershl_lshrexact + + + +def positive_samevar_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + %0 = llvm.lshr %arg37, %arg38 : i8 + %1 = llvm.shl %0, %arg38 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + "llvm.return"(%arg37) : (i8) -> () +} +] +theorem positive_samevar_shlnsw_lshrexact_proof : positive_samevar_shlnsw_lshrexact_before ⊑ positive_samevar_shlnsw_lshrexact_after := by + unfold positive_samevar_shlnsw_lshrexact_before positive_samevar_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnsw_lshrexact + apply positive_samevar_shlnsw_lshrexact_thm + ---END positive_samevar_shlnsw_lshrexact + + + +def positive_sameconst_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg36 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg36, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg36 : i8): + "llvm.return"(%arg36) : (i8) -> () +} +] +theorem positive_sameconst_shlnsw_lshrexact_proof : positive_sameconst_shlnsw_lshrexact_before ⊑ positive_sameconst_shlnsw_lshrexact_after := by + unfold positive_sameconst_shlnsw_lshrexact_before positive_sameconst_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnsw_lshrexact + apply positive_sameconst_shlnsw_lshrexact_thm + ---END positive_sameconst_shlnsw_lshrexact + + + +def positive_biggerlshr_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg35, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg35 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg35, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnsw_lshrexact_proof : positive_biggerlshr_shlnsw_lshrexact_before ⊑ positive_biggerlshr_shlnsw_lshrexact_after := by + unfold positive_biggerlshr_shlnsw_lshrexact_before positive_biggerlshr_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnsw_lshrexact + apply positive_biggerlshr_shlnsw_lshrexact_thm + ---END positive_biggerlshr_shlnsw_lshrexact + + + +def positive_biggershl_shlnsw_lshrexact_before := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg34, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnsw_lshrexact_after := [llvm| +{ +^0(%arg34 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg34, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnsw_lshrexact_proof : positive_biggershl_shlnsw_lshrexact_before ⊑ positive_biggershl_shlnsw_lshrexact_after := by + unfold positive_biggershl_shlnsw_lshrexact_before positive_biggershl_shlnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnsw_lshrexact + apply positive_biggershl_shlnsw_lshrexact_thm + ---END positive_biggershl_shlnsw_lshrexact + + + +def positive_samevar_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + %0 = llvm.lshr %arg32, %arg33 : i8 + %1 = llvm.shl %0, %arg33 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg32 : i8, %arg33 : i8): + "llvm.return"(%arg32) : (i8) -> () +} +] +theorem positive_samevar_shlnuw_lshrexact_proof : positive_samevar_shlnuw_lshrexact_before ⊑ positive_samevar_shlnuw_lshrexact_after := by + unfold positive_samevar_shlnuw_lshrexact_before positive_samevar_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnuw_lshrexact + apply positive_samevar_shlnuw_lshrexact_thm + ---END positive_samevar_shlnuw_lshrexact + + + +def positive_sameconst_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg31 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg31, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg31 : i8): + "llvm.return"(%arg31) : (i8) -> () +} +] +theorem positive_sameconst_shlnuw_lshrexact_proof : positive_sameconst_shlnuw_lshrexact_before ⊑ positive_sameconst_shlnuw_lshrexact_after := by + unfold positive_sameconst_shlnuw_lshrexact_before positive_sameconst_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnuw_lshrexact + apply positive_sameconst_shlnuw_lshrexact_thm + ---END positive_sameconst_shlnuw_lshrexact + + + +def positive_biggerlshr_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg30, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg30 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg30, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuw_lshrexact_proof : positive_biggerlshr_shlnuw_lshrexact_before ⊑ positive_biggerlshr_shlnuw_lshrexact_after := by + unfold positive_biggerlshr_shlnuw_lshrexact_before positive_biggerlshr_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnuw_lshrexact + apply positive_biggerlshr_shlnuw_lshrexact_thm + ---END positive_biggerlshr_shlnuw_lshrexact + + + +def positive_biggershl_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg29, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg29 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg29, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuw_lshrexact_proof : positive_biggershl_shlnuw_lshrexact_before ⊑ positive_biggershl_shlnuw_lshrexact_after := by + unfold positive_biggershl_shlnuw_lshrexact_before positive_biggershl_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnuw_lshrexact + apply positive_biggershl_shlnuw_lshrexact_thm + ---END positive_biggershl_shlnuw_lshrexact + + + +def positive_samevar_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = llvm.lshr %arg27, %arg28 : i8 + %1 = llvm.shl %0, %arg28 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def positive_samevar_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + "llvm.return"(%arg27) : (i8) -> () +} +] +theorem positive_samevar_shlnuwnsw_lshrexact_proof : positive_samevar_shlnuwnsw_lshrexact_before ⊑ positive_samevar_shlnuwnsw_lshrexact_after := by + unfold positive_samevar_shlnuwnsw_lshrexact_before positive_samevar_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnuwnsw_lshrexact + apply positive_samevar_shlnuwnsw_lshrexact_thm + ---END positive_samevar_shlnuwnsw_lshrexact + + + +def positive_sameconst_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg26, %0 : i8 + %2 = llvm.shl %1, %0 overflow : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def positive_sameconst_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg26 : i8): + "llvm.return"(%arg26) : (i8) -> () +} +] +theorem positive_sameconst_shlnuwnsw_lshrexact_proof : positive_sameconst_shlnuwnsw_lshrexact_before ⊑ positive_sameconst_shlnuwnsw_lshrexact_after := by + unfold positive_sameconst_shlnuwnsw_lshrexact_before positive_sameconst_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnuwnsw_lshrexact + apply positive_sameconst_shlnuwnsw_lshrexact_thm + ---END positive_sameconst_shlnuwnsw_lshrexact + + + +def positive_biggerlshr_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.lshr %arg25, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggerlshr_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg25 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.lshr %arg25, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggerlshr_shlnuwnsw_lshrexact_proof : positive_biggerlshr_shlnuwnsw_lshrexact_before ⊑ positive_biggerlshr_shlnuwnsw_lshrexact_after := by + unfold positive_biggerlshr_shlnuwnsw_lshrexact_before positive_biggerlshr_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerlshr_shlnuwnsw_lshrexact + apply positive_biggerlshr_shlnuwnsw_lshrexact_thm + ---END positive_biggerlshr_shlnuwnsw_lshrexact + + + +def positive_biggershl_shlnuwnsw_lshrexact_before := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.lshr %arg24, %0 : i8 + %3 = llvm.shl %2, %1 overflow : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def positive_biggershl_shlnuwnsw_lshrexact_after := [llvm| +{ +^0(%arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = llvm.shl %arg24, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem positive_biggershl_shlnuwnsw_lshrexact_proof : positive_biggershl_shlnuwnsw_lshrexact_before ⊑ positive_biggershl_shlnuwnsw_lshrexact_after := by + unfold positive_biggershl_shlnuwnsw_lshrexact_before positive_biggershl_shlnuwnsw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggershl_shlnuwnsw_lshrexact + apply positive_biggershl_shlnuwnsw_lshrexact_thm + ---END positive_biggershl_shlnuwnsw_lshrexact + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean new file mode 100644 index 000000000..59bc8de1b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehlshrhshlhtohmasking_proof.lean @@ -0,0 +1,138 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gcanonicalizehlshrhshlhtohmasking_proof +theorem positive_samevar_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_biggerlshr_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 &&& 24#8 := sorry + +theorem positive_biggershl_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 &&& 192#8 := sorry + +theorem positive_samevar_shlnuw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuw_thm (x : BitVec 8) : + (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnuw_thm (x : BitVec 8) : + (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnuw_thm (x : BitVec 8) : + (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => some (x' &&& 192#8) := sorry + +theorem positive_samevar_shlnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnsw_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnsw_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnsw_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => + some (x' &&& 64#8) := sorry + +theorem positive_samevar_shlnuwnsw_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + (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)).bind + fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_shlnuwnsw_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none + else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ + some (x &&& 248#8) := sorry + +theorem positive_biggerlshr_shlnuwnsw_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none + else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ + some (x >>> 3 &&& 24#8) := sorry + +theorem positive_biggershl_shlnuwnsw_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none + else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + (if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3)).bind fun x' => + some (x' &&& 64#8) := sorry + +theorem positive_samevar_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_lshrexact_thm (x : BitVec 8) : x &&& 248#8 = x := sorry + +theorem positive_biggerlshr_lshrexact_thm (x : BitVec 8) : x >>> 6 <<< 3 = x >>> 3 := sorry + +theorem positive_biggershl_lshrexact_thm (x : BitVec 8) : x >>> 3 <<< 6 = x <<< 3 := sorry + +theorem positive_samevar_shlnsw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry + +theorem positive_biggerlshr_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry + +theorem positive_biggershl_shlnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ some x := sorry + +theorem positive_biggerlshr_shlnuw_lshrexact_thm (x : BitVec 8) : + (if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ some (x >>> 3) := sorry + +theorem positive_biggershl_shlnuw_lshrexact_thm (x : BitVec 8) : + (if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + +theorem positive_samevar_shlnuwnsw_lshrexact_thm (x x_1 : BitVec 8) : + (Option.bind (if 8#8 ≤ x then none else some (x_1 >>> x.toNat)) fun a => + if (a <<< x.toNat).sshiftRight x.toNat = a then none + else if a <<< x.toNat >>> x.toNat = a then none else if 8#8 ≤ x then none else some (a <<< x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x &&& 248#8).sshiftRight 3 = x >>> 3 then none + else if (x &&& 248#8) >>> 3 = x >>> 3 then none else some (x &&& 248#8)) ⊑ + some x := sorry + +theorem positive_biggerlshr_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 6 <<< 3).sshiftRight 3 = x >>> 6 then none + else if x >>> 6 <<< 3 >>> 3 = x >>> 6 then none else some (x >>> 6 <<< 3)) ⊑ + some (x >>> 3) := sorry + +theorem positive_biggershl_shlnuwnsw_lshrexact_thm (x : BitVec 8) : + (if (x >>> 3 <<< 6).sshiftRight 6 = x >>> 3 then none + else if x >>> 3 <<< 6 >>> 6 = x >>> 3 then none else some (x >>> 3 <<< 6)) ⊑ + if (x <<< 3).sshiftRight 3 = x then none else if x <<< 3 >>> 3 = x then none else some (x <<< 3) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking.lean new file mode 100644 index 000000000..157ba364c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking.lean @@ -0,0 +1,341 @@ +import SSA.Projects.InstCombine.tests.proofs.gcanonicalizehshlhlshrhtohmasking_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 gcanonicalizehshlhlshrhtohmasking_statements + +def positive_samevar_before := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32): + %0 = llvm.shl %arg36, %arg37 : i32 + %1 = llvm.lshr %0, %arg37 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def positive_samevar_after := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.lshr %0, %arg37 : i32 + %2 = llvm.and %1, %arg36 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem positive_samevar_proof : positive_samevar_before ⊑ positive_samevar_after := by + unfold positive_samevar_before positive_samevar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar + apply positive_samevar_thm + ---END positive_samevar + + + +def positive_sameconst_before := [llvm| +{ +^0(%arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.shl %arg35, %0 : i32 + %2 = llvm.lshr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def positive_sameconst_after := [llvm| +{ +^0(%arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 134217727 : i32}> : () -> i32 + %1 = llvm.and %arg35, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem positive_sameconst_proof : positive_sameconst_before ⊑ positive_sameconst_after := by + unfold positive_sameconst_before positive_sameconst_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst + apply positive_sameconst_thm + ---END positive_sameconst + + + +def positive_biggerShl_before := [llvm| +{ +^0(%arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %2 = llvm.shl %arg34, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerShl_after := [llvm| +{ +^0(%arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 134217696 : i32}> : () -> i32 + %2 = llvm.shl %arg34, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem positive_biggerShl_proof : positive_biggerShl_before ⊑ positive_biggerShl_after := by + unfold positive_biggerShl_before positive_biggerShl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerShl + apply positive_biggerShl_thm + ---END positive_biggerShl + + + +def positive_biggerLshr_before := [llvm| +{ +^0(%arg33 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = llvm.shl %arg33, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerLshr_after := [llvm| +{ +^0(%arg33 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4194303 : i32}> : () -> i32 + %2 = llvm.lshr %arg33, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem positive_biggerLshr_proof : positive_biggerLshr_before ⊑ positive_biggerLshr_after := by + unfold positive_biggerLshr_before positive_biggerLshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerLshr + apply positive_biggerLshr_thm + ---END positive_biggerLshr + + + +def positive_biggerLshr_lshrexact_before := [llvm| +{ +^0(%arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = llvm.shl %arg32, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerLshr_lshrexact_after := [llvm| +{ +^0(%arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4194303 : i32}> : () -> i32 + %2 = llvm.lshr %arg32, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem positive_biggerLshr_lshrexact_proof : positive_biggerLshr_lshrexact_before ⊑ positive_biggerLshr_lshrexact_after := by + unfold positive_biggerLshr_lshrexact_before positive_biggerLshr_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerLshr_lshrexact + apply positive_biggerLshr_lshrexact_thm + ---END positive_biggerLshr_lshrexact + + + +def positive_samevar_shlnuw_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + %0 = llvm.shl %arg30, %arg31 overflow : i32 + %1 = llvm.lshr %0, %arg31 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def positive_samevar_shlnuw_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32): + "llvm.return"(%arg30) : (i32) -> () +} +] +theorem positive_samevar_shlnuw_proof : positive_samevar_shlnuw_before ⊑ positive_samevar_shlnuw_after := by + unfold positive_samevar_shlnuw_before positive_samevar_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_samevar_shlnuw + apply positive_samevar_shlnuw_thm + ---END positive_samevar_shlnuw + + + +def positive_sameconst_shlnuw_before := [llvm| +{ +^0(%arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.shl %arg29, %0 overflow : i32 + %2 = llvm.lshr %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def positive_sameconst_shlnuw_after := [llvm| +{ +^0(%arg29 : i32): + "llvm.return"(%arg29) : (i32) -> () +} +] +theorem positive_sameconst_shlnuw_proof : positive_sameconst_shlnuw_before ⊑ positive_sameconst_shlnuw_after := by + unfold positive_sameconst_shlnuw_before positive_sameconst_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_sameconst_shlnuw + apply positive_sameconst_shlnuw_thm + ---END positive_sameconst_shlnuw + + + +def positive_biggerShl_shlnuw_before := [llvm| +{ +^0(%arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %2 = llvm.shl %arg28, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerShl_shlnuw_after := [llvm| +{ +^0(%arg28 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.shl %arg28, %0 overflow : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem positive_biggerShl_shlnuw_proof : positive_biggerShl_shlnuw_before ⊑ positive_biggerShl_shlnuw_after := by + unfold positive_biggerShl_shlnuw_before positive_biggerShl_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerShl_shlnuw + apply positive_biggerShl_shlnuw_thm + ---END positive_biggerShl_shlnuw + + + +def positive_biggerLshr_shlnuw_before := [llvm| +{ +^0(%arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = llvm.shl %arg27, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerLshr_shlnuw_after := [llvm| +{ +^0(%arg27 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.lshr %arg27, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem positive_biggerLshr_shlnuw_proof : positive_biggerLshr_shlnuw_before ⊑ positive_biggerLshr_shlnuw_after := by + unfold positive_biggerLshr_shlnuw_before positive_biggerLshr_shlnuw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerLshr_shlnuw + apply positive_biggerLshr_shlnuw_thm + ---END positive_biggerLshr_shlnuw + + + +def positive_biggerLshr_shlnuw_lshrexact_before := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 10 : i32}> : () -> i32 + %2 = llvm.shl %arg26, %0 overflow : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def positive_biggerLshr_shlnuw_lshrexact_after := [llvm| +{ +^0(%arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = llvm.lshr %arg26, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem positive_biggerLshr_shlnuw_lshrexact_proof : positive_biggerLshr_shlnuw_lshrexact_before ⊑ positive_biggerLshr_shlnuw_lshrexact_after := by + unfold positive_biggerLshr_shlnuw_lshrexact_before positive_biggerLshr_shlnuw_lshrexact_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN positive_biggerLshr_shlnuw_lshrexact + apply positive_biggerLshr_shlnuw_lshrexact_thm + ---END positive_biggerLshr_shlnuw_lshrexact + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking_proof.lean new file mode 100644 index 000000000..c2e4cbf4f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gcanonicalizehshlhlshrhtohmasking_proof.lean @@ -0,0 +1,37 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gcanonicalizehshlhlshrhtohmasking_proof +theorem positive_samevar_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (x_1 <<< x.toNat)) fun a => + if 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + Option.bind (if 32#32 ≤ x then none else some (4294967295#32 >>> x.toNat)) fun a => some (a &&& x_1) := sorry + +theorem positive_sameconst_thm (x : BitVec 32) : x <<< 5 >>> 5 = x &&& 134217727#32 := sorry + +theorem positive_biggerShl_thm (x : BitVec 32) : x <<< 10 >>> 5 = x <<< 5 &&& 134217696#32 := sorry + +theorem positive_biggerLshr_thm (x : BitVec 32) : x <<< 5 >>> 10 = x >>> 5 &&& 4194303#32 := sorry + +theorem positive_biggerLshr_lshrexact_thm (x : BitVec 32) : x <<< 5 >>> 10 = x >>> 5 &&& 4194303#32 := sorry + +theorem positive_samevar_shlnuw_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 32#32 ≤ x then none else some (a >>> x.toNat)) ⊑ + some x_1 := sorry + +theorem positive_sameconst_shlnuw_thm (x : BitVec 32) : + ((if x <<< 5 >>> 5 = x then none else some (x <<< 5)).bind fun x' => some (x' >>> 5)) ⊑ some x := sorry + +theorem positive_biggerShl_shlnuw_thm (x : BitVec 32) : + ((if x <<< 10 >>> 10 = x then none else some (x <<< 10)).bind fun x' => some (x' >>> 5)) ⊑ + if (x <<< 5).sshiftRight 5 = x then none else if x <<< 5 >>> 5 = x then none else some (x <<< 5) := sorry + +theorem positive_biggerLshr_shlnuw_thm (x : BitVec 32) : + ((if x <<< 5 >>> 5 = x then none else some (x <<< 5)).bind fun x' => some (x' >>> 10)) ⊑ some (x >>> 5) := sorry + +theorem positive_biggerLshr_shlnuw_lshrexact_thm (x : BitVec 32) : + ((if x <<< 5 >>> 5 = x then none else some (x <<< 5)).bind fun x' => some (x' >>> 10)) ⊑ some (x >>> 5) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean index e303ae261..be183faf6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdistribute.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdistribute_statements - + def factorize_before := [llvm| { ^0(%arg9 : i32, %arg10 : i32): @@ -37,7 +37,7 @@ theorem factorize_proof : factorize_before ⊑ factorize_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize apply factorize_thm @@ -69,7 +69,7 @@ theorem factorize2_proof : factorize2_before ⊑ factorize2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize2 apply factorize2_thm @@ -101,7 +101,7 @@ theorem factorize3_proof : factorize3_before ⊑ factorize3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize3 apply factorize3_thm @@ -134,7 +134,7 @@ theorem factorize4_proof : factorize4_before ⊑ factorize4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize4 apply factorize4_thm @@ -167,7 +167,7 @@ theorem factorize5_proof : factorize5_before ⊑ factorize5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN factorize5 apply factorize5_thm @@ -201,7 +201,7 @@ theorem expand_proof : expand_before ⊑ expand_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN expand apply expand_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean index 19544eb92..4734c2a24 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gdivhshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gdivhshift_statements - + def t7_before := [llvm| { ^0(%arg209 : i32): @@ -36,7 +36,7 @@ theorem t7_proof : t7_before ⊑ t7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t7 apply t7_thm @@ -67,7 +67,7 @@ theorem t10_proof : t10_before ⊑ t10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t10 apply t10_thm @@ -100,7 +100,7 @@ theorem sdiv_mul_shl_nsw_proof : sdiv_mul_shl_nsw_before ⊑ sdiv_mul_shl_nsw_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_mul_shl_nsw apply sdiv_mul_shl_nsw_thm @@ -133,7 +133,7 @@ theorem sdiv_mul_shl_nsw_exact_commute1_proof : sdiv_mul_shl_nsw_exact_commute1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_mul_shl_nsw_exact_commute1 apply sdiv_mul_shl_nsw_exact_commute1_thm @@ -164,7 +164,7 @@ theorem sdiv_shl_shl_nsw2_nuw_proof : sdiv_shl_shl_nsw2_nuw_before ⊑ sdiv_shl_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_shl_nsw2_nuw apply sdiv_shl_shl_nsw2_nuw_thm @@ -197,7 +197,7 @@ theorem sdiv_shl_pair_const_proof : sdiv_shl_pair_const_before ⊑ sdiv_shl_pair simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair_const apply sdiv_shl_pair_const_thm @@ -230,7 +230,7 @@ theorem sdiv_shl_pair1_proof : sdiv_shl_pair1_before ⊑ sdiv_shl_pair1_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair1 apply sdiv_shl_pair1_thm @@ -263,7 +263,7 @@ theorem sdiv_shl_pair2_proof : sdiv_shl_pair2_before ⊑ sdiv_shl_pair2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair2 apply sdiv_shl_pair2_thm @@ -296,7 +296,7 @@ theorem sdiv_shl_pair3_proof : sdiv_shl_pair3_before ⊑ sdiv_shl_pair3_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv_shl_pair3 apply sdiv_shl_pair3_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean new file mode 100644 index 000000000..7dce5dce8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gearly_constfold_changes_IR_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 gearly_constfold_changes_IR_statements + +def foo_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.or %0, %1 : i32 + %3 = llvm.and %arg0, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def foo_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem foo_proof : foo_before ⊑ foo_after := by + unfold foo_before foo_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN foo + all_goals (try extract_goal ; sorry) + ---END foo + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean new file mode 100644 index 000000000..810e83af1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gearly_constfold_changes_IR_proof.lean @@ -0,0 +1,6 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gearly_constfold_changes_IR_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gexact.lean b/SSA/Projects/InstCombine/tests/proofs/gexact.lean index 11b31de5c..f1bd406df 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gexact.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gexact.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gexact_statements - + def sdiv2_before := [llvm| { ^0(%arg39 : i32): @@ -36,7 +36,7 @@ theorem sdiv2_proof : sdiv2_before ⊑ sdiv2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv2 apply sdiv2_thm @@ -66,7 +66,7 @@ theorem sdiv4_proof : sdiv4_before ⊑ sdiv4_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv4 apply sdiv4_thm @@ -99,7 +99,7 @@ theorem sdiv6_proof : sdiv6_before ⊑ sdiv6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sdiv6 apply sdiv6_thm @@ -134,7 +134,7 @@ theorem mul_of_sdiv_proof : mul_of_sdiv_before ⊑ mul_of_sdiv_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_of_sdiv apply mul_of_sdiv_thm @@ -167,7 +167,7 @@ theorem mul_of_sdiv_fail_ub_proof : mul_of_sdiv_fail_ub_before ⊑ mul_of_sdiv_f simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_of_sdiv_fail_ub apply mul_of_sdiv_fail_ub_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean new file mode 100644 index 000000000..a8f5b9097 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy.lean @@ -0,0 +1,84 @@ +import SSA.Projects.InstCombine.tests.proofs.gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_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 gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_statements + +def t0_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = llvm.xor %arg22, %0 : i32 + %3 = llvm.add %2, %arg23 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32): + %0 = llvm.sub %arg23, %arg22 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def n12_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.xor %arg0, %0 : i32 + %3 = llvm.add %2, %arg1 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n12_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.xor %arg0, %0 : i32 + %3 = llvm.add %arg1, %2 : i32 + %4 = llvm.add %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n12_proof : n12_before ⊑ n12_after := by + unfold n12_before n12_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n12 + apply n12_thm + ---END n12 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_proof.lean new file mode 100644 index 000000000..158f52f1a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_proof.lean @@ -0,0 +1,10 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gfoldhinchofhaddhofhnothxhandhyhtohsubhxhfromhy_proof +theorem t0_thm (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32) + x + 1#32 = x - x_1 := sorry + +theorem n12_thm (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32) + x = x + (x_1 ^^^ 4294967295#32) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean new file mode 100644 index 000000000..309a9048f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gfoldhsubhofhnothtohinchofhadd_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 gfoldhsubhofhnothtohinchofhadd_statements + +def p0_scalar_before := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg14, %0 : i32 + %2 = llvm.sub %arg15, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def p0_scalar_after := [llvm| +{ +^0(%arg14 : i32, %arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.add %arg14, %0 : i32 + %2 = llvm.add %1, %arg15 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem p0_scalar_proof : p0_scalar_before ⊑ p0_scalar_after := by + unfold p0_scalar_before p0_scalar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p0_scalar + apply p0_scalar_thm + ---END p0_scalar + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean new file mode 100644 index 000000000..fd9e11c7e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfoldhsubhofhnothtohinchofhadd_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gfoldhsubhofhnothtohinchofhadd_proof +theorem p0_scalar_thm (x x_1 : BitVec 32) : x_1 - (x ^^^ 4294967295#32) = x + 1#32 + x_1 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean b/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean new file mode 100644 index 000000000..d6fbabbe2 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean @@ -0,0 +1,50 @@ +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 new file mode 100644 index 000000000..e58425eb1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean @@ -0,0 +1,8 @@ + +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/ggethlowbitmaskhuptohandhincludinghbit.lean b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean index d7b02ccd6..6f998d876 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ggethlowbitmaskhuptohandhincludinghbit.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ggethlowbitmaskhuptohandhincludinghbit_statements - + def t0_before := [llvm| { ^0(%arg18 : i8): @@ -41,7 +41,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -77,7 +77,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1 apply t1_thm @@ -116,7 +116,7 @@ theorem t9_nocse_proof : t9_nocse_before ⊑ t9_nocse_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t9_nocse apply t9_nocse_thm @@ -155,7 +155,7 @@ theorem t17_nocse_mismatching_x_proof : t17_nocse_mismatching_x_before ⊑ t17_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t17_nocse_mismatching_x apply t17_nocse_mismatching_x_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean index 0d8781df7..a9692d3ea 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghighhbithsignmask.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghighhbithsignmask_statements - + def t0_before := [llvm| { ^0(%arg10 : i64): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -71,7 +71,7 @@ theorem t0_exact_proof : t0_exact_before ⊑ t0_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0_exact apply t0_exact_thm @@ -104,7 +104,7 @@ theorem t2_proof : t2_before ⊑ t2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t2 apply t2_thm @@ -137,7 +137,7 @@ theorem t3_exact_proof : t3_exact_before ⊑ t3_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t3_exact apply t3_exact_thm @@ -172,7 +172,7 @@ theorem n9_proof : n9_before ⊑ n9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n9 apply n9_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean index b8e3f3a3d..21f94fc5e 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculation.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnegationhouthofhbiashcalculation_statements - + def t0_before := [llvm| { ^0(%arg18 : i8, %arg19 : i8): @@ -41,7 +41,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -75,7 +75,7 @@ theorem n7_proof : n7_before ⊑ n7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n7 apply n7_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean index 323bd26f2..ec29cbcff 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnegationhouthofhbiashcalculationhwithhconstant.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnegationhouthofhbiashcalculationhwithhconstant_statements - + def t0_before := [llvm| { ^0(%arg7 : i8): @@ -39,7 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -71,7 +71,7 @@ theorem n5_proof : n5_before ⊑ n5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n5 apply n5_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean index 79c73784a..e6e5536e1 100644 --- a/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthnothfromhashrhoperand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section ghoisthnothfromhashrhoperand_statements - + def t0_before := [llvm| { ^0(%arg8 : i8, %arg9 : i8): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -71,7 +71,7 @@ theorem t1_proof : t1_before ⊑ t1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1 apply t1_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean new file mode 100644 index 000000000..9d85b67de --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.ghoisthxorhbyhconstanthfromhxorhbyhvalue_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 ghoisthxorhbyhconstanthfromhxorhbyhvalue_statements + +def t0_scalar_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.xor %arg10, %0 : i8 + %2 = llvm.xor %1, %arg11 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t0_scalar_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.xor %arg10, %arg11 : i8 + %2 = llvm.xor %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t0_scalar_proof : t0_scalar_before ⊑ t0_scalar_after := by + unfold t0_scalar_before t0_scalar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0_scalar + apply t0_scalar_thm + ---END t0_scalar + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean new file mode 100644 index 000000000..94f29eb56 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ghoisthxorhbyhconstanthfromhxorhbyhvalue_proof +theorem t0_scalar_thm (x x_1 : BitVec 8) : x_1 ^^^ 42#8 ^^^ x = x_1 ^^^ x ^^^ 42#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean new file mode 100644 index 000000000..e30f8d4f1 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gicmphmul.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.gicmphmul_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 gicmphmul_statements + +def mul_of_pow2s_before := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %3 = llvm.and %arg79, %0 : i32 + %4 = llvm.and %arg80, %1 : i32 + %5 = llvm.mul %3, %4 : i32 + %6 = llvm.or %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def mul_of_pow2s_after := [llvm| +{ +^0(%arg79 : i32, %arg80 : i32): + %0 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem mul_of_pow2s_proof : mul_of_pow2s_before ⊑ mul_of_pow2s_after := by + unfold mul_of_pow2s_before mul_of_pow2s_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN mul_of_pow2s + apply mul_of_pow2s_thm + ---END mul_of_pow2s + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean new file mode 100644 index 000000000..232e6e4e4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gicmphmul_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gicmphmul_proof +theorem mul_of_pow2s_thm (x x_1 : BitVec 32) : (x_1 &&& 8#32) * (x &&& 16#32) ||| 128#32 = 128#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand.lean new file mode 100644 index 000000000..3b87b3a5a --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand.lean @@ -0,0 +1,85 @@ +import SSA.Projects.InstCombine.tests.proofs.gicmphmulhand_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 gicmphmulhand_statements + +def pr40493_neg3_before := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.mul %arg15, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def pr40493_neg3_after := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.shl %arg15, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem pr40493_neg3_proof : pr40493_neg3_before ⊑ pr40493_neg3_after := by + unfold pr40493_neg3_before pr40493_neg3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN pr40493_neg3 + apply pr40493_neg3_thm + ---END pr40493_neg3 + + + +def pr51551_demand3bits_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -7 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %3 = llvm.and %arg1, %0 : i32 + %4 = llvm.or %3, %1 : i32 + %5 = llvm.mul %4, %arg0 overflow : i32 + %6 = llvm.and %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def pr51551_demand3bits_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem pr51551_demand3bits_proof : pr51551_demand3bits_before ⊑ pr51551_demand3bits_after := by + unfold pr51551_demand3bits_before pr51551_demand3bits_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN pr51551_demand3bits + apply pr51551_demand3bits_thm + ---END pr51551_demand3bits + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand_proof.lean new file mode 100644 index 000000000..6f5cd5374 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gicmphmulhand_proof.lean @@ -0,0 +1,17 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gicmphmulhand_proof +theorem pr40493_neg3_thm (x : BitVec 32) : x * 12#32 &&& 4#32 = x <<< 2 &&& 4#32 := sorry + +theorem pr51551_demand3bits_thm (x x_1 : BitVec 32) : + ((if + signExtend 64 (x_1 &&& 4294967289#32 ||| 1#32) * signExtend 64 x < signExtend 64 (twoPow 32 31) ∨ + twoPow 64 31 ≤ signExtend 64 (x_1 &&& 4294967289#32 ||| 1#32) * signExtend 64 x then + none + else some ((x_1 &&& 4294967289#32 ||| 1#32) * x)).bind + fun x' => some (x' &&& 7#32)) ⊑ + some (x &&& 7#32) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar.lean b/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar.lean new file mode 100644 index 000000000..78ab85756 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar.lean @@ -0,0 +1,370 @@ +import SSA.Projects.InstCombine.tests.proofs.ginverthvariablehmaskhinhmaskedhmergehscalar_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 ginverthvariablehmaskhinhmaskedhmergehscalar_statements + +def scalar_before := [llvm| +{ +^0(%arg43 : i4, %arg44 : i4, %arg45 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg45, %0 : i4 + %2 = llvm.xor %arg43, %arg44 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg44 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def scalar_after := [llvm| +{ +^0(%arg43 : i4, %arg44 : i4, %arg45 : i4): + %0 = llvm.xor %arg43, %arg44 : i4 + %1 = llvm.and %0, %arg45 : i4 + %2 = llvm.xor %1, %arg43 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem scalar_proof : scalar_before ⊑ scalar_after := by + unfold scalar_before scalar_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN scalar + apply scalar_thm + ---END scalar + + + +def in_constant_varx_mone_invmask_before := [llvm| +{ +^0(%arg41 : i4, %arg42 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg42, %0 : i4 + %2 = llvm.xor %arg41, %0 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %0 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_varx_mone_invmask_after := [llvm| +{ +^0(%arg41 : i4, %arg42 : i4): + %0 = llvm.or %arg41, %arg42 : i4 + "llvm.return"(%0) : (i4) -> () +} +] +theorem in_constant_varx_mone_invmask_proof : in_constant_varx_mone_invmask_before ⊑ in_constant_varx_mone_invmask_after := by + unfold in_constant_varx_mone_invmask_before in_constant_varx_mone_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN in_constant_varx_mone_invmask + apply in_constant_varx_mone_invmask_thm + ---END in_constant_varx_mone_invmask + + + +def in_constant_varx_6_invmask_before := [llvm| +{ +^0(%arg39 : i4, %arg40 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %2 = llvm.xor %arg40, %0 : i4 + %3 = llvm.xor %arg39, %1 : i4 + %4 = llvm.and %3, %2 : i4 + %5 = llvm.xor %4, %1 : i4 + "llvm.return"(%5) : (i4) -> () +} +] +def in_constant_varx_6_invmask_after := [llvm| +{ +^0(%arg39 : i4, %arg40 : i4): + %0 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %1 = llvm.xor %arg39, %0 : i4 + %2 = llvm.and %1, %arg40 : i4 + %3 = llvm.xor %2, %arg39 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem in_constant_varx_6_invmask_proof : in_constant_varx_6_invmask_before ⊑ in_constant_varx_6_invmask_after := by + unfold in_constant_varx_6_invmask_before in_constant_varx_6_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN in_constant_varx_6_invmask + apply in_constant_varx_6_invmask_thm + ---END in_constant_varx_6_invmask + + + +def in_constant_mone_vary_invmask_before := [llvm| +{ +^0(%arg37 : i4, %arg38 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg38, %0 : i4 + %2 = llvm.xor %0, %arg37 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg37 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def in_constant_mone_vary_invmask_after := [llvm| +{ +^0(%arg37 : i4, %arg38 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg38, %0 : i4 + %2 = llvm.or %arg37, %1 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem in_constant_mone_vary_invmask_proof : in_constant_mone_vary_invmask_before ⊑ in_constant_mone_vary_invmask_after := by + unfold in_constant_mone_vary_invmask_before in_constant_mone_vary_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN in_constant_mone_vary_invmask + apply in_constant_mone_vary_invmask_thm + ---END in_constant_mone_vary_invmask + + + +def in_constant_6_vary_invmask_before := [llvm| +{ +^0(%arg35 : i4, %arg36 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %2 = llvm.xor %arg36, %0 : i4 + %3 = llvm.xor %arg35, %1 : i4 + %4 = llvm.and %3, %2 : i4 + %5 = llvm.xor %4, %arg35 : i4 + "llvm.return"(%5) : (i4) -> () +} +] +def in_constant_6_vary_invmask_after := [llvm| +{ +^0(%arg35 : i4, %arg36 : i4): + %0 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %1 = llvm.xor %arg35, %0 : i4 + %2 = llvm.and %1, %arg36 : i4 + %3 = llvm.xor %2, %0 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem in_constant_6_vary_invmask_proof : in_constant_6_vary_invmask_before ⊑ in_constant_6_vary_invmask_after := by + unfold in_constant_6_vary_invmask_before in_constant_6_vary_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN in_constant_6_vary_invmask + apply in_constant_6_vary_invmask_thm + ---END in_constant_6_vary_invmask + + + +def c_1_0_0_before := [llvm| +{ +^0(%arg32 : i4, %arg33 : i4, %arg34 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg34, %0 : i4 + %2 = llvm.xor %arg33, %arg32 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg33 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def c_1_0_0_after := [llvm| +{ +^0(%arg32 : i4, %arg33 : i4, %arg34 : i4): + %0 = llvm.xor %arg33, %arg32 : i4 + %1 = llvm.and %0, %arg34 : i4 + %2 = llvm.xor %1, %arg32 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by + unfold c_1_0_0_before c_1_0_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN c_1_0_0 + apply c_1_0_0_thm + ---END c_1_0_0 + + + +def c_0_1_0_before := [llvm| +{ +^0(%arg29 : i4, %arg30 : i4, %arg31 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg31, %0 : i4 + %2 = llvm.xor %arg29, %arg30 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg29 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def c_0_1_0_after := [llvm| +{ +^0(%arg29 : i4, %arg30 : i4, %arg31 : i4): + %0 = llvm.xor %arg29, %arg30 : i4 + %1 = llvm.and %0, %arg31 : i4 + %2 = llvm.xor %1, %arg30 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by + unfold c_0_1_0_before c_0_1_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN c_0_1_0 + apply c_0_1_0_thm + ---END c_0_1_0 + + + +def c_1_1_0_before := [llvm| +{ +^0(%arg25 : i4, %arg26 : i4, %arg27 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg27, %0 : i4 + %2 = llvm.xor %arg26, %arg25 : i4 + %3 = llvm.and %2, %1 : i4 + %4 = llvm.xor %3, %arg25 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def c_1_1_0_after := [llvm| +{ +^0(%arg25 : i4, %arg26 : i4, %arg27 : i4): + %0 = llvm.xor %arg26, %arg25 : i4 + %1 = llvm.and %0, %arg27 : i4 + %2 = llvm.xor %1, %arg26 : i4 + "llvm.return"(%2) : (i4) -> () +} +] +theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by + unfold c_1_1_0_before c_1_1_0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN c_1_1_0 + apply c_1_1_0_thm + ---END c_1_1_0 + + + +def commutativity_constant_varx_6_invmask_before := [llvm| +{ +^0(%arg18 : i4, %arg19 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %2 = llvm.xor %arg19, %0 : i4 + %3 = llvm.xor %arg18, %1 : i4 + %4 = llvm.and %2, %3 : i4 + %5 = llvm.xor %4, %1 : i4 + "llvm.return"(%5) : (i4) -> () +} +] +def commutativity_constant_varx_6_invmask_after := [llvm| +{ +^0(%arg18 : i4, %arg19 : i4): + %0 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %1 = llvm.xor %arg18, %0 : i4 + %2 = llvm.and %1, %arg19 : i4 + %3 = llvm.xor %2, %arg18 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem commutativity_constant_varx_6_invmask_proof : commutativity_constant_varx_6_invmask_before ⊑ commutativity_constant_varx_6_invmask_after := by + unfold commutativity_constant_varx_6_invmask_before commutativity_constant_varx_6_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN commutativity_constant_varx_6_invmask + apply commutativity_constant_varx_6_invmask_thm + ---END commutativity_constant_varx_6_invmask + + + +def commutativity_constant_6_vary_invmask_before := [llvm| +{ +^0(%arg16 : i4, %arg17 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %2 = llvm.xor %arg17, %0 : i4 + %3 = llvm.xor %arg16, %1 : i4 + %4 = llvm.and %2, %3 : i4 + %5 = llvm.xor %4, %arg16 : i4 + "llvm.return"(%5) : (i4) -> () +} +] +def commutativity_constant_6_vary_invmask_after := [llvm| +{ +^0(%arg16 : i4, %arg17 : i4): + %0 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %1 = llvm.xor %arg16, %0 : i4 + %2 = llvm.and %1, %arg17 : i4 + %3 = llvm.xor %2, %0 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem commutativity_constant_6_vary_invmask_proof : commutativity_constant_6_vary_invmask_before ⊑ commutativity_constant_6_vary_invmask_after := by + unfold commutativity_constant_6_vary_invmask_before commutativity_constant_6_vary_invmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN commutativity_constant_6_vary_invmask + apply commutativity_constant_6_vary_invmask_thm + ---END commutativity_constant_6_vary_invmask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean b/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean new file mode 100644 index 000000000..8ef80f314 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/ginverthvariablehmaskhinhmaskedhmergehscalar_proof.lean @@ -0,0 +1,30 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section ginverthvariablehmaskhinhmaskedhmergehscalar_proof +theorem scalar_thm (x x_1 x_2 : BitVec 4) : + (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = (x_2 ^^^ x_1) &&& x ^^^ x_2 := sorry + +theorem in_constant_varx_mone_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 15#4) ^^^ 15#4 = x_1 ||| x := sorry + +theorem in_constant_varx_6_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 6#4) &&& (x ^^^ 15#4) ^^^ 6#4 = (x_1 ^^^ 6#4) &&& x ^^^ x_1 := sorry + +theorem in_constant_mone_vary_invmask_thm (x x_1 : BitVec 4) : (15#4 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = x_1 ||| x ^^^ 15#4 := sorry + +theorem in_constant_6_vary_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 6#4) &&& (x ^^^ 15#4) ^^^ x_1 = (x_1 ^^^ 6#4) &&& x ^^^ 6#4 := sorry + +theorem c_1_0_0_thm (x x_1 x_2 : BitVec 4) : + (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_2 = (x_2 ^^^ x_1) &&& x ^^^ x_1 := sorry + +theorem c_0_1_0_thm (x x_1 x_2 : BitVec 4) : + (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_2 = (x_2 ^^^ x_1) &&& x ^^^ x_1 := sorry + +theorem c_1_1_0_thm (x x_1 x_2 : BitVec 4) : + (x_2 ^^^ x_1) &&& (x ^^^ 15#4) ^^^ x_1 = (x_2 ^^^ x_1) &&& x ^^^ x_2 := sorry + +theorem commutativity_constant_varx_6_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 6#4) ^^^ 6#4 = (x ^^^ 6#4) &&& x_1 ^^^ x := sorry + +theorem commutativity_constant_6_vary_invmask_thm (x x_1 : BitVec 4) : (x_1 ^^^ 15#4) &&& (x ^^^ 6#4) ^^^ x = (x ^^^ 6#4) &&& x_1 ^^^ 6#4 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean index 6a18bc5f1..584274168 100644 --- a/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean +++ b/SSA/Projects/InstCombine/tests/proofs/glowhbithsplat.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section glowhbithsplat_statements - + def t0_before := [llvm| { ^0(%arg12 : i8): @@ -39,7 +39,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -73,7 +73,7 @@ theorem t1_otherbitwidth_proof : t1_otherbitwidth_before ⊑ t1_otherbitwidth_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_otherbitwidth apply t1_otherbitwidth_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/glshr.lean b/SSA/Projects/InstCombine/tests/proofs/glshr.lean index d4e45f9b2..b21bec4d1 100644 --- a/SSA/Projects/InstCombine/tests/proofs/glshr.lean +++ b/SSA/Projects/InstCombine/tests/proofs/glshr.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section glshr_statements - + def lshr_exact_before := [llvm| { ^0(%arg183 : i8): @@ -41,7 +41,7 @@ theorem lshr_exact_proof : lshr_exact_before ⊑ lshr_exact_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_exact apply lshr_exact_thm @@ -77,7 +77,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add apply shl_add_thm @@ -108,7 +108,7 @@ theorem mul_splat_fold_proof : mul_splat_fold_before ⊑ mul_splat_fold_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold apply mul_splat_fold_thm @@ -140,7 +140,7 @@ theorem shl_add_lshr_flag_preservation_proof : shl_add_lshr_flag_preservation_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr_flag_preservation apply shl_add_lshr_flag_preservation_thm @@ -172,7 +172,7 @@ theorem shl_add_lshr_proof : shl_add_lshr_before ⊑ shl_add_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr apply shl_add_lshr_thm @@ -206,7 +206,7 @@ theorem shl_add_lshr_comm_proof : shl_add_lshr_comm_before ⊑ shl_add_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_lshr_comm apply shl_add_lshr_comm_thm @@ -238,7 +238,7 @@ theorem shl_sub_lshr_proof : shl_sub_lshr_before ⊑ shl_sub_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr apply shl_sub_lshr_thm @@ -270,7 +270,7 @@ theorem shl_sub_lshr_reverse_proof : shl_sub_lshr_reverse_before ⊑ shl_sub_lsh simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse apply shl_sub_lshr_reverse_thm @@ -302,7 +302,7 @@ theorem shl_sub_lshr_reverse_no_nsw_proof : shl_sub_lshr_reverse_no_nsw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse_no_nsw apply shl_sub_lshr_reverse_no_nsw_thm @@ -334,7 +334,7 @@ theorem shl_sub_lshr_reverse_nsw_on_op1_proof : shl_sub_lshr_reverse_nsw_on_op1_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_sub_lshr_reverse_nsw_on_op1 apply shl_sub_lshr_reverse_nsw_on_op1_thm @@ -366,7 +366,7 @@ theorem shl_or_lshr_proof : shl_or_lshr_before ⊑ shl_or_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_lshr apply shl_or_lshr_thm @@ -398,7 +398,7 @@ theorem shl_or_disjoint_lshr_proof : shl_or_disjoint_lshr_before ⊑ shl_or_disj simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_disjoint_lshr apply shl_or_disjoint_lshr_thm @@ -430,7 +430,7 @@ theorem shl_or_lshr_comm_proof : shl_or_lshr_comm_before ⊑ shl_or_lshr_comm_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_lshr_comm apply shl_or_lshr_comm_thm @@ -462,7 +462,7 @@ theorem shl_or_disjoint_lshr_comm_proof : shl_or_disjoint_lshr_comm_before ⊑ s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_or_disjoint_lshr_comm apply shl_or_disjoint_lshr_comm_thm @@ -494,7 +494,7 @@ theorem shl_xor_lshr_proof : shl_xor_lshr_before ⊑ shl_xor_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_lshr apply shl_xor_lshr_thm @@ -526,7 +526,7 @@ theorem shl_xor_lshr_comm_proof : shl_xor_lshr_comm_before ⊑ shl_xor_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_xor_lshr_comm apply shl_xor_lshr_comm_thm @@ -558,7 +558,7 @@ theorem shl_and_lshr_proof : shl_and_lshr_before ⊑ shl_and_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_lshr apply shl_and_lshr_thm @@ -590,7 +590,7 @@ theorem shl_and_lshr_comm_proof : shl_and_lshr_comm_before ⊑ shl_and_lshr_comm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_and_lshr_comm apply shl_and_lshr_comm_thm @@ -622,7 +622,7 @@ theorem shl_lshr_and_exact_proof : shl_lshr_and_exact_before ⊑ shl_lshr_and_ex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_and_exact apply shl_lshr_and_exact_thm @@ -656,7 +656,7 @@ theorem mul_splat_fold_no_nuw_proof : mul_splat_fold_no_nuw_before ⊑ mul_splat simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold_no_nuw apply mul_splat_fold_no_nuw_thm @@ -687,7 +687,7 @@ theorem mul_splat_fold_too_narrow_proof : mul_splat_fold_too_narrow_before ⊑ m simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN mul_splat_fold_too_narrow apply mul_splat_fold_too_narrow_thm @@ -721,7 +721,7 @@ theorem negative_and_odd_proof : negative_and_odd_before ⊑ negative_and_odd_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN negative_and_odd apply negative_and_odd_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean index 684072c59..ff5929f32 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmaskedhmergehadd_statements - + def p_before := [llvm| { ^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): @@ -42,7 +42,7 @@ theorem p_proof : p_before ⊑ p_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p apply p_thm @@ -79,7 +79,7 @@ theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask apply p_constmask_thm @@ -116,7 +116,7 @@ theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask2 apply p_constmask2_thm @@ -153,7 +153,7 @@ theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative0 apply p_commutative0_thm @@ -190,7 +190,7 @@ theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative2 apply p_commutative2_thm @@ -227,7 +227,7 @@ theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_commutative4 apply p_commutative4_thm @@ -264,7 +264,7 @@ theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_con simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN p_constmask_commutative apply p_constmask_commutative_thm @@ -301,7 +301,7 @@ theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n2_badmask apply n2_badmask_thm @@ -336,7 +336,7 @@ theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constm simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n3_constmask_samemask apply n3_constmask_samemask_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean new file mode 100644 index 000000000..fb194a15d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors.lean @@ -0,0 +1,159 @@ +import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehandhofhors_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 gmaskedhmergehandhofhors_statements + +def p_before := [llvm| +{ +^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg75, %0 : i32 + %2 = llvm.or %1, %arg73 : i32 + %3 = llvm.or %arg74, %arg75 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_after := [llvm| +{ +^0(%arg73 : i32, %arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg75, %0 : i32 + %2 = llvm.or %arg73, %1 : i32 + %3 = llvm.or %arg74, %arg75 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_proof : p_before ⊑ p_after := by + unfold p_before p_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p + apply p_thm + ---END p + + + +def p_commutative2_before := [llvm| +{ +^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg53, %0 : i32 + %2 = llvm.or %1, %arg51 : i32 + %3 = llvm.or %arg52, %arg53 : i32 + %4 = llvm.and %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative2_after := [llvm| +{ +^0(%arg51 : i32, %arg52 : i32, %arg53 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg53, %0 : i32 + %2 = llvm.or %arg51, %1 : i32 + %3 = llvm.or %arg52, %arg53 : i32 + %4 = llvm.and %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by + unfold p_commutative2_before p_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative2 + apply p_commutative2_thm + ---END p_commutative2 + + + +def n2_badmask_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg9, %0 : i32 + %2 = llvm.or %1, %arg6 : i32 + %3 = llvm.or %arg8, %arg7 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n2_badmask_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg9, %0 : i32 + %2 = llvm.or %arg6, %1 : i32 + %3 = llvm.or %arg8, %arg7 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by + unfold n2_badmask_before n2_badmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n2_badmask + apply n2_badmask_thm + ---END n2_badmask + + + +def n3_constmask_samemask_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %1 = llvm.or %arg0, %0 : i32 + %2 = llvm.or %arg1, %0 : i32 + %3 = llvm.and %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n3_constmask_samemask_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %1 = llvm.and %arg0, %arg1 : i32 + %2 = llvm.or %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by + unfold n3_constmask_samemask_before n3_constmask_samemask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n3_constmask_samemask + apply n3_constmask_samemask_thm + ---END n3_constmask_samemask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean new file mode 100644 index 000000000..95060e9d6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehandhofhors_proof.lean @@ -0,0 +1,18 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmaskedhmergehandhofhors_proof +theorem p_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32 ||| x_1) &&& (x ||| x_2) = (x_1 ||| x_2 ^^^ 4294967295#32) &&& (x ||| x_2) := sorry + +theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : + (x_2 ||| x_1) &&& (x_1 ^^^ 4294967295#32 ||| x) = (x_2 ||| x_1) &&& (x ||| x_1 ^^^ 4294967295#32) := sorry + +theorem n2_badmask_thm (x x_1 x_2 x_3 : BitVec 32) : + (x_3 ^^^ 4294967295#32 ||| x_2) &&& (x_1 ||| x) = (x_2 ||| x_3 ^^^ 4294967295#32) &&& (x_1 ||| x) := sorry + +theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : + (x_1 ||| 4294902015#32) &&& (x ||| 4294902015#32) = x_1 &&& x ||| 4294902015#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor.lean new file mode 100644 index 000000000..89371d754 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor.lean @@ -0,0 +1,233 @@ +import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehor_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 gmaskedhmergehor_statements + +def p_before := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %2, %arg61 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_after := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %arg61, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_proof : p_before ⊑ p_after := by + unfold p_before p_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p + apply p_thm + ---END p + + + +def p_commutative0_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %2, %arg33 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative0_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %arg33, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := by + unfold p_commutative0_before p_commutative0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative0 + apply p_commutative0_thm + ---END p_commutative0 + + + +def p_commutative2_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %2, %arg28 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative2_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %arg28, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by + unfold p_commutative2_before p_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative2 + apply p_commutative2_thm + ---END p_commutative2 + + + +def p_commutative4_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %2, %arg23 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative4_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %arg23, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := by + unfold p_commutative4_before p_commutative4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative4 + apply p_commutative4_thm + ---END p_commutative4 + + + +def n2_badmask_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %2, %arg5 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n2_badmask_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %arg5, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by + unfold n2_badmask_before n2_badmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n2_badmask + apply n2_badmask_thm + ---END n2_badmask + + + +def n3_constmask_samemask_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + %2 = llvm.and %arg1, %0 : i32 + %3 = llvm.or %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n3_constmask_samemask_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.or %arg0, %arg1 : i32 + %2 = llvm.and %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by + unfold n3_constmask_samemask_before n3_constmask_samemask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n3_constmask_samemask + apply n3_constmask_samemask_thm + ---END n3_constmask_samemask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor_proof.lean new file mode 100644 index 000000000..7d8f57435 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehor_proof.lean @@ -0,0 +1,23 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmaskedhmergehor_proof +theorem p_thm (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 ||| (x_1 ^^^ 4294967295#32) &&& x = x_2 &&& x_1 ||| x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem p_commutative0_thm (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 ||| (x_2 ^^^ 4294967295#32) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 4294967295#32) := sorry + +theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 ||| x &&& x_2 = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x &&& x_2 := sorry + +theorem p_commutative4_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 ||| x_2 &&& x = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x_2 &&& x := sorry + +theorem n2_badmask_thm (x x_1 x_2 x_3 : BitVec 32) : + x_3 &&& x_2 ||| (x_1 ^^^ 4294967295#32) &&& x = x_3 &&& x_2 ||| x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : x_1 &&& 65280#32 ||| x &&& 65280#32 = (x_1 ||| x) &&& 65280#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor.lean new file mode 100644 index 000000000..901d815f9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor.lean @@ -0,0 +1,344 @@ +import SSA.Projects.InstCombine.tests.proofs.gmaskedhmergehxor_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 gmaskedhmergehxor_statements + +def p_before := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %2, %arg61 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_after := [llvm| +{ +^0(%arg60 : i32, %arg61 : i32, %arg62 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg60, %arg62 : i32 + %2 = llvm.xor %arg62, %0 : i32 + %3 = llvm.and %arg61, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_proof : p_before ⊑ p_after := by + unfold p_before p_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p + apply p_thm + ---END p + + + +def p_constmask_before := [llvm| +{ +^0(%arg49 : i32, %arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg49, %0 : i32 + %3 = llvm.and %arg50, %1 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask_after := [llvm| +{ +^0(%arg49 : i32, %arg50 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg49, %0 : i32 + %3 = llvm.and %arg50, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask_proof : p_constmask_before ⊑ p_constmask_after := by + unfold p_constmask_before p_constmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_constmask + apply p_constmask_thm + ---END p_constmask + + + +def p_constmask2_before := [llvm| +{ +^0(%arg41 : i32, %arg42 : i32): + %0 = "llvm.mlir.constant"() <{value = 61440 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg41, %0 : i32 + %3 = llvm.and %arg42, %1 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask2_after := [llvm| +{ +^0(%arg41 : i32, %arg42 : i32): + %0 = "llvm.mlir.constant"() <{value = 61440 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg41, %0 : i32 + %3 = llvm.and %arg42, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask2_proof : p_constmask2_before ⊑ p_constmask2_after := by + unfold p_constmask2_before p_constmask2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_constmask2 + apply p_constmask2_thm + ---END p_constmask2 + + + +def p_commutative0_before := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %2, %arg33 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative0_after := [llvm| +{ +^0(%arg32 : i32, %arg33 : i32, %arg34 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg34, %arg32 : i32 + %2 = llvm.xor %arg34, %0 : i32 + %3 = llvm.and %arg33, %2 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative0_proof : p_commutative0_before ⊑ p_commutative0_after := by + unfold p_commutative0_before p_commutative0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative0 + apply p_commutative0_thm + ---END p_commutative0 + + + +def p_commutative2_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %2, %arg28 : i32 + %4 = llvm.xor %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative2_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg27, %arg29 : i32 + %2 = llvm.xor %arg29, %0 : i32 + %3 = llvm.and %arg28, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative2_proof : p_commutative2_before ⊑ p_commutative2_after := by + unfold p_commutative2_before p_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative2 + apply p_commutative2_thm + ---END p_commutative2 + + + +def p_commutative4_before := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %2, %arg23 : i32 + %4 = llvm.xor %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_commutative4_after := [llvm| +{ +^0(%arg22 : i32, %arg23 : i32, %arg24 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg24, %arg22 : i32 + %2 = llvm.xor %arg24, %0 : i32 + %3 = llvm.and %arg23, %2 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_commutative4_proof : p_commutative4_before ⊑ p_commutative4_after := by + unfold p_commutative4_before p_commutative4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_commutative4 + apply p_commutative4_thm + ---END p_commutative4 + + + +def p_constmask_commutative_before := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg16, %0 : i32 + %3 = llvm.and %arg17, %1 : i32 + %4 = llvm.xor %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def p_constmask_commutative_after := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -65281 : i32}> : () -> i32 + %2 = llvm.and %arg16, %0 : i32 + %3 = llvm.and %arg17, %1 : i32 + %4 = llvm.or %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem p_constmask_commutative_proof : p_constmask_commutative_before ⊑ p_constmask_commutative_after := by + unfold p_constmask_commutative_before p_constmask_commutative_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN p_constmask_commutative + apply p_constmask_commutative_thm + ---END p_constmask_commutative + + + +def n2_badmask_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %2, %arg5 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def n2_badmask_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32, %arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg4 : i32 + %2 = llvm.xor %arg7, %0 : i32 + %3 = llvm.and %arg5, %2 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem n2_badmask_proof : n2_badmask_before ⊑ n2_badmask_after := by + unfold n2_badmask_before n2_badmask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n2_badmask + apply n2_badmask_thm + ---END n2_badmask + + + +def n3_constmask_samemask_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.and %arg0, %0 : i32 + %2 = llvm.and %arg1, %0 : i32 + %3 = llvm.xor %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def n3_constmask_samemask_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 65280 : i32}> : () -> i32 + %1 = llvm.xor %arg0, %arg1 : i32 + %2 = llvm.and %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem n3_constmask_samemask_proof : n3_constmask_samemask_before ⊑ n3_constmask_samemask_after := by + unfold n3_constmask_samemask_before n3_constmask_samemask_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN n3_constmask_samemask + apply n3_constmask_samemask_thm + ---END n3_constmask_samemask + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor_proof.lean new file mode 100644 index 000000000..b007f7901 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gmaskedhmergehxor_proof.lean @@ -0,0 +1,32 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gmaskedhmergehxor_proof +theorem p_thm (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 ^^^ (x_1 ^^^ 4294967295#32) &&& x = x_2 &&& x_1 ||| x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem p_constmask_thm (x x_1 : BitVec 32) : + x_1 &&& 65280#32 ^^^ x &&& 4294902015#32 = x_1 &&& 65280#32 ||| x &&& 4294902015#32 := sorry + +theorem p_constmask2_thm (x x_1 : BitVec 32) : + x_1 &&& 61440#32 ^^^ x &&& 4294902015#32 = x_1 &&& 61440#32 ||| x &&& 4294902015#32 := sorry + +theorem p_commutative0_thm (x x_1 x_2 : BitVec 32) : + x_2 &&& x_1 ^^^ (x_2 ^^^ 4294967295#32) &&& x = x_2 &&& x_1 ||| x &&& (x_2 ^^^ 4294967295#32) := sorry + +theorem p_commutative2_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 ^^^ x &&& x_2 = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x &&& x_2 := sorry + +theorem p_commutative4_thm (x x_1 x_2 : BitVec 32) : + (x_2 ^^^ 4294967295#32) &&& x_1 ^^^ x_2 &&& x = x_1 &&& (x_2 ^^^ 4294967295#32) ||| x_2 &&& x := sorry + +theorem p_constmask_commutative_thm (x x_1 : BitVec 32) : + x_1 &&& 4294902015#32 ^^^ x &&& 65280#32 = x_1 &&& 4294902015#32 ||| x &&& 65280#32 := sorry + +theorem n2_badmask_thm (x x_1 x_2 x_3 : BitVec 32) : + x_3 &&& x_2 ^^^ (x_1 ^^^ 4294967295#32) &&& x = x_3 &&& x_2 ^^^ x &&& (x_1 ^^^ 4294967295#32) := sorry + +theorem n3_constmask_samemask_thm (x x_1 : BitVec 32) : x_1 &&& 65280#32 ^^^ x &&& 65280#32 = (x_1 ^^^ x) &&& 65280#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean b/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean index 0c82d1a1d..542c41021 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmisch2002.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmisch2002_statements - + def missed_const_prop_2002h12h05_before := [llvm| { ^0(%arg0 : i32): @@ -40,7 +40,7 @@ theorem missed_const_prop_2002h12h05_proof : missed_const_prop_2002h12h05_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN missed_const_prop_2002h12h05 all_goals (try extract_goal ; sorry) diff --git a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean index 7c7b37e4e..6deffa1f0 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gmulhpow2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gmulhpow2_statements - + def shl_add_log_may_cause_poison_pr62175_with_nuw_before := [llvm| { ^0(%arg2 : i8, %arg3 : i8): @@ -38,7 +38,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nuw_proof : shl_add_log_may_ca simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nuw apply shl_add_log_may_cause_poison_pr62175_with_nuw_thm @@ -71,7 +71,7 @@ theorem shl_add_log_may_cause_poison_pr62175_with_nsw_proof : shl_add_log_may_ca simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_log_may_cause_poison_pr62175_with_nsw apply shl_add_log_may_cause_poison_pr62175_with_nsw_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask.lean b/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask.lean new file mode 100644 index 000000000..c1d23bdef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask.lean @@ -0,0 +1,128 @@ +import SSA.Projects.InstCombine.tests.proofs.gnegatedhbitmask_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 gnegatedhbitmask_statements + +def neg_mask1_lshr_before := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.lshr %arg22, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.sub %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def neg_mask1_lshr_after := [llvm| +{ +^0(%arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = llvm.shl %arg22, %0 : i8 + %3 = llvm.ashr %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem neg_mask1_lshr_proof : neg_mask1_lshr_before ⊑ neg_mask1_lshr_after := by + unfold neg_mask1_lshr_before neg_mask1_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_mask1_lshr + apply neg_mask1_lshr_thm + ---END neg_mask1_lshr + + + +def sub_mask1_lshr_before := [llvm| +{ +^0(%arg21 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 10 : i8}> : () -> i8 + %2 = llvm.lshr %arg21, %0 : i8 + %3 = llvm.and %2, %0 : i8 + %4 = llvm.sub %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def sub_mask1_lshr_after := [llvm| +{ +^0(%arg21 : i8): + %0 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 10 : i8}> : () -> i8 + %3 = llvm.shl %arg21, %0 : i8 + %4 = llvm.ashr %3, %1 : i8 + %5 = llvm.add %4, %2 overflow : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem sub_mask1_lshr_proof : sub_mask1_lshr_before ⊑ sub_mask1_lshr_after := by + unfold sub_mask1_lshr_before sub_mask1_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_mask1_lshr + apply sub_mask1_lshr_thm + ---END sub_mask1_lshr + + + +def neg_mask2_lshr_before := [llvm| +{ +^0(%arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.lshr %arg14, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.sub %2, %4 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def neg_mask2_lshr_after := [llvm| +{ +^0(%arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %3 = llvm.lshr %arg14, %0 : i8 + %4 = llvm.and %3, %1 : i8 + %5 = llvm.sub %2, %4 overflow : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem neg_mask2_lshr_proof : neg_mask2_lshr_before ⊑ neg_mask2_lshr_after := by + unfold neg_mask2_lshr_before neg_mask2_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_mask2_lshr + apply neg_mask2_lshr_thm + ---END neg_mask2_lshr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask_proof.lean new file mode 100644 index 000000000..ef31f47b8 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnegatedhbitmask_proof.lean @@ -0,0 +1,19 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gnegatedhbitmask_proof +theorem neg_mask1_lshr_thm (x : BitVec 8) : -(x >>> 3 &&& 1#8) = (x <<< 4).sshiftRight 7 := sorry + +theorem sub_mask1_lshr_thm (x : BitVec 8) : + some (10#8 - (x >>> 1 &&& 1#8)) ⊑ + if x.getMsbD 6 = (10#8).msb ∧ ¬((x <<< 6).sshiftRight 7 + 10#8).msb = x.getMsbD 6 then none + else some ((x <<< 6).sshiftRight 7 + 10#8) := sorry + +theorem neg_mask2_lshr_thm (x : BitVec 8) : + some (-(x >>> 3 &&& 2#8)) ⊑ + if (-signExtend 9 (x >>> 3 &&& 2#8)).msb = (-signExtend 9 (x >>> 3 &&& 2#8)).getMsbD 1 then + some (-(x >>> 3 &&& 2#8)) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gnot.lean b/SSA/Projects/InstCombine/tests/proofs/gnot.lean new file mode 100644 index 000000000..98933b8cf --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnot.lean @@ -0,0 +1,280 @@ +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 new file mode 100644 index 000000000..a72ca8276 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean @@ -0,0 +1,31 @@ + +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/gnothadd.lean b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean index 1b82a05bf..2ab5ee482 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gnothadd.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gnothadd_statements - + def basic_before := [llvm| { ^0(%arg25 : i8, %arg26 : i8): @@ -37,7 +37,7 @@ theorem basic_proof : basic_before ⊑ basic_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic apply basic_thm @@ -69,7 +69,7 @@ theorem basic_com_add_proof : basic_com_add_before ⊑ basic_com_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_com_add apply basic_com_add_thm @@ -101,7 +101,7 @@ theorem basic_preserve_nsw_proof : basic_preserve_nsw_before ⊑ basic_preserve_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nsw apply basic_preserve_nsw_thm @@ -133,7 +133,7 @@ theorem basic_preserve_nuw_proof : basic_preserve_nuw_before ⊑ basic_preserve_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nuw apply basic_preserve_nuw_thm @@ -165,7 +165,7 @@ theorem basic_preserve_nuw_nsw_proof : basic_preserve_nuw_nsw_before ⊑ basic_p simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN basic_preserve_nuw_nsw apply basic_preserve_nuw_nsw_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gorhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxor.lean new file mode 100644 index 000000000..c79c6114d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gorhxor.lean @@ -0,0 +1,2499 @@ +import SSA.Projects.InstCombine.tests.proofs.gorhxor_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 gorhxor_statements + +def test1_before := [llvm| +{ +^0(%arg232 : i32, %arg233 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg232, %arg233 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.or %arg232, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg232 : i32, %arg233 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg233, %0 : i32 + %2 = llvm.or %arg232, %1 : i32 + "llvm.return"(%2) : (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 test2_before := [llvm| +{ +^0(%arg230 : i32, %arg231 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg230, %arg231 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.or %arg231, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test2_after := [llvm| +{ +^0(%arg230 : i32, %arg231 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg230, %0 : i32 + %2 = llvm.or %arg231, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +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(%arg228 : i32, %arg229 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg228, %arg229 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.or %arg228, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg228 : i32, %arg229 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg229, %0 : i32 + %2 = llvm.or %arg228, %1 : i32 + "llvm.return"(%2) : (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 test4_before := [llvm| +{ +^0(%arg226 : i32, %arg227 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg226, %arg227 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.or %arg227, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test4_after := [llvm| +{ +^0(%arg226 : i32, %arg227 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg226, %0 : i32 + %2 = llvm.or %arg227, %1 : i32 + "llvm.return"(%2) : (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 test5_before := [llvm| +{ +^0(%arg224 : i32, %arg225 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg224, %arg225 : i32 + %2 = llvm.xor %arg224, %0 : i32 + %3 = llvm.or %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test5_after := [llvm| +{ +^0(%arg224 : i32, %arg225 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg224, %arg225 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test5_proof : test5_before ⊑ test5_after := by + unfold test5_before test5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5 + apply test5_thm + ---END test5 + + + +def test5_commuted_x_y_before := [llvm| +{ +^0(%arg220 : i64, %arg221 : i64): + %0 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 + %1 = llvm.xor %arg221, %arg220 : i64 + %2 = llvm.xor %arg220, %0 : i64 + %3 = llvm.or %1, %2 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def test5_commuted_x_y_after := [llvm| +{ +^0(%arg220 : i64, %arg221 : i64): + %0 = "llvm.mlir.constant"() <{value = -1 : i64}> : () -> i64 + %1 = llvm.and %arg221, %arg220 : i64 + %2 = llvm.xor %1, %0 : i64 + "llvm.return"(%2) : (i64) -> () +} +] +theorem test5_commuted_x_y_proof : test5_commuted_x_y_before ⊑ test5_commuted_x_y_after := by + unfold test5_commuted_x_y_before test5_commuted_x_y_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test5_commuted_x_y + apply test5_commuted_x_y_thm + ---END test5_commuted_x_y + + + +def xor_common_op_commute0_before := [llvm| +{ +^0(%arg208 : i8, %arg209 : i8): + %0 = llvm.xor %arg208, %arg209 : i8 + %1 = llvm.or %0, %arg208 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def xor_common_op_commute0_after := [llvm| +{ +^0(%arg208 : i8, %arg209 : i8): + %0 = llvm.or %arg209, %arg208 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem xor_common_op_commute0_proof : xor_common_op_commute0_before ⊑ xor_common_op_commute0_after := by + unfold xor_common_op_commute0_before xor_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_common_op_commute0 + apply xor_common_op_commute0_thm + ---END xor_common_op_commute0 + + + +def xor_common_op_commute2_before := [llvm| +{ +^0(%arg204 : i8, %arg205 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = llvm.xor %arg204, %0 : i8 + %2 = llvm.xor %1, %arg205 : i8 + %3 = llvm.or %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def xor_common_op_commute2_after := [llvm| +{ +^0(%arg204 : i8, %arg205 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = llvm.xor %arg204, %0 : i8 + %2 = llvm.or %1, %arg205 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem xor_common_op_commute2_proof : xor_common_op_commute2_before ⊑ xor_common_op_commute2_after := by + unfold xor_common_op_commute2_before 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 xor_common_op_commute2 + apply xor_common_op_commute2_thm + ---END xor_common_op_commute2 + + + +def xor_common_op_commute3_before := [llvm| +{ +^0(%arg202 : i8, %arg203 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = llvm.xor %arg202, %0 : i8 + %2 = llvm.mul %arg203, %arg203 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.or %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def xor_common_op_commute3_after := [llvm| +{ +^0(%arg202 : i8, %arg203 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = llvm.xor %arg202, %0 : i8 + %2 = llvm.mul %arg203, %arg203 : i8 + %3 = llvm.or %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_common_op_commute3_proof : xor_common_op_commute3_before ⊑ xor_common_op_commute3_after := by + unfold xor_common_op_commute3_before xor_common_op_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_common_op_commute3 + apply xor_common_op_commute3_thm + ---END xor_common_op_commute3 + + + +def test8_before := [llvm| +{ +^0(%arg200 : i32, %arg201 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg201, %0 : i32 + %2 = llvm.xor %arg200, %1 : i32 + %3 = llvm.or %arg201, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg200 : i32, %arg201 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg200, %0 : i32 + %2 = llvm.or %arg201, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test8 + apply test8_thm + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg198, %0 : i32 + %2 = llvm.xor %1, %arg199 : i32 + %3 = llvm.or %arg198, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg198 : i32, %arg199 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg199, %0 : i32 + %2 = llvm.or %arg198, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +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(%arg196 : i32, %arg197 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg197, %arg196 : i32 + %2 = llvm.xor %arg196, %0 : i32 + %3 = llvm.xor %2, %arg197 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test10_after := [llvm| +{ +^0(%arg196 : i32, %arg197 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg197, %arg196 : i32 + %2 = llvm.xor %arg196, %arg197 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +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 test10_commuted_before := [llvm| +{ +^0(%arg194 : i32, %arg195 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg195, %arg194 : i32 + %2 = llvm.xor %arg194, %0 : i32 + %3 = llvm.xor %2, %arg195 : i32 + %4 = llvm.or %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test10_commuted_after := [llvm| +{ +^0(%arg194 : i32, %arg195 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg195, %arg194 : i32 + %2 = llvm.xor %arg194, %arg195 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem test10_commuted_proof : test10_commuted_before ⊑ test10_commuted_after := by + unfold test10_commuted_before test10_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test10_commuted + apply test10_commuted_thm + ---END test10_commuted + + + +def test11_before := [llvm| +{ +^0(%arg184 : i32, %arg185 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg184, %arg185 : i32 + %2 = llvm.xor %arg184, %0 : i32 + %3 = llvm.xor %2, %arg185 : i32 + %4 = llvm.and %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test11_after := [llvm| +{ +^0(%arg184 : i32, %arg185 : i32): + %0 = llvm.and %arg185, %arg184 : i32 + "llvm.return"(%0) : (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(%arg182 : i32, %arg183 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg182, %0 : i32 + %2 = llvm.xor %1, %arg183 : i32 + %3 = llvm.or %arg182, %arg183 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg182 : i32, %arg183 : i32): + %0 = llvm.and %arg183, %arg182 : i32 + "llvm.return"(%0) : (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 test12_commuted_before := [llvm| +{ +^0(%arg180 : i32, %arg181 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg180, %0 : i32 + %2 = llvm.xor %1, %arg181 : i32 + %3 = llvm.or %arg181, %arg180 : i32 + %4 = llvm.and %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def test12_commuted_after := [llvm| +{ +^0(%arg180 : i32, %arg181 : i32): + %0 = llvm.and %arg181, %arg180 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test12_commuted_proof : test12_commuted_before ⊑ test12_commuted_after := by + unfold test12_commuted_before test12_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test12_commuted + apply test12_commuted_thm + ---END test12_commuted + + + +def test13_before := [llvm| +{ +^0(%arg178 : i32, %arg179 : i32): + %0 = llvm.xor %arg179, %arg178 : i32 + %1 = llvm.or %arg179, %arg178 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg178 : i32, %arg179 : i32): + %0 = llvm.and %arg178, %arg179 : i32 + "llvm.return"(%0) : (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(%arg176 : i32, %arg177 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg177, %0 : i32 + %2 = llvm.xor %arg176, %0 : i32 + %3 = llvm.or %arg176, %1 : i32 + %4 = llvm.or %2, %arg177 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test14_after := [llvm| +{ +^0(%arg176 : i32, %arg177 : i32): + %0 = llvm.xor %arg176, %arg177 : i32 + "llvm.return"(%0) : (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 + + + +def test14_commuted_before := [llvm| +{ +^0(%arg174 : i32, %arg175 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg175, %0 : i32 + %2 = llvm.xor %arg174, %0 : i32 + %3 = llvm.or %1, %arg174 : i32 + %4 = llvm.or %2, %arg175 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test14_commuted_after := [llvm| +{ +^0(%arg174 : i32, %arg175 : i32): + %0 = llvm.xor %arg174, %arg175 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test14_commuted_proof : test14_commuted_before ⊑ test14_commuted_after := by + unfold test14_commuted_before test14_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test14_commuted + apply test14_commuted_thm + ---END test14_commuted + + + +def test15_before := [llvm| +{ +^0(%arg172 : i32, %arg173 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg173, %0 : i32 + %2 = llvm.xor %arg172, %0 : i32 + %3 = llvm.and %arg172, %1 : i32 + %4 = llvm.and %2, %arg173 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test15_after := [llvm| +{ +^0(%arg172 : i32, %arg173 : i32): + %0 = llvm.xor %arg172, %arg173 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +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 test15_commuted_before := [llvm| +{ +^0(%arg170 : i32, %arg171 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg171, %0 : i32 + %2 = llvm.xor %arg170, %0 : i32 + %3 = llvm.and %1, %arg170 : i32 + %4 = llvm.and %2, %arg171 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test15_commuted_after := [llvm| +{ +^0(%arg170 : i32, %arg171 : i32): + %0 = llvm.xor %arg170, %arg171 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test15_commuted_proof : test15_commuted_before ⊑ test15_commuted_after := by + unfold test15_commuted_before test15_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test15_commuted + apply test15_commuted_thm + ---END test15_commuted + + + +def or_and_xor_not_constant_commute0_before := [llvm| +{ +^0(%arg168 : i32, %arg169 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %2 = llvm.xor %arg168, %arg169 : i32 + %3 = llvm.and %2, %0 : i32 + %4 = llvm.and %arg169, %1 : i32 + %5 = llvm.or %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def or_and_xor_not_constant_commute0_after := [llvm| +{ +^0(%arg168 : i32, %arg169 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.and %arg168, %0 : i32 + %2 = llvm.xor %1, %arg169 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_and_xor_not_constant_commute0_proof : or_and_xor_not_constant_commute0_before ⊑ or_and_xor_not_constant_commute0_after := by + unfold or_and_xor_not_constant_commute0_before or_and_xor_not_constant_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and_xor_not_constant_commute0 + apply or_and_xor_not_constant_commute0_thm + ---END or_and_xor_not_constant_commute0 + + + +def or_and_xor_not_constant_commute1_before := [llvm| +{ +^0(%arg166 : i9, %arg167 : i9): + %0 = "llvm.mlir.constant"() <{value = 42 : i9}> : () -> i9 + %1 = "llvm.mlir.constant"() <{value = -43 : i9}> : () -> i9 + %2 = llvm.xor %arg167, %arg166 : i9 + %3 = llvm.and %2, %0 : i9 + %4 = llvm.and %arg167, %1 : i9 + %5 = llvm.or %3, %4 : i9 + "llvm.return"(%5) : (i9) -> () +} +] +def or_and_xor_not_constant_commute1_after := [llvm| +{ +^0(%arg166 : i9, %arg167 : i9): + %0 = "llvm.mlir.constant"() <{value = 42 : i9}> : () -> i9 + %1 = llvm.and %arg166, %0 : i9 + %2 = llvm.xor %1, %arg167 : i9 + "llvm.return"(%2) : (i9) -> () +} +] +theorem or_and_xor_not_constant_commute1_proof : or_and_xor_not_constant_commute1_before ⊑ or_and_xor_not_constant_commute1_after := by + unfold or_and_xor_not_constant_commute1_before or_and_xor_not_constant_commute1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_and_xor_not_constant_commute1 + apply or_and_xor_not_constant_commute1_thm + ---END or_and_xor_not_constant_commute1 + + + +def not_or_xor_before := [llvm| +{ +^0(%arg160 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %3 = llvm.xor %arg160, %0 : i8 + %4 = llvm.or %3, %1 : i8 + %5 = llvm.xor %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def not_or_xor_after := [llvm| +{ +^0(%arg160 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -13 : i8}> : () -> i8 + %2 = llvm.and %arg160, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem not_or_xor_proof : not_or_xor_before ⊑ not_or_xor_after := by + unfold not_or_xor_before not_or_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN not_or_xor + apply not_or_xor_thm + ---END not_or_xor + + + +def xor_or_before := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = 32 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = llvm.xor %arg159, %0 : i8 + %3 = llvm.or %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def xor_or_after := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 39 : i8}> : () -> i8 + %2 = llvm.and %arg159, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_or_proof : xor_or_before ⊑ xor_or_after := by + unfold xor_or_before xor_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_or + apply xor_or_thm + ---END xor_or + + + +def xor_or2_before := [llvm| +{ +^0(%arg158 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = llvm.xor %arg158, %0 : i8 + %3 = llvm.or %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def xor_or2_after := [llvm| +{ +^0(%arg158 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 39 : i8}> : () -> i8 + %2 = llvm.and %arg158, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_or2_proof : xor_or2_before ⊑ xor_or2_after := by + unfold xor_or2_before xor_or2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_or2 + apply xor_or2_thm + ---END xor_or2 + + + +def xor_or_xor_before := [llvm| +{ +^0(%arg157 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %3 = llvm.xor %arg157, %0 : i8 + %4 = llvm.or %3, %1 : i8 + %5 = llvm.xor %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def xor_or_xor_after := [llvm| +{ +^0(%arg157 : i8): + %0 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 43 : i8}> : () -> i8 + %2 = llvm.and %arg157, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem xor_or_xor_proof : xor_or_xor_before ⊑ xor_or_xor_after := by + unfold xor_or_xor_before xor_or_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_or_xor + apply xor_or_xor_thm + ---END xor_or_xor + + + +def or_xor_or_before := [llvm| +{ +^0(%arg156 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %3 = llvm.or %arg156, %0 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def or_xor_or_after := [llvm| +{ +^0(%arg156 : i8): + %0 = "llvm.mlir.constant"() <{value = -40 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 47 : i8}> : () -> i8 + %2 = llvm.and %arg156, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem or_xor_or_proof : or_xor_or_before ⊑ or_xor_or_after := by + unfold or_xor_or_before or_xor_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_or + apply or_xor_or_thm + ---END or_xor_or + + + +def test17_before := [llvm| +{ +^0(%arg154 : i8, %arg155 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg155, %arg154 : i8 + %2 = llvm.xor %arg154, %0 : i8 + %3 = llvm.xor %2, %arg155 : i8 + %4 = llvm.or %1, %3 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def test17_after := [llvm| +{ +^0(%arg154 : i8, %arg155 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg155, %arg154 : i8 + %2 = llvm.xor %arg154, %arg155 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.or %1, %3 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem test17_proof : test17_before ⊑ test17_after := by + unfold test17_before test17_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test17 + apply test17_thm + ---END test17 + + + +def test18_before := [llvm| +{ +^0(%arg152 : i8, %arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg153, %arg152 : i8 + %2 = llvm.xor %arg152, %0 : i8 + %3 = llvm.xor %2, %arg153 : i8 + %4 = llvm.or %3, %1 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def test18_after := [llvm| +{ +^0(%arg152 : i8, %arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = 33 : i8}> : () -> i8 + %1 = llvm.xor %arg153, %arg152 : i8 + %2 = llvm.xor %arg152, %arg153 : i8 + %3 = llvm.xor %2, %0 : i8 + %4 = llvm.or %3, %1 : i8 + %5 = llvm.mul %4, %3 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem test18_proof : test18_before ⊑ test18_after := by + unfold test18_before test18_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test18 + apply test18_thm + ---END test18 + + + +def test19_before := [llvm| +{ +^0(%arg150 : i32, %arg151 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg151, %0 : i32 + %2 = llvm.xor %arg150, %0 : i32 + %3 = llvm.or %arg150, %arg151 : i32 + %4 = llvm.or %2, %1 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test19_after := [llvm| +{ +^0(%arg150 : i32, %arg151 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg150, %arg151 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test19_proof : test19_before ⊑ test19_after := by + unfold test19_before test19_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19 + apply test19_thm + ---END test19 + + + +def test20_before := [llvm| +{ +^0(%arg148 : i32, %arg149 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg149, %0 : i32 + %2 = llvm.xor %arg148, %0 : i32 + %3 = llvm.or %arg148, %arg149 : i32 + %4 = llvm.or %1, %2 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test20_after := [llvm| +{ +^0(%arg148 : i32, %arg149 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg148, %arg149 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test20_proof : test20_before ⊑ test20_after := by + unfold test20_before test20_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test20 + apply test20_thm + ---END test20 + + + +def test21_before := [llvm| +{ +^0(%arg146 : i32, %arg147 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg147, %0 : i32 + %2 = llvm.xor %arg146, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = llvm.or %arg146, %arg147 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test21_after := [llvm| +{ +^0(%arg146 : i32, %arg147 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg146, %arg147 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test21_proof : test21_before ⊑ test21_after := by + unfold test21_before test21_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test21 + apply test21_thm + ---END test21 + + + +def test22_before := [llvm| +{ +^0(%arg144 : i32, %arg145 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg145, %0 : i32 + %2 = llvm.xor %arg144, %0 : i32 + %3 = llvm.or %2, %1 : i32 + %4 = llvm.or %arg145, %arg144 : i32 + %5 = llvm.xor %3, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test22_after := [llvm| +{ +^0(%arg144 : i32, %arg145 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg145, %arg144 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test22_proof : test22_before ⊑ test22_after := by + unfold test22_before test22_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test22 + apply test22_thm + ---END test22 + + + +def test23_before := [llvm| +{ +^0(%arg143 : i8): + %0 = "llvm.mlir.constant"() <{value = -2 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %3 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %4 = llvm.or %arg143, %0 : i8 + %5 = llvm.xor %4, %1 : i8 + %6 = llvm.or %5, %2 : i8 + %7 = llvm.xor %6, %3 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def test23_after := [llvm| +{ +^0(%arg143 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem test23_proof : test23_before ⊑ test23_after := by + unfold test23_before test23_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test23 + apply test23_thm + ---END test23 + + + +def PR45977_f1_before := [llvm| +{ +^0(%arg140 : i32, %arg141 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg140, %0 : i32 + %2 = llvm.and %1, %arg141 : i32 + %3 = llvm.or %arg140, %arg141 : i32 + %4 = llvm.xor %3, %0 : i32 + %5 = llvm.or %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def PR45977_f1_after := [llvm| +{ +^0(%arg140 : i32, %arg141 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg140, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem PR45977_f1_proof : PR45977_f1_before ⊑ PR45977_f1_after := by + unfold PR45977_f1_before PR45977_f1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR45977_f1 + apply PR45977_f1_thm + ---END PR45977_f1 + + + +def PR45977_f2_before := [llvm| +{ +^0(%arg138 : i32, %arg139 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg138, %arg139 : i32 + %2 = llvm.xor %arg139, %0 : i32 + %3 = llvm.or %arg138, %2 : i32 + %4 = llvm.xor %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def PR45977_f2_after := [llvm| +{ +^0(%arg138 : i32, %arg139 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg138, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem PR45977_f2_proof : PR45977_f2_before ⊑ PR45977_f2_after := by + unfold PR45977_f2_before PR45977_f2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR45977_f2 + apply PR45977_f2_thm + ---END PR45977_f2 + + + +def or_xor_common_op_commute0_before := [llvm| +{ +^0(%arg135 : i8, %arg136 : i8, %arg137 : i8): + %0 = llvm.or %arg135, %arg136 : i8 + %1 = llvm.xor %arg135, %arg137 : i8 + %2 = llvm.or %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def or_xor_common_op_commute0_after := [llvm| +{ +^0(%arg135 : i8, %arg136 : i8, %arg137 : i8): + %0 = llvm.or %arg135, %arg136 : i8 + %1 = llvm.or %0, %arg137 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem or_xor_common_op_commute0_proof : or_xor_common_op_commute0_before ⊑ or_xor_common_op_commute0_after := by + unfold or_xor_common_op_commute0_before or_xor_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_common_op_commute0 + apply or_xor_common_op_commute0_thm + ---END or_xor_common_op_commute0 + + + +def or_xor_common_op_commute5_before := [llvm| +{ +^0(%arg120 : i8, %arg121 : i8, %arg122 : i8): + %0 = llvm.or %arg121, %arg120 : i8 + %1 = llvm.xor %arg120, %arg122 : i8 + %2 = llvm.or %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def or_xor_common_op_commute5_after := [llvm| +{ +^0(%arg120 : i8, %arg121 : i8, %arg122 : i8): + %0 = llvm.or %arg121, %arg120 : i8 + %1 = llvm.or %0, %arg122 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem or_xor_common_op_commute5_proof : or_xor_common_op_commute5_before ⊑ or_xor_common_op_commute5_after := by + unfold or_xor_common_op_commute5_before or_xor_common_op_commute5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_common_op_commute5 + apply or_xor_common_op_commute5_thm + ---END or_xor_common_op_commute5 + + + +def or_xor_common_op_commute6_before := [llvm| +{ +^0(%arg117 : i8, %arg118 : i8, %arg119 : i8): + %0 = llvm.or %arg117, %arg118 : i8 + %1 = llvm.xor %arg119, %arg117 : i8 + %2 = llvm.or %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def or_xor_common_op_commute6_after := [llvm| +{ +^0(%arg117 : i8, %arg118 : i8, %arg119 : i8): + %0 = llvm.or %arg117, %arg118 : i8 + %1 = llvm.or %0, %arg119 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem or_xor_common_op_commute6_proof : or_xor_common_op_commute6_before ⊑ or_xor_common_op_commute6_after := by + unfold or_xor_common_op_commute6_before or_xor_common_op_commute6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_common_op_commute6 + apply or_xor_common_op_commute6_thm + ---END or_xor_common_op_commute6 + + + +def or_xor_common_op_commute7_before := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8, %arg116 : i8): + %0 = llvm.or %arg115, %arg114 : i8 + %1 = llvm.xor %arg116, %arg114 : i8 + %2 = llvm.or %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def or_xor_common_op_commute7_after := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8, %arg116 : i8): + %0 = llvm.or %arg115, %arg114 : i8 + %1 = llvm.or %0, %arg116 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem or_xor_common_op_commute7_proof : or_xor_common_op_commute7_before ⊑ or_xor_common_op_commute7_after := by + unfold or_xor_common_op_commute7_before or_xor_common_op_commute7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_common_op_commute7 + apply or_xor_common_op_commute7_thm + ---END or_xor_common_op_commute7 + + + +def or_not_xor_common_op_commute0_before := [llvm| +{ +^0(%arg107 : i4, %arg108 : i4, %arg109 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.xor %arg107, %0 : i4 + %2 = llvm.xor %arg107, %arg108 : i4 + %3 = llvm.or %1, %arg109 : i4 + %4 = llvm.or %3, %2 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def or_not_xor_common_op_commute0_after := [llvm| +{ +^0(%arg107 : i4, %arg108 : i4, %arg109 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.and %arg107, %arg108 : i4 + %2 = llvm.xor %1, %0 : i4 + %3 = llvm.or %arg109, %2 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem or_not_xor_common_op_commute0_proof : or_not_xor_common_op_commute0_before ⊑ or_not_xor_common_op_commute0_after := by + unfold or_not_xor_common_op_commute0_before or_not_xor_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_not_xor_common_op_commute0 + apply or_not_xor_common_op_commute0_thm + ---END or_not_xor_common_op_commute0 + + + +def or_not_xor_common_op_commute2_before := [llvm| +{ +^0(%arg101 : i8, %arg102 : i8, %arg103 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg103 : i8 + %3 = llvm.xor %arg101, %1 : i8 + %4 = llvm.xor %arg101, %arg102 : i8 + %5 = llvm.or %2, %3 : i8 + %6 = llvm.or %4, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def or_not_xor_common_op_commute2_after := [llvm| +{ +^0(%arg101 : i8, %arg102 : i8, %arg103 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg103 : i8 + %3 = llvm.and %arg101, %arg102 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem or_not_xor_common_op_commute2_proof : or_not_xor_common_op_commute2_before ⊑ or_not_xor_common_op_commute2_after := by + unfold or_not_xor_common_op_commute2_before or_not_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 or_not_xor_common_op_commute2 + apply or_not_xor_common_op_commute2_thm + ---END or_not_xor_common_op_commute2 + + + +def or_not_xor_common_op_commute3_before := [llvm| +{ +^0(%arg98 : i8, %arg99 : i8, %arg100 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg100 : i8 + %3 = llvm.xor %arg98, %1 : i8 + %4 = llvm.xor %arg98, %arg99 : i8 + %5 = llvm.or %2, %3 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def or_not_xor_common_op_commute3_after := [llvm| +{ +^0(%arg98 : i8, %arg99 : i8, %arg100 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg100 : i8 + %3 = llvm.and %arg98, %arg99 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem or_not_xor_common_op_commute3_proof : or_not_xor_common_op_commute3_before ⊑ or_not_xor_common_op_commute3_after := by + unfold or_not_xor_common_op_commute3_before or_not_xor_common_op_commute3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_not_xor_common_op_commute3 + apply or_not_xor_common_op_commute3_thm + ---END or_not_xor_common_op_commute3 + + + +def or_not_xor_common_op_commute5_before := [llvm| +{ +^0(%arg92 : i8, %arg93 : i8, %arg94 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg92, %0 : i8 + %2 = llvm.xor %arg93, %arg92 : i8 + %3 = llvm.or %1, %arg94 : i8 + %4 = llvm.or %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def or_not_xor_common_op_commute5_after := [llvm| +{ +^0(%arg92 : i8, %arg93 : i8, %arg94 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.and %arg93, %arg92 : i8 + %2 = llvm.xor %1, %0 : i8 + %3 = llvm.or %arg94, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +theorem or_not_xor_common_op_commute5_proof : or_not_xor_common_op_commute5_before ⊑ or_not_xor_common_op_commute5_after := by + unfold or_not_xor_common_op_commute5_before or_not_xor_common_op_commute5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_not_xor_common_op_commute5 + apply or_not_xor_common_op_commute5_thm + ---END or_not_xor_common_op_commute5 + + + +def or_not_xor_common_op_commute6_before := [llvm| +{ +^0(%arg89 : i8, %arg90 : i8, %arg91 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg91 : i8 + %3 = llvm.xor %arg89, %1 : i8 + %4 = llvm.xor %arg90, %arg89 : i8 + %5 = llvm.or %2, %3 : i8 + %6 = llvm.or %4, %5 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def or_not_xor_common_op_commute6_after := [llvm| +{ +^0(%arg89 : i8, %arg90 : i8, %arg91 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg91 : i8 + %3 = llvm.and %arg90, %arg89 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem or_not_xor_common_op_commute6_proof : or_not_xor_common_op_commute6_before ⊑ or_not_xor_common_op_commute6_after := by + unfold or_not_xor_common_op_commute6_before or_not_xor_common_op_commute6_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_not_xor_common_op_commute6 + apply or_not_xor_common_op_commute6_thm + ---END or_not_xor_common_op_commute6 + + + +def or_not_xor_common_op_commute7_before := [llvm| +{ +^0(%arg86 : i8, %arg87 : i8, %arg88 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg88 : i8 + %3 = llvm.xor %arg86, %1 : i8 + %4 = llvm.xor %arg87, %arg86 : i8 + %5 = llvm.or %2, %3 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +def or_not_xor_common_op_commute7_after := [llvm| +{ +^0(%arg86 : i8, %arg87 : i8, %arg88 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg88 : i8 + %3 = llvm.and %arg87, %arg86 : i8 + %4 = llvm.xor %3, %1 : i8 + %5 = llvm.or %4, %2 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem or_not_xor_common_op_commute7_proof : or_not_xor_common_op_commute7_before ⊑ or_not_xor_common_op_commute7_after := by + unfold or_not_xor_common_op_commute7_before or_not_xor_common_op_commute7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_not_xor_common_op_commute7 + apply or_not_xor_common_op_commute7_thm + ---END or_not_xor_common_op_commute7 + + + +def or_nand_xor_common_op_commute0_before := [llvm| +{ +^0(%arg77 : i4, %arg78 : i4, %arg79 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.and %arg77, %arg79 : i4 + %2 = llvm.xor %1, %0 : i4 + %3 = llvm.xor %arg77, %arg78 : i4 + %4 = llvm.or %2, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def or_nand_xor_common_op_commute0_after := [llvm| +{ +^0(%arg77 : i4, %arg78 : i4, %arg79 : i4): + %0 = "llvm.mlir.constant"() <{value = -1 : i4}> : () -> i4 + %1 = llvm.and %arg77, %arg79 : i4 + %2 = llvm.and %1, %arg78 : i4 + %3 = llvm.xor %2, %0 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem or_nand_xor_common_op_commute0_proof : or_nand_xor_common_op_commute0_before ⊑ or_nand_xor_common_op_commute0_after := by + unfold or_nand_xor_common_op_commute0_before or_nand_xor_common_op_commute0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nand_xor_common_op_commute0 + apply or_nand_xor_common_op_commute0_thm + ---END or_nand_xor_common_op_commute0 + + + +def PR75692_1_before := [llvm| +{ +^0(%arg61 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -5 : i32}> : () -> i32 + %2 = llvm.xor %arg61, %0 : i32 + %3 = llvm.xor %arg61, %1 : i32 + %4 = llvm.or %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def PR75692_1_after := [llvm| +{ +^0(%arg61 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem PR75692_1_proof : PR75692_1_before ⊑ PR75692_1_after := by + unfold PR75692_1_before PR75692_1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN PR75692_1 + apply PR75692_1_thm + ---END PR75692_1 + + + +def or_xor_not_before := [llvm| +{ +^0(%arg56 : i32, %arg57 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg57, %0 : i32 + %2 = llvm.xor %arg56, %1 : i32 + %3 = llvm.or %2, %arg57 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_xor_not_after := [llvm| +{ +^0(%arg56 : i32, %arg57 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg56, %0 : i32 + %2 = llvm.or %arg57, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem or_xor_not_proof : or_xor_not_before ⊑ or_xor_not_after := by + unfold or_xor_not_before or_xor_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_not + apply or_xor_not_thm + ---END or_xor_not + + + +def or_xor_and_commuted1_before := [llvm| +{ +^0(%arg50 : i32, %arg51 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg51, %arg51 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.xor %2, %arg50 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def or_xor_and_commuted1_after := [llvm| +{ +^0(%arg50 : i32, %arg51 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg51, %arg51 : i32 + %2 = llvm.xor %arg50, %0 : i32 + %3 = llvm.or %1, %2 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_xor_and_commuted1_proof : or_xor_and_commuted1_before ⊑ or_xor_and_commuted1_after := by + unfold or_xor_and_commuted1_before or_xor_and_commuted1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_and_commuted1 + apply or_xor_and_commuted1_thm + ---END or_xor_and_commuted1 + + + +def or_xor_and_commuted2_before := [llvm| +{ +^0(%arg48 : i32, %arg49 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg49, %arg49 : i32 + %2 = llvm.mul %arg48, %arg48 : i32 + %3 = llvm.xor %1, %0 : i32 + %4 = llvm.xor %2, %3 : i32 + %5 = llvm.or %4, %1 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def or_xor_and_commuted2_after := [llvm| +{ +^0(%arg48 : i32, %arg49 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.mul %arg49, %arg49 : i32 + %2 = llvm.mul %arg48, %arg48 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.or %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem or_xor_and_commuted2_proof : or_xor_and_commuted2_before ⊑ or_xor_and_commuted2_after := by + unfold or_xor_and_commuted2_before or_xor_and_commuted2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_and_commuted2 + apply or_xor_and_commuted2_thm + ---END or_xor_and_commuted2 + + + +def or_xor_tree_0000_before := [llvm| +{ +^0(%arg45 : i32, %arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg45, %0 : i32 + %2 = llvm.mul %arg46, %0 : i32 + %3 = llvm.mul %arg47, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0000_after := [llvm| +{ +^0(%arg45 : i32, %arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg45, %0 : i32 + %2 = llvm.mul %arg46, %0 : i32 + %3 = llvm.mul %arg47, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0000_proof : or_xor_tree_0000_before ⊑ or_xor_tree_0000_after := by + unfold or_xor_tree_0000_before or_xor_tree_0000_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0000 + apply or_xor_tree_0000_thm + ---END or_xor_tree_0000 + + + +def or_xor_tree_0001_before := [llvm| +{ +^0(%arg42 : i32, %arg43 : i32, %arg44 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg42, %0 : i32 + %2 = llvm.mul %arg43, %0 : i32 + %3 = llvm.mul %arg44, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0001_after := [llvm| +{ +^0(%arg42 : i32, %arg43 : i32, %arg44 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg42, %0 : i32 + %2 = llvm.mul %arg43, %0 : i32 + %3 = llvm.mul %arg44, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0001_proof : or_xor_tree_0001_before ⊑ or_xor_tree_0001_after := by + unfold or_xor_tree_0001_before or_xor_tree_0001_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0001 + apply or_xor_tree_0001_thm + ---END or_xor_tree_0001 + + + +def or_xor_tree_0010_before := [llvm| +{ +^0(%arg39 : i32, %arg40 : i32, %arg41 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg39, %0 : i32 + %2 = llvm.mul %arg40, %0 : i32 + %3 = llvm.mul %arg41, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0010_after := [llvm| +{ +^0(%arg39 : i32, %arg40 : i32, %arg41 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg39, %0 : i32 + %2 = llvm.mul %arg40, %0 : i32 + %3 = llvm.mul %arg41, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0010_proof : or_xor_tree_0010_before ⊑ or_xor_tree_0010_after := by + unfold or_xor_tree_0010_before or_xor_tree_0010_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0010 + apply or_xor_tree_0010_thm + ---END or_xor_tree_0010 + + + +def or_xor_tree_0011_before := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32, %arg38 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg36, %0 : i32 + %2 = llvm.mul %arg37, %0 : i32 + %3 = llvm.mul %arg38, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0011_after := [llvm| +{ +^0(%arg36 : i32, %arg37 : i32, %arg38 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg36, %0 : i32 + %2 = llvm.mul %arg37, %0 : i32 + %3 = llvm.mul %arg38, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0011_proof : or_xor_tree_0011_before ⊑ or_xor_tree_0011_after := by + unfold or_xor_tree_0011_before or_xor_tree_0011_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0011 + apply or_xor_tree_0011_thm + ---END or_xor_tree_0011 + + + +def or_xor_tree_0100_before := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg33, %0 : i32 + %2 = llvm.mul %arg34, %0 : i32 + %3 = llvm.mul %arg35, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0100_after := [llvm| +{ +^0(%arg33 : i32, %arg34 : i32, %arg35 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg33, %0 : i32 + %2 = llvm.mul %arg34, %0 : i32 + %3 = llvm.mul %arg35, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0100_proof : or_xor_tree_0100_before ⊑ or_xor_tree_0100_after := by + unfold or_xor_tree_0100_before or_xor_tree_0100_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0100 + apply or_xor_tree_0100_thm + ---END or_xor_tree_0100 + + + +def or_xor_tree_0101_before := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg30, %0 : i32 + %2 = llvm.mul %arg31, %0 : i32 + %3 = llvm.mul %arg32, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0101_after := [llvm| +{ +^0(%arg30 : i32, %arg31 : i32, %arg32 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg30, %0 : i32 + %2 = llvm.mul %arg31, %0 : i32 + %3 = llvm.mul %arg32, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0101_proof : or_xor_tree_0101_before ⊑ or_xor_tree_0101_after := by + unfold or_xor_tree_0101_before or_xor_tree_0101_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0101 + apply or_xor_tree_0101_thm + ---END or_xor_tree_0101 + + + +def or_xor_tree_0110_before := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg27, %0 : i32 + %2 = llvm.mul %arg28, %0 : i32 + %3 = llvm.mul %arg29, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0110_after := [llvm| +{ +^0(%arg27 : i32, %arg28 : i32, %arg29 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg27, %0 : i32 + %2 = llvm.mul %arg28, %0 : i32 + %3 = llvm.mul %arg29, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0110_proof : or_xor_tree_0110_before ⊑ or_xor_tree_0110_after := by + unfold or_xor_tree_0110_before or_xor_tree_0110_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0110 + apply or_xor_tree_0110_thm + ---END or_xor_tree_0110 + + + +def or_xor_tree_0111_before := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg24, %0 : i32 + %2 = llvm.mul %arg25, %0 : i32 + %3 = llvm.mul %arg26, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %4, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_0111_after := [llvm| +{ +^0(%arg24 : i32, %arg25 : i32, %arg26 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg24, %0 : i32 + %2 = llvm.mul %arg25, %0 : i32 + %3 = llvm.mul %arg26, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_0111_proof : or_xor_tree_0111_before ⊑ or_xor_tree_0111_after := by + unfold or_xor_tree_0111_before or_xor_tree_0111_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_0111 + apply or_xor_tree_0111_thm + ---END or_xor_tree_0111 + + + +def or_xor_tree_1000_before := [llvm| +{ +^0(%arg21 : i32, %arg22 : i32, %arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg21, %0 : i32 + %2 = llvm.mul %arg22, %0 : i32 + %3 = llvm.mul %arg23, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1000_after := [llvm| +{ +^0(%arg21 : i32, %arg22 : i32, %arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg21, %0 : i32 + %2 = llvm.mul %arg22, %0 : i32 + %3 = llvm.mul %arg23, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1000_proof : or_xor_tree_1000_before ⊑ or_xor_tree_1000_after := by + unfold or_xor_tree_1000_before or_xor_tree_1000_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1000 + apply or_xor_tree_1000_thm + ---END or_xor_tree_1000 + + + +def or_xor_tree_1001_before := [llvm| +{ +^0(%arg18 : i32, %arg19 : i32, %arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg18, %0 : i32 + %2 = llvm.mul %arg19, %0 : i32 + %3 = llvm.mul %arg20, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1001_after := [llvm| +{ +^0(%arg18 : i32, %arg19 : i32, %arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg18, %0 : i32 + %2 = llvm.mul %arg19, %0 : i32 + %3 = llvm.mul %arg20, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1001_proof : or_xor_tree_1001_before ⊑ or_xor_tree_1001_after := by + unfold or_xor_tree_1001_before or_xor_tree_1001_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1001 + apply or_xor_tree_1001_thm + ---END or_xor_tree_1001 + + + +def or_xor_tree_1010_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg15, %0 : i32 + %2 = llvm.mul %arg16, %0 : i32 + %3 = llvm.mul %arg17, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1010_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg15, %0 : i32 + %2 = llvm.mul %arg16, %0 : i32 + %3 = llvm.mul %arg17, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1010_proof : or_xor_tree_1010_before ⊑ or_xor_tree_1010_after := by + unfold or_xor_tree_1010_before or_xor_tree_1010_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1010 + apply or_xor_tree_1010_thm + ---END or_xor_tree_1010 + + + +def or_xor_tree_1011_before := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg12, %0 : i32 + %2 = llvm.mul %arg13, %0 : i32 + %3 = llvm.mul %arg14, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %5, %1 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1011_after := [llvm| +{ +^0(%arg12 : i32, %arg13 : i32, %arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg12, %0 : i32 + %2 = llvm.mul %arg13, %0 : i32 + %3 = llvm.mul %arg14, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1011_proof : or_xor_tree_1011_before ⊑ or_xor_tree_1011_after := by + unfold or_xor_tree_1011_before or_xor_tree_1011_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1011 + apply or_xor_tree_1011_thm + ---END or_xor_tree_1011 + + + +def or_xor_tree_1100_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg9, %0 : i32 + %2 = llvm.mul %arg10, %0 : i32 + %3 = llvm.mul %arg11, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1100_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg9, %0 : i32 + %2 = llvm.mul %arg10, %0 : i32 + %3 = llvm.mul %arg11, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1100_proof : or_xor_tree_1100_before ⊑ or_xor_tree_1100_after := by + unfold or_xor_tree_1100_before or_xor_tree_1100_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1100 + apply or_xor_tree_1100_thm + ---END or_xor_tree_1100 + + + +def or_xor_tree_1101_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg6, %0 : i32 + %2 = llvm.mul %arg7, %0 : i32 + %3 = llvm.mul %arg8, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %2, %3 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1101_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32, %arg8 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg6, %0 : i32 + %2 = llvm.mul %arg7, %0 : i32 + %3 = llvm.mul %arg8, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1101_proof : or_xor_tree_1101_before ⊑ or_xor_tree_1101_after := by + unfold or_xor_tree_1101_before or_xor_tree_1101_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1101 + apply or_xor_tree_1101_thm + ---END or_xor_tree_1101 + + + +def or_xor_tree_1110_before := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg3, %0 : i32 + %2 = llvm.mul %arg4, %0 : i32 + %3 = llvm.mul %arg5, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1110_after := [llvm| +{ +^0(%arg3 : i32, %arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg3, %0 : i32 + %2 = llvm.mul %arg4, %0 : i32 + %3 = llvm.mul %arg5, %0 : i32 + %4 = llvm.xor %1, %2 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1110_proof : or_xor_tree_1110_before ⊑ or_xor_tree_1110_after := by + unfold or_xor_tree_1110_before or_xor_tree_1110_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1110 + apply or_xor_tree_1110_thm + ---END or_xor_tree_1110 + + + +def or_xor_tree_1111_before := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg0, %0 : i32 + %2 = llvm.mul %arg1, %0 : i32 + %3 = llvm.mul %arg2, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.xor %3, %2 : i32 + %6 = llvm.xor %1, %5 : i32 + %7 = llvm.or %6, %4 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def or_xor_tree_1111_after := [llvm| +{ +^0(%arg0 : i32, %arg1 : i32, %arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = llvm.mul %arg0, %0 : i32 + %2 = llvm.mul %arg1, %0 : i32 + %3 = llvm.mul %arg2, %0 : i32 + %4 = llvm.xor %2, %1 : i32 + %5 = llvm.or %4, %3 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +theorem or_xor_tree_1111_proof : or_xor_tree_1111_before ⊑ or_xor_tree_1111_after := by + unfold or_xor_tree_1111_before or_xor_tree_1111_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_xor_tree_1111 + apply or_xor_tree_1111_thm + ---END or_xor_tree_1111 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gorhxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gorhxor_proof.lean new file mode 100644 index 000000000..5639854eb --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gorhxor_proof.lean @@ -0,0 +1,197 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gorhxor_proof +theorem test1_thm (x x_1 : BitVec 32) : x_1 ||| (x_1 ||| x) ^^^ 4294967295#32 = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test2_thm (x x_1 : BitVec 32) : x_1 ||| (x ||| x_1) ^^^ 4294967295#32 = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test3_thm (x x_1 : BitVec 32) : x_1 ||| x_1 ^^^ x ^^^ 4294967295#32 = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test4_thm (x x_1 : BitVec 32) : x_1 ||| x ^^^ x_1 ^^^ 4294967295#32 = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test5_thm (x x_1 : BitVec 32) : x_1 ^^^ x ||| x_1 ^^^ 4294967295#32 = x_1 &&& x ^^^ 4294967295#32 := sorry + +theorem test5_commuted_x_y_thm (x x_1 : BitVec 64) : + x_1 ^^^ x ||| x ^^^ 18446744073709551615#64 = x_1 &&& x ^^^ 18446744073709551615#64 := sorry + +theorem xor_common_op_commute0_thm (x x_1 : BitVec 8) : x_1 ^^^ x ||| x_1 = x ||| x_1 := sorry + +theorem xor_common_op_commute2_thm (x x_1 : BitVec 8) : x_1 ^^^ 5#8 ||| x_1 ^^^ 5#8 ^^^ x = x_1 ^^^ 5#8 ||| x := sorry + +theorem xor_common_op_commute3_thm (x x_1 : BitVec 8) : x_1 ^^^ 5#8 ||| x * x ^^^ (x_1 ^^^ 5#8) = x_1 ^^^ 5#8 ||| x * x := sorry + +theorem test8_thm (x x_1 : BitVec 32) : x_1 ||| x ^^^ (x_1 ^^^ 4294967295#32) = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test9_thm (x x_1 : BitVec 32) : x_1 ||| x_1 ^^^ 4294967295#32 ^^^ x = x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem test10_thm (x x_1 : BitVec 32) : + x_1 ^^^ x ||| x ^^^ 4294967295#32 ^^^ x_1 = x_1 ^^^ x ||| x ^^^ x_1 ^^^ 4294967295#32 := sorry + +theorem test10_commuted_thm (x x_1 : BitVec 32) : + x_1 ^^^ 4294967295#32 ^^^ x ||| x ^^^ x_1 = x ^^^ x_1 ||| x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem test11_thm (x x_1 : BitVec 32) : (x_1 ||| x) &&& (x_1 ^^^ 4294967295#32 ^^^ x) = x &&& x_1 := sorry + +theorem test12_thm (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32 ^^^ x) &&& (x_1 ||| x) = x &&& x_1 := sorry + +theorem test12_commuted_thm (x x_1 : BitVec 32) : (x_1 ^^^ 4294967295#32 ^^^ x) &&& (x ||| x_1) = x &&& x_1 := sorry + +theorem test13_thm (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ (x_1 ^^^ x) = x &&& x_1 := sorry + +theorem test14_thm (x x_1 : BitVec 32) : + (x_1 ||| x ^^^ 4294967295#32) ^^^ (x_1 ^^^ 4294967295#32 ||| x) = x_1 ^^^ x := sorry + +theorem test14_commuted_thm (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32 ||| x) ^^^ (x ^^^ 4294967295#32 ||| x_1) = x ^^^ x_1 := sorry + +theorem test15_thm (x x_1 : BitVec 32) : + x_1 &&& (x ^^^ 4294967295#32) ^^^ (x_1 ^^^ 4294967295#32) &&& x = x_1 ^^^ x := sorry + +theorem test15_commuted_thm (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32) &&& x ^^^ (x ^^^ 4294967295#32) &&& x_1 = x ^^^ x_1 := sorry + +theorem or_and_xor_not_constant_commute0_thm (x x_1 : BitVec 32) : (x_1 ^^^ x) &&& 1#32 ||| x &&& 4294967294#32 = x_1 &&& 1#32 ^^^ x := sorry + +theorem or_and_xor_not_constant_commute1_thm (x x_1 : BitVec 9) : (x_1 ^^^ x) &&& 42#9 ||| x_1 &&& 469#9 = x &&& 42#9 ^^^ x_1 := sorry + +theorem not_or_xor_thm (x : BitVec 8) : (x ^^^ 255#8 ||| 7#8) ^^^ 12#8 = x &&& 248#8 ^^^ 243#8 := sorry + +theorem xor_or_thm (x : BitVec 8) : x ^^^ 32#8 ||| 7#8 = x &&& 248#8 ^^^ 39#8 := sorry + +theorem xor_or2_thm (x : BitVec 8) : x ^^^ 33#8 ||| 7#8 = x &&& 248#8 ^^^ 39#8 := sorry + +theorem xor_or_xor_thm (x : BitVec 8) : (x ^^^ 33#8 ||| 7#8) ^^^ 12#8 = x &&& 248#8 ^^^ 43#8 := sorry + +theorem or_xor_or_thm (x : BitVec 8) : (x ||| 33#8) ^^^ 12#8 ||| 7#8 = x &&& 216#8 ^^^ 47#8 := sorry + +theorem test17_thm (x x_1 : BitVec 8) : + (x_1 ^^^ x ||| x ^^^ 33#8 ^^^ x_1) * (x ^^^ 33#8 ^^^ x_1) = + (x_1 ^^^ x ||| x ^^^ x_1 ^^^ 33#8) * (x ^^^ x_1 ^^^ 33#8) := sorry + +theorem test18_thm (x x_1 : BitVec 8) : + (x_1 ^^^ 33#8 ^^^ x ||| x ^^^ x_1) * (x_1 ^^^ 33#8 ^^^ x) = + (x_1 ^^^ x ^^^ 33#8 ||| x ^^^ x_1) * (x_1 ^^^ x ^^^ 33#8) := sorry + +theorem test19_thm (x x_1 : BitVec 32) : + (x_1 ||| x) ^^^ (x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem test20_thm (x x_1 : BitVec 32) : + (x_1 ||| x) ^^^ (x ^^^ 4294967295#32 ||| x_1 ^^^ 4294967295#32) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem test21_thm (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32) ^^^ (x_1 ||| x) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem test22_thm (x x_1 : BitVec 32) : + (x_1 ^^^ 4294967295#32 ||| x ^^^ 4294967295#32) ^^^ (x ||| x_1) = x ^^^ x_1 ^^^ 4294967295#32 := sorry + +theorem test23_thm (x : BitVec 8) : ((x ||| 254#8) ^^^ 13#8 ||| 1#8) ^^^ 12#8 = 255#8 := sorry + +theorem PR45977_f1_thm (x x_1 : BitVec 32) : + (x_1 ||| x) ^^^ 4294967295#32 ||| (x_1 ^^^ 4294967295#32) &&& x = x_1 ^^^ 4294967295#32 := sorry + +theorem PR45977_f2_thm (x x_1 : BitVec 32) : (x_1 ||| x) ^^^ (x_1 ||| x ^^^ 4294967295#32) = x_1 ^^^ 4294967295#32 := sorry + +theorem or_xor_common_op_commute0_thm (x x_1 x_2 : BitVec 8) : x_2 ||| x_1 ||| x_2 ^^^ x = x_2 ||| x_1 ||| x := sorry + +theorem or_xor_common_op_commute5_thm (x x_1 x_2 : BitVec 8) : x_2 ^^^ x_1 ||| (x ||| x_2) = x ||| x_2 ||| x_1 := sorry + +theorem or_xor_common_op_commute6_thm (x x_1 x_2 : BitVec 8) : x_2 ^^^ x_1 ||| (x_1 ||| x) = x_1 ||| x ||| x_2 := sorry + +theorem or_xor_common_op_commute7_thm (x x_1 x_2 : BitVec 8) : x_2 ^^^ x_1 ||| (x ||| x_1) = x ||| x_1 ||| x_2 := sorry + +theorem or_not_xor_common_op_commute0_thm (x x_1 x_2 : BitVec 4) : x_2 ^^^ 15#4 ||| x_1 ||| x_2 ^^^ x = x_1 ||| x_2 &&& x ^^^ 15#4 := sorry + +theorem or_not_xor_common_op_commute2_thm (x x_1 x_2 : BitVec 8) : + x_2 ^^^ x_1 ||| (-x ||| x_2 ^^^ 255#8) = x_2 &&& x_1 ^^^ 255#8 ||| -x := sorry + +theorem or_not_xor_common_op_commute3_thm (x x_1 x_2 : BitVec 8) : + -x_2 ||| x_1 ^^^ 255#8 ||| x_1 ^^^ x = x_1 &&& x ^^^ 255#8 ||| -x_2 := sorry + +theorem or_not_xor_common_op_commute5_thm (x x_1 x_2 : BitVec 8) : + x_2 ^^^ x_1 ||| (x_1 ^^^ 255#8 ||| x) = x ||| x_2 &&& x_1 ^^^ 255#8 := sorry + +theorem or_not_xor_common_op_commute6_thm (x x_1 x_2 : BitVec 8) : + x_2 ^^^ x_1 ||| (-x ||| x_1 ^^^ 255#8) = x_2 &&& x_1 ^^^ 255#8 ||| -x := sorry + +theorem or_not_xor_common_op_commute7_thm (x x_1 x_2 : BitVec 8) : + -x_2 ||| x_1 ^^^ 255#8 ||| x ^^^ x_1 = x &&& x_1 ^^^ 255#8 ||| -x_2 := sorry + +theorem or_nand_xor_common_op_commute0_thm (x x_1 x_2 : BitVec 4) : x_2 &&& x_1 ^^^ 15#4 ||| x_2 ^^^ x = x_2 &&& x_1 &&& x ^^^ 15#4 := sorry + +theorem PR75692_1_thm (x : BitVec 32) : x ^^^ 4#32 ||| x ^^^ 4294967291#32 = 4294967295#32 := sorry + +theorem or_xor_not_thm (x x_1 : BitVec 32) : x_1 ^^^ (x ^^^ 4294967295#32) ||| x = x ||| x_1 ^^^ 4294967295#32 := sorry + +theorem or_xor_and_commuted1_thm (x x_1 : BitVec 32) : + x_1 * x_1 ||| x_1 * x_1 ^^^ 4294967295#32 ^^^ x = x_1 * x_1 ||| x ^^^ 4294967295#32 := sorry + +theorem or_xor_and_commuted2_thm (x x_1 : BitVec 32) : + x_1 * x_1 ^^^ (x * x ^^^ 4294967295#32) ||| x * x = x * x ||| x_1 * x_1 ^^^ 4294967295#32 := sorry + +theorem or_xor_tree_0000_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_1 * 42#32 ^^^ x * 42#32 ^^^ x_2 * 42#32 = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0001_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_2 * 42#32 ^^^ x * 42#32 ^^^ x_1 * 42#32 = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0010_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 ^^^ x_1 * 42#32 ^^^ x_2 * 42#32 = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0011_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 ^^^ x_2 * 42#32 ^^^ x_1 * 42#32 = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0100_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_2 * 42#32 ^^^ (x_1 * 42#32 ^^^ x * 42#32) = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0101_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_1 * 42#32 ^^^ (x_2 * 42#32 ^^^ x * 42#32) = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0110_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_2 * 42#32 ^^^ (x * 42#32 ^^^ x_1 * 42#32) = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_0111_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x_1 * 42#32 ^^^ (x * 42#32 ^^^ x_2 * 42#32) = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_1000_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ^^^ x * 42#32 ||| x * 42#32 ^^^ x_2 * 42#32 = + x * 42#32 ^^^ x_2 * 42#32 ||| x_1 * 42#32 := sorry + +theorem or_xor_tree_1001_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ^^^ x * 42#32 ||| x_2 * 42#32 ^^^ x * 42#32 = + x_2 * 42#32 ^^^ x * 42#32 ||| x_1 * 42#32 := sorry + +theorem or_xor_tree_1010_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ^^^ x * 42#32 ||| x * 42#32 ^^^ x_1 * 42#32 = + x * 42#32 ^^^ x_1 * 42#32 ||| x_2 * 42#32 := sorry + +theorem or_xor_tree_1011_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ x_1 * 42#32 ^^^ x * 42#32 ||| x_1 * 42#32 ^^^ x * 42#32 = + x_1 * 42#32 ^^^ x * 42#32 ||| x_2 * 42#32 := sorry + +theorem or_xor_tree_1100_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ (x_1 * 42#32 ^^^ x * 42#32) ||| x_2 * 42#32 ^^^ x_1 * 42#32 = + x_2 * 42#32 ^^^ x_1 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_1101_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ (x_1 * 42#32 ^^^ x * 42#32) ||| x_1 * 42#32 ^^^ x_2 * 42#32 = + x_1 * 42#32 ^^^ x_2 * 42#32 ||| x * 42#32 := sorry + +theorem or_xor_tree_1110_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ (x_1 * 42#32 ^^^ x * 42#32) ||| x_2 * 42#32 ^^^ x * 42#32 = + x_2 * 42#32 ^^^ x * 42#32 ||| x_1 * 42#32 := sorry + +theorem or_xor_tree_1111_thm (x x_1 x_2 : BitVec 32) : + x_2 * 42#32 ^^^ (x_1 * 42#32 ^^^ x * 42#32) ||| x * 42#32 ^^^ x_2 * 42#32 = + x * 42#32 ^^^ x_2 * 42#32 ||| x_1 * 42#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpr14365.lean b/SSA/Projects/InstCombine/tests/proofs/gpr14365.lean new file mode 100644 index 000000000..e6ab84c22 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpr14365.lean @@ -0,0 +1,90 @@ +import SSA.Projects.InstCombine.tests.proofs.gpr14365_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 gpr14365_statements + +def test0_before := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %3 = llvm.and %arg3, %0 : i32 + %4 = llvm.xor %3, %1 : i32 + %5 = llvm.add %4, %2 overflow : i32 + %6 = llvm.add %arg3, %5 overflow : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def test0_after := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = -1431655766 : i32}> : () -> i32 + %1 = llvm.and %arg3, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +theorem test0_proof : test0_before ⊑ test0_after := by + unfold test0_before test0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test0 + apply test0_thm + ---END test0 + + + +def test1_before := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %3 = llvm.ashr %arg1, %0 : i32 + %4 = llvm.and %3, %1 : i32 + %5 = llvm.xor %4, %2 : i32 + %6 = llvm.add %5, %0 overflow : i32 + %7 = llvm.add %arg1, %6 overflow : i32 + "llvm.return"(%7) : (i32) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg1 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 1431655765 : i32}> : () -> i32 + %2 = llvm.lshr %arg1, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.sub %arg1, %3 overflow : i32 + "llvm.return"(%4) : (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 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpr14365_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gpr14365_proof.lean new file mode 100644 index 000000000..5b3df9ae6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpr14365_proof.lean @@ -0,0 +1,30 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gpr14365_proof +theorem test0_thm (x : BitVec 32) : + ((if + (x.msb && (1431655765#32).msb) = (4294967295#32).msb ∧ + ¬((x &&& 1431655765#32 ^^^ 4294967295#32) + 1#32).msb = + (x.msb && (1431655765#32).msb ^^ (4294967295#32).msb) then + none + else some ((x &&& 1431655765#32 ^^^ 4294967295#32) + 1#32)).bind + fun y' => if x.msb = y'.msb ∧ ¬(x + y').msb = x.msb then none else some (x + y')) ⊑ + some (x &&& 2863311530#32) := sorry + +theorem test1_thm (x : BitVec 32) : + ((if + (x.msb && (1431655765#32).msb) = (4294967295#32).msb ∧ + ¬((x.sshiftRight 1 &&& 1431655765#32 ^^^ 4294967295#32) + 1#32).msb = + (x.msb && (1431655765#32).msb ^^ (4294967295#32).msb) then + none + else some ((x.sshiftRight 1 &&& 1431655765#32 ^^^ 4294967295#32) + 1#32)).bind + fun y' => if x.msb = y'.msb ∧ ¬(x + y').msb = x.msb then none else some (x + y')) ⊑ + if + (signExtend 33 x - signExtend 33 (x >>> 1 &&& 1431655765#32)).msb = + (signExtend 33 x - signExtend 33 (x >>> 1 &&& 1431655765#32)).getMsbD 1 then + some (x - (x >>> 1 &&& 1431655765#32)) + else none := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpr53357.lean b/SSA/Projects/InstCombine/tests/proofs/gpr53357.lean new file mode 100644 index 000000000..8e306d341 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpr53357.lean @@ -0,0 +1,190 @@ +import SSA.Projects.InstCombine.tests.proofs.gpr53357_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 gpr53357_statements + +def src_before := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg17, %arg16 : i32 + %2 = llvm.or %arg17, %arg16 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def src_after := [llvm| +{ +^0(%arg16 : i32, %arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg17, %arg16 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem src_proof : src_before ⊑ src_after := by + unfold src_before src_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN src + apply src_thm + ---END src + + + +def src2_before := [llvm| +{ +^0(%arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg11, %arg10 : i32 + %2 = llvm.or %arg10, %arg11 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def src2_after := [llvm| +{ +^0(%arg10 : i32, %arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg11, %arg10 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem src2_proof : src2_before ⊑ src2_after := by + unfold src2_before src2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN src2 + apply src2_thm + ---END src2 + + + +def src3_before := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg9, %arg8 : i32 + %2 = llvm.xor %arg8, %0 : i32 + %3 = llvm.xor %arg9, %0 : i32 + %4 = llvm.and %2, %3 : i32 + %5 = llvm.add %1, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def src3_after := [llvm| +{ +^0(%arg8 : i32, %arg9 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg9, %arg8 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem src3_proof : src3_before ⊑ src3_after := by + unfold src3_before src3_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN src3 + apply src3_thm + ---END src3 + + + +def src4_before := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.and %arg6, %arg7 : i32 + %2 = llvm.or %arg7, %arg6 : i32 + %3 = llvm.xor %2, %0 : i32 + %4 = llvm.add %1, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def src4_after := [llvm| +{ +^0(%arg6 : i32, %arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg6, %arg7 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem src4_proof : src4_before ⊑ src4_after := by + unfold src4_before src4_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN src4 + apply src4_thm + ---END src4 + + + +def src5_before := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.or %arg5, %arg4 : i32 + %2 = llvm.xor %1, %0 : i32 + %3 = llvm.and %arg5, %arg4 : i32 + %4 = llvm.add %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def src5_after := [llvm| +{ +^0(%arg4 : i32, %arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %1 = llvm.xor %arg5, %arg4 : i32 + %2 = llvm.xor %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem src5_proof : src5_before ⊑ src5_after := by + unfold src5_before src5_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN src5 + apply src5_thm + ---END src5 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpr53357_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gpr53357_proof.lean new file mode 100644 index 000000000..1a87b0195 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpr53357_proof.lean @@ -0,0 +1,21 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gpr53357_proof +theorem src_thm (x x_1 : BitVec 32) : + (x_1 &&& x) + ((x_1 ||| x) ^^^ 4294967295#32) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem src2_thm (x x_1 : BitVec 32) : + (x_1 &&& x) + ((x ||| x_1) ^^^ 4294967295#32) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem src3_thm (x x_1 : BitVec 32) : + (x_1 &&& x) + ((x ^^^ 4294967295#32) &&& (x_1 ^^^ 4294967295#32)) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem src4_thm (x x_1 : BitVec 32) : + (x_1 &&& x) + ((x ||| x_1) ^^^ 4294967295#32) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + +theorem src5_thm (x x_1 : BitVec 32) : + ((x_1 ||| x) ^^^ 4294967295#32) + (x_1 &&& x) = x_1 ^^^ x ^^^ 4294967295#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean index 16fa6bead..2757af0fc 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gpreservedhanalyses.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gpreservedhanalyses_statements - + def test_before := [llvm| { ^0(%arg0 : i32): @@ -36,7 +36,7 @@ theorem test_proof : test_before ⊑ test_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test apply test_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift.lean b/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift.lean new file mode 100644 index 000000000..69b435d61 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift.lean @@ -0,0 +1,714 @@ +import SSA.Projects.InstCombine.tests.proofs.gpullhbinophthroughhshift_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 gpullhbinophthroughhshift_statements + +def and_signbit_shl_before := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg23, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_signbit_shl_after := [llvm| +{ +^0(%arg23 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg23, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_signbit_shl_proof : and_signbit_shl_before ⊑ and_signbit_shl_after := by + unfold and_signbit_shl_before and_signbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_shl + apply and_signbit_shl_thm + ---END and_signbit_shl + + + +def and_nosignbit_shl_before := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg22, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_nosignbit_shl_after := [llvm| +{ +^0(%arg22 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg22, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_nosignbit_shl_proof : and_nosignbit_shl_before ⊑ and_nosignbit_shl_after := by + unfold and_nosignbit_shl_before and_nosignbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_shl + apply and_nosignbit_shl_thm + ---END and_nosignbit_shl + + + +def or_signbit_shl_before := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg21, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_signbit_shl_after := [llvm| +{ +^0(%arg21 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg21, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_signbit_shl_proof : or_signbit_shl_before ⊑ or_signbit_shl_after := by + unfold or_signbit_shl_before or_signbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_shl + apply or_signbit_shl_thm + ---END or_signbit_shl + + + +def or_nosignbit_shl_before := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg20, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_nosignbit_shl_after := [llvm| +{ +^0(%arg20 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg20, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_nosignbit_shl_proof : or_nosignbit_shl_before ⊑ or_nosignbit_shl_after := by + unfold or_nosignbit_shl_before or_nosignbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_shl + apply or_nosignbit_shl_thm + ---END or_nosignbit_shl + + + +def xor_signbit_shl_before := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg19, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_signbit_shl_after := [llvm| +{ +^0(%arg19 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg19, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_signbit_shl_proof : xor_signbit_shl_before ⊑ xor_signbit_shl_after := by + unfold xor_signbit_shl_before xor_signbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_shl + apply xor_signbit_shl_thm + ---END xor_signbit_shl + + + +def xor_nosignbit_shl_before := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg18, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_nosignbit_shl_after := [llvm| +{ +^0(%arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg18, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_nosignbit_shl_proof : xor_nosignbit_shl_before ⊑ xor_nosignbit_shl_after := by + unfold xor_nosignbit_shl_before xor_nosignbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_shl + apply xor_nosignbit_shl_thm + ---END xor_nosignbit_shl + + + +def add_signbit_shl_before := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg17, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_signbit_shl_after := [llvm| +{ +^0(%arg17 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg17, %0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem add_signbit_shl_proof : add_signbit_shl_before ⊑ add_signbit_shl_after := by + unfold add_signbit_shl_before add_signbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_signbit_shl + all_goals (try extract_goal ; sorry) + ---END add_signbit_shl + + + +def add_nosignbit_shl_before := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.add %arg16, %0 : i32 + %3 = llvm.shl %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def add_nosignbit_shl_after := [llvm| +{ +^0(%arg16 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -16777216 : i32}> : () -> i32 + %2 = llvm.shl %arg16, %0 : i32 + %3 = llvm.add %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem add_nosignbit_shl_proof : add_nosignbit_shl_before ⊑ add_nosignbit_shl_after := by + unfold add_nosignbit_shl_before add_nosignbit_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN add_nosignbit_shl + all_goals (try extract_goal ; sorry) + ---END add_nosignbit_shl + + + +def and_signbit_lshr_before := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg15, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_signbit_lshr_after := [llvm| +{ +^0(%arg15 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg15, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_signbit_lshr_proof : and_signbit_lshr_before ⊑ and_signbit_lshr_after := by + unfold and_signbit_lshr_before and_signbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_lshr + apply and_signbit_lshr_thm + ---END and_signbit_lshr + + + +def and_nosignbit_lshr_before := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg14, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_nosignbit_lshr_after := [llvm| +{ +^0(%arg14 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg14, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_nosignbit_lshr_proof : and_nosignbit_lshr_before ⊑ and_nosignbit_lshr_after := by + unfold and_nosignbit_lshr_before and_nosignbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_lshr + apply and_nosignbit_lshr_thm + ---END and_nosignbit_lshr + + + +def or_signbit_lshr_before := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg13, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_signbit_lshr_after := [llvm| +{ +^0(%arg13 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg13, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_signbit_lshr_proof : or_signbit_lshr_before ⊑ or_signbit_lshr_after := by + unfold or_signbit_lshr_before or_signbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_lshr + apply or_signbit_lshr_thm + ---END or_signbit_lshr + + + +def or_nosignbit_lshr_before := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg12, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_nosignbit_lshr_after := [llvm| +{ +^0(%arg12 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg12, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_nosignbit_lshr_proof : or_nosignbit_lshr_before ⊑ or_nosignbit_lshr_after := by + unfold or_nosignbit_lshr_before or_nosignbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_lshr + apply or_nosignbit_lshr_thm + ---END or_nosignbit_lshr + + + +def xor_signbit_lshr_before := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg11, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_signbit_lshr_after := [llvm| +{ +^0(%arg11 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 16776960 : i32}> : () -> i32 + %2 = llvm.lshr %arg11, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_signbit_lshr_proof : xor_signbit_lshr_before ⊑ xor_signbit_lshr_after := by + unfold xor_signbit_lshr_before xor_signbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_lshr + apply xor_signbit_lshr_thm + ---END xor_signbit_lshr + + + +def xor_nosignbit_lshr_before := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg10, %0 : i32 + %3 = llvm.lshr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_nosignbit_lshr_after := [llvm| +{ +^0(%arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg10, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_nosignbit_lshr_proof : xor_nosignbit_lshr_before ⊑ xor_nosignbit_lshr_after := by + unfold xor_nosignbit_lshr_before xor_nosignbit_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_lshr + apply xor_nosignbit_lshr_thm + ---END xor_nosignbit_lshr + + + +def and_signbit_ashr_before := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg7, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_signbit_ashr_after := [llvm| +{ +^0(%arg7 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg7, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_signbit_ashr_proof : and_signbit_ashr_before ⊑ and_signbit_ashr_after := by + unfold and_signbit_ashr_before and_signbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_signbit_ashr + apply and_signbit_ashr_thm + ---END and_signbit_ashr + + + +def and_nosignbit_ashr_before := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.and %arg6, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def and_nosignbit_ashr_after := [llvm| +{ +^0(%arg6 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.lshr %arg6, %0 : i32 + %3 = llvm.and %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem and_nosignbit_ashr_proof : and_nosignbit_ashr_before ⊑ and_nosignbit_ashr_after := by + unfold and_nosignbit_ashr_before and_nosignbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN and_nosignbit_ashr + apply and_nosignbit_ashr_thm + ---END and_nosignbit_ashr + + + +def or_signbit_ashr_before := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg5, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_signbit_ashr_after := [llvm| +{ +^0(%arg5 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.lshr %arg5, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_signbit_ashr_proof : or_signbit_ashr_before ⊑ or_signbit_ashr_after := by + unfold or_signbit_ashr_before or_signbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_signbit_ashr + apply or_signbit_ashr_thm + ---END or_signbit_ashr + + + +def or_nosignbit_ashr_before := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.or %arg4, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def or_nosignbit_ashr_after := [llvm| +{ +^0(%arg4 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg4, %0 : i32 + %3 = llvm.or %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem or_nosignbit_ashr_proof : or_nosignbit_ashr_before ⊑ or_nosignbit_ashr_after := by + unfold or_nosignbit_ashr_before or_nosignbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN or_nosignbit_ashr + apply or_nosignbit_ashr_thm + ---END or_nosignbit_ashr + + + +def xor_signbit_ashr_before := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = -65536 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg3, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_signbit_ashr_after := [llvm| +{ +^0(%arg3 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -256 : i32}> : () -> i32 + %2 = llvm.ashr %arg3, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_signbit_ashr_proof : xor_signbit_ashr_before ⊑ xor_signbit_ashr_after := by + unfold xor_signbit_ashr_before xor_signbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_signbit_ashr + apply xor_signbit_ashr_thm + ---END xor_signbit_ashr + + + +def xor_nosignbit_ashr_before := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147418112 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.xor %arg2, %0 : i32 + %3 = llvm.ashr %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def xor_nosignbit_ashr_after := [llvm| +{ +^0(%arg2 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8388352 : i32}> : () -> i32 + %2 = llvm.ashr %arg2, %0 : i32 + %3 = llvm.xor %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +theorem xor_nosignbit_ashr_proof : xor_nosignbit_ashr_before ⊑ xor_nosignbit_ashr_after := by + unfold xor_nosignbit_ashr_before xor_nosignbit_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN xor_nosignbit_ashr + apply xor_nosignbit_ashr_thm + ---END xor_nosignbit_ashr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift_proof.lean new file mode 100644 index 000000000..0db4acfc9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gpullhbinophthroughhshift_proof.lean @@ -0,0 +1,42 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gpullhbinophthroughhshift_proof +theorem and_signbit_shl_thm (x : BitVec 32) : (x &&& 4294901760#32) <<< 8 = x <<< 8 &&& 4278190080#32 := sorry + +theorem and_nosignbit_shl_thm (x : BitVec 32) : (x &&& 2147418112#32) <<< 8 = x <<< 8 &&& 4278190080#32 := sorry + +theorem or_signbit_shl_thm (x : BitVec 32) : (x ||| 4294901760#32) <<< 8 = x <<< 8 ||| 4278190080#32 := sorry + +theorem or_nosignbit_shl_thm (x : BitVec 32) : (x ||| 2147418112#32) <<< 8 = x <<< 8 ||| 4278190080#32 := sorry + +theorem xor_signbit_shl_thm (x : BitVec 32) : (x ^^^ 4294901760#32) <<< 8 = x <<< 8 ^^^ 4278190080#32 := sorry + +theorem xor_nosignbit_shl_thm (x : BitVec 32) : (x ^^^ 2147418112#32) <<< 8 = x <<< 8 ^^^ 4278190080#32 := sorry + +theorem and_signbit_lshr_thm (x : BitVec 32) : (x &&& 4294901760#32) >>> 8 = x >>> 8 &&& 16776960#32 := sorry + +theorem and_nosignbit_lshr_thm (x : BitVec 32) : (x &&& 2147418112#32) >>> 8 = x >>> 8 &&& 8388352#32 := sorry + +theorem or_signbit_lshr_thm (x : BitVec 32) : (x ||| 4294901760#32) >>> 8 = x >>> 8 ||| 16776960#32 := sorry + +theorem or_nosignbit_lshr_thm (x : BitVec 32) : (x ||| 2147418112#32) >>> 8 = x >>> 8 ||| 8388352#32 := sorry + +theorem xor_signbit_lshr_thm (x : BitVec 32) : (x ^^^ 4294901760#32) >>> 8 = x >>> 8 ^^^ 16776960#32 := sorry + +theorem xor_nosignbit_lshr_thm (x : BitVec 32) : (x ^^^ 2147418112#32) >>> 8 = x >>> 8 ^^^ 8388352#32 := sorry + +theorem and_signbit_ashr_thm (x : BitVec 32) : (x &&& 4294901760#32).sshiftRight 8 = x.sshiftRight 8 &&& 4294967040#32 := sorry + +theorem and_nosignbit_ashr_thm (x : BitVec 32) : (x &&& 2147418112#32).sshiftRight 8 = x >>> 8 &&& 8388352#32 := sorry + +theorem or_signbit_ashr_thm (x : BitVec 32) : (x ||| 4294901760#32).sshiftRight 8 = x >>> 8 ||| 4294967040#32 := sorry + +theorem or_nosignbit_ashr_thm (x : BitVec 32) : (x ||| 2147418112#32).sshiftRight 8 = x.sshiftRight 8 ||| 8388352#32 := sorry + +theorem xor_signbit_ashr_thm (x : BitVec 32) : (x ^^^ 4294901760#32).sshiftRight 8 = x.sshiftRight 8 ^^^ 4294967040#32 := sorry + +theorem xor_nosignbit_ashr_thm (x : BitVec 32) : (x ^^^ 2147418112#32).sshiftRight 8 = x.sshiftRight 8 ^^^ 8388352#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean index cc767f05a..8aa5963c4 100644 --- a/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean +++ b/SSA/Projects/InstCombine/tests/proofs/greassociatehnuw.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section greassociatehnuw_statements - + def reassoc_add_nuw_before := [llvm| { ^0(%arg26 : i32): @@ -38,7 +38,7 @@ theorem reassoc_add_nuw_proof : reassoc_add_nuw_before ⊑ reassoc_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_add_nuw apply reassoc_add_nuw_thm @@ -71,7 +71,7 @@ theorem reassoc_sub_nuw_proof : reassoc_sub_nuw_before ⊑ reassoc_sub_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_sub_nuw apply reassoc_sub_nuw_thm @@ -104,7 +104,7 @@ theorem reassoc_mul_nuw_proof : reassoc_mul_nuw_before ⊑ reassoc_mul_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_mul_nuw apply reassoc_mul_nuw_thm @@ -137,7 +137,7 @@ theorem no_reassoc_add_nuw_none_proof : no_reassoc_add_nuw_none_before ⊑ no_re simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN no_reassoc_add_nuw_none apply no_reassoc_add_nuw_none_thm @@ -170,7 +170,7 @@ theorem no_reassoc_add_none_nuw_proof : no_reassoc_add_none_nuw_before ⊑ no_re simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN no_reassoc_add_none_nuw apply no_reassoc_add_none_nuw_thm @@ -205,7 +205,7 @@ theorem reassoc_x2_add_nuw_proof : reassoc_x2_add_nuw_before ⊑ reassoc_x2_add_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_add_nuw apply reassoc_x2_add_nuw_thm @@ -240,7 +240,7 @@ theorem reassoc_x2_mul_nuw_proof : reassoc_x2_mul_nuw_before ⊑ reassoc_x2_mul_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_mul_nuw apply reassoc_x2_mul_nuw_thm @@ -275,7 +275,7 @@ theorem reassoc_x2_sub_nuw_proof : reassoc_x2_sub_nuw_before ⊑ reassoc_x2_sub_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN reassoc_x2_sub_nuw apply reassoc_x2_sub_nuw_thm @@ -307,7 +307,7 @@ theorem tryFactorization_add_nuw_mul_nuw_proof : tryFactorization_add_nuw_mul_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw apply tryFactorization_add_nuw_mul_nuw_thm @@ -339,7 +339,7 @@ theorem tryFactorization_add_nuw_mul_nuw_int_max_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_int_max apply tryFactorization_add_nuw_mul_nuw_int_max_thm @@ -371,7 +371,7 @@ theorem tryFactorization_add_mul_nuw_proof : tryFactorization_add_mul_nuw_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_mul_nuw apply tryFactorization_add_mul_nuw_thm @@ -403,7 +403,7 @@ theorem tryFactorization_add_nuw_mul_proof : tryFactorization_add_nuw_mul_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul apply tryFactorization_add_nuw_mul_thm @@ -435,7 +435,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_nuw_var_proof : tryFactorization_ad simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_nuw_var apply tryFactorization_add_nuw_mul_nuw_mul_nuw_var_thm @@ -467,7 +467,7 @@ theorem tryFactorization_add_nuw_mul_mul_nuw_var_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_mul_nuw_var apply tryFactorization_add_nuw_mul_mul_nuw_var_thm @@ -499,7 +499,7 @@ theorem tryFactorization_add_nuw_mul_nuw_mul_var_proof : tryFactorization_add_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_nuw_mul_nuw_mul_var apply tryFactorization_add_nuw_mul_nuw_mul_var_thm @@ -531,7 +531,7 @@ theorem tryFactorization_add_mul_nuw_mul_var_proof : tryFactorization_add_mul_nu simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN tryFactorization_add_mul_nuw_mul_var apply tryFactorization_add_mul_nuw_mul_var_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean index 78be8022f..f25351628 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gredundanthrighthshifthinputhmasking.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gredundanthrighthshifthinputhmasking_statements - + def t0_lshr_before := [llvm| { ^0(%arg30 : i32, %arg31 : i32): @@ -40,7 +40,7 @@ theorem t0_lshr_proof : t0_lshr_before ⊑ t0_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0_lshr apply t0_lshr_thm @@ -75,7 +75,7 @@ theorem t1_sshr_proof : t1_sshr_before ⊑ t1_sshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t1_sshr apply t1_sshr_thm @@ -110,7 +110,7 @@ theorem n13_proof : n13_before ⊑ n13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN n13 apply n13_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/grem.lean b/SSA/Projects/InstCombine/tests/proofs/grem.lean new file mode 100644 index 000000000..3f2d4456c --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/grem.lean @@ -0,0 +1,503 @@ +import SSA.Projects.InstCombine.tests.proofs.grem_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 grem_statements + +def test1_before := [llvm| +{ +^0(%arg104 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.srem %arg104, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def test1_after := [llvm| +{ +^0(%arg104 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (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 test3_before := [llvm| +{ +^0(%arg103 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = llvm.urem %arg103, %0 : i32 + "llvm.return"(%1) : (i32) -> () +} +] +def test3_after := [llvm| +{ +^0(%arg103 : i32): + %0 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %1 = llvm.and %arg103, %0 : i32 + "llvm.return"(%1) : (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 test7_before := [llvm| +{ +^0(%arg93 : i32): + %0 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.mul %arg93, %0 : i32 + %3 = llvm.srem %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test7_after := [llvm| +{ +^0(%arg93 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test7_proof : test7_before ⊑ test7_after := by + unfold test7_before test7_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test7 + apply test7_thm + ---END test7 + + + +def test8_before := [llvm| +{ +^0(%arg92 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.shl %arg92, %0 : i32 + %3 = llvm.srem %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test8_after := [llvm| +{ +^0(%arg92 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem test8_proof : test8_before ⊑ test8_after := by + unfold test8_before test8_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test8 + apply test8_thm + ---END test8 + + + +def test9_before := [llvm| +{ +^0(%arg91 : i32): + %0 = "llvm.mlir.constant"() <{value = 64 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 32 : i32}> : () -> i32 + %2 = llvm.mul %arg91, %0 : i32 + %3 = llvm.urem %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test9_after := [llvm| +{ +^0(%arg91 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +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 test11_before := [llvm| +{ +^0(%arg89 : i32): + %0 = "llvm.mlir.constant"() <{value = -2 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %3 = llvm.and %arg89, %0 : i32 + %4 = llvm.mul %3, %1 : i32 + %5 = llvm.urem %4, %2 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test11_after := [llvm| +{ +^0(%arg89 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (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(%arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = -4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 2 : i32}> : () -> i32 + %2 = llvm.and %arg88, %0 : i32 + %3 = llvm.srem %2, %1 : i32 + "llvm.return"(%3) : (i32) -> () +} +] +def test12_after := [llvm| +{ +^0(%arg88 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (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(%arg87 : i32): + %0 = llvm.srem %arg87, %arg87 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +def test13_after := [llvm| +{ +^0(%arg87 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + "llvm.return"(%0) : (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 test16_before := [llvm| +{ +^0(%arg81 : i32, %arg82 : i32): + %0 = "llvm.mlir.constant"() <{value = 11 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = llvm.lshr %arg82, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.urem %arg81, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test16_after := [llvm| +{ +^0(%arg81 : i32, %arg82 : i32): + %0 = "llvm.mlir.constant"() <{value = 11 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 3 : i32}> : () -> i32 + %3 = llvm.lshr %arg82, %0 : i32 + %4 = llvm.and %3, %1 : i32 + %5 = llvm.or %4, %2 : i32 + %6 = llvm.and %arg81, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem test16_proof : test16_before ⊑ test16_after := by + unfold test16_before test16_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test16 + apply test16_thm + ---END test16 + + + +def test19_before := [llvm| +{ +^0(%arg76 : i32, %arg77 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg76 : i32 + %2 = llvm.shl %0, %arg77 : i32 + %3 = llvm.and %1, %2 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.urem %arg77, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test19_after := [llvm| +{ +^0(%arg76 : i32, %arg77 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg76 overflow : i32 + %3 = llvm.shl %0, %arg77 overflow : i32 + %4 = llvm.and %2, %3 : i32 + %5 = llvm.add %4, %2 : i32 + %6 = llvm.add %5, %1 : i32 + %7 = llvm.and %arg77, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +theorem test19_proof : test19_before ⊑ test19_after := by + unfold test19_before test19_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19 + apply test19_thm + ---END test19 + + + +def test19_commutative0_before := [llvm| +{ +^0(%arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg74 : i32 + %2 = llvm.shl %0, %arg75 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %1 : i32 + %5 = llvm.urem %arg75, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test19_commutative0_after := [llvm| +{ +^0(%arg74 : i32, %arg75 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg74 overflow : i32 + %3 = llvm.shl %0, %arg75 overflow : i32 + %4 = llvm.and %3, %2 : i32 + %5 = llvm.add %4, %2 : i32 + %6 = llvm.add %5, %1 : i32 + %7 = llvm.and %arg75, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +theorem test19_commutative0_proof : test19_commutative0_before ⊑ test19_commutative0_after := by + unfold test19_commutative0_before test19_commutative0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19_commutative0 + apply test19_commutative0_thm + ---END test19_commutative0 + + + +def test19_commutative1_before := [llvm| +{ +^0(%arg72 : i32, %arg73 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg72 : i32 + %2 = llvm.shl %0, %arg73 : i32 + %3 = llvm.and %1, %2 : i32 + %4 = llvm.add %1, %3 : i32 + %5 = llvm.urem %arg73, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test19_commutative1_after := [llvm| +{ +^0(%arg72 : i32, %arg73 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg72 overflow : i32 + %3 = llvm.shl %0, %arg73 overflow : i32 + %4 = llvm.and %2, %3 : i32 + %5 = llvm.add %2, %4 : i32 + %6 = llvm.add %5, %1 : i32 + %7 = llvm.and %arg73, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +theorem test19_commutative1_proof : test19_commutative1_before ⊑ test19_commutative1_after := by + unfold test19_commutative1_before test19_commutative1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19_commutative1 + apply test19_commutative1_thm + ---END test19_commutative1 + + + +def test19_commutative2_before := [llvm| +{ +^0(%arg70 : i32, %arg71 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = llvm.shl %0, %arg70 : i32 + %2 = llvm.shl %0, %arg71 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %1, %3 : i32 + %5 = llvm.urem %arg71, %4 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def test19_commutative2_after := [llvm| +{ +^0(%arg70 : i32, %arg71 : i32): + %0 = "llvm.mlir.constant"() <{value = 1 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -1 : i32}> : () -> i32 + %2 = llvm.shl %0, %arg70 overflow : i32 + %3 = llvm.shl %0, %arg71 overflow : i32 + %4 = llvm.and %3, %2 : i32 + %5 = llvm.add %2, %4 : i32 + %6 = llvm.add %5, %1 : i32 + %7 = llvm.and %arg71, %6 : i32 + "llvm.return"(%7) : (i32) -> () +} +] +theorem test19_commutative2_proof : test19_commutative2_before ⊑ test19_commutative2_after := by + unfold test19_commutative2_before test19_commutative2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test19_commutative2 + apply test19_commutative2_thm + ---END test19_commutative2 + + + +def test22_before := [llvm| +{ +^0(%arg55 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147483647 : i32}> : () -> i32 + %1 = llvm.and %arg55, %0 : i32 + %2 = llvm.srem %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def test22_after := [llvm| +{ +^0(%arg55 : i32): + %0 = "llvm.mlir.constant"() <{value = 2147483647 : i32}> : () -> i32 + %1 = llvm.and %arg55, %0 : i32 + %2 = llvm.urem %1, %0 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +theorem test22_proof : test22_before ⊑ test22_after := by + unfold test22_before test22_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN test22 + apply test22_thm + ---END test22 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean b/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean new file mode 100644 index 000000000..1ef1b0518 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/grem_proof.lean @@ -0,0 +1,84 @@ + +import SSA.Projects.InstCombine.TacticAuto +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 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 + +theorem test9_thm (x : BitVec 32) : x * 64#32 % 32#32 = 0#32 := sorry + +theorem test11_thm (x : BitVec 32) : (x &&& 4294967294#32) * 2#32 % 4#32 = 0#32 := sorry + +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)) ⊑ + some 0#32 := sorry + +theorem test16_thm (x x_1 : BitVec 32) : + (if (x >>> 11 &&& 4#32) + 4#32 = 0#32 then none else some (x_1 % ((x >>> 11 &&& 4#32) + 4#32))) ⊑ + some (x_1 &&& (x >>> 11 &&& 4#32 ||| 3#32)) := sorry + +theorem test19_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun a => + Option.bind (if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) fun a_1 => + Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x => + if (a &&& a_1) + x = 0#32 then none else some (x_1 % ((a &&& a_1) + x))) ⊑ + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun a => + (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_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)).bind + fun x => some (x_1 &&& (a &&& a_1) + x + 4294967295#32) := sorry + +theorem test19_commutative0_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun a_1 => + Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x => + if (a &&& a_1) + x = 0#32 then none else some (x_1 % ((a &&& a_1) + x))) ⊑ + (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 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun a_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)).bind + fun x => some (x_1 &&& (a &&& a_1) + x + 4294967295#32) := sorry + +theorem test19_commutative1_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun a => + Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun a_1 => + Option.bind (if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) fun x => + if a + (a_1 &&& x) = 0#32 then none else some (x_1 % (a + (a_1 &&& x)))) ⊑ + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun a => + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun a_1 => + (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 x => some (x_1 &&& a + (a_1 &&& x) + 4294967295#32) := sorry + +theorem test19_commutative2_thm (x x_1 : BitVec 32) : + (Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun a => + Option.bind (if 32#32 ≤ x_1 then none else some (1#32 <<< x_1.toNat)) fun a_1 => + Option.bind (if 32#32 ≤ x then none else some (1#32 <<< x.toNat)) fun x => + if a + (a_1 &&& x) = 0#32 then none else some (x_1 % (a + (a_1 &&& x)))) ⊑ + (if 1#32 <<< x.toNat >>> x.toNat = 1#32 then none else if 32#32 ≤ x then none else some (1#32 <<< x.toNat)).bind + fun a => + (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_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)).bind + fun x => some (x_1 &&& a + (a_1 &&& x) + 4294967295#32) := sorry + +theorem test22_thm (x : BitVec 32) : + (x &&& 2147483647#32) - (x &&& 2147483647#32).sdiv 2147483647#32 * 2147483647#32 = + (x &&& 2147483647#32) % 2147483647#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivh1.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivh1.lean new file mode 100644 index 000000000..5aa922ff9 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivh1.lean @@ -0,0 +1,47 @@ +import SSA.Projects.InstCombine.tests.proofs.gsdivh1_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 gsdivh1_statements + +def c_before := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 0 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = -2147483648 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = -3 : i32}> : () -> i32 + %3 = llvm.sub %0, %1 : i32 + %4 = llvm.sdiv %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def c_after := [llvm| +{ +^0(%arg0 : i32): + %0 = "llvm.mlir.constant"() <{value = 715827882 : i32}> : () -> i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem c_proof : c_before ⊑ c_after := by + unfold c_before c_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN c + all_goals (try extract_goal ; sorry) + ---END c + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivh1_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivh1_proof.lean new file mode 100644 index 000000000..7b64ad1ef --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivh1_proof.lean @@ -0,0 +1,6 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsdivh1_proof diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean index 8cc91eb0b..a49361e3f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhcanonicalize_statements - + def test_sdiv_canonicalize_op0_before := [llvm| { ^0(%arg15 : i32, %arg16 : i32): @@ -38,7 +38,7 @@ theorem test_sdiv_canonicalize_op0_proof : test_sdiv_canonicalize_op0_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_sdiv_canonicalize_op0 apply test_sdiv_canonicalize_op0_thm @@ -71,7 +71,7 @@ theorem test_sdiv_canonicalize_op0_exact_proof : test_sdiv_canonicalize_op0_exac simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_sdiv_canonicalize_op0_exact apply test_sdiv_canonicalize_op0_exact_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean index e566085a5..c713dfdfb 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhnegativehpowerhofhtwo.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhexacthbyhnegativehpowerhofhtwo_statements - + def t0_before := [llvm| { ^0(%arg15 : i8): @@ -38,7 +38,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -75,7 +75,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask apply prove_exact_with_high_mask_thm @@ -109,7 +109,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask_limit apply prove_exact_with_high_mask_limit_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean index d7b1c7913..e20818873 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsdivhexacthbyhpowerhofhtwo.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsdivhexacthbyhpowerhofhtwo_statements - + def t0_before := [llvm| { ^0(%arg22 : i8): @@ -36,7 +36,7 @@ theorem t0_proof : t0_before ⊑ t0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN t0 apply t0_thm @@ -67,7 +67,7 @@ theorem shl1_nsw_proof : shl1_nsw_before ⊑ shl1_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl1_nsw apply shl1_nsw_thm @@ -100,7 +100,7 @@ theorem shl1_nsw_not_exact_proof : shl1_nsw_not_exact_before ⊑ shl1_nsw_not_ex simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl1_nsw_not_exact apply shl1_nsw_not_exact_thm @@ -135,7 +135,7 @@ theorem prove_exact_with_high_mask_proof : prove_exact_with_high_mask_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask apply prove_exact_with_high_mask_thm @@ -168,7 +168,7 @@ theorem prove_exact_with_high_mask_limit_proof : prove_exact_with_high_mask_limi simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN prove_exact_with_high_mask_limit apply prove_exact_with_high_mask_limit_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean index 3f906d6bb..73320d1c3 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsethlowbitshmaskhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsethlowbitshmaskhcanonicalize_statements - + def shl_add_before := [llvm| { ^0(%arg26 : i32): @@ -39,7 +39,7 @@ theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add apply shl_add_thm @@ -73,7 +73,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw apply shl_add_nsw_thm @@ -105,7 +105,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw apply shl_add_nuw_thm @@ -137,7 +137,7 @@ theorem shl_add_nsw_nuw_proof : shl_add_nsw_nuw_before ⊑ shl_add_nsw_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw_nuw apply shl_add_nsw_nuw_thm @@ -171,7 +171,7 @@ theorem shl_nsw_add_proof : shl_nsw_add_before ⊑ shl_nsw_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add apply shl_nsw_add_thm @@ -205,7 +205,7 @@ theorem shl_nsw_add_nsw_proof : shl_nsw_add_nsw_before ⊑ shl_nsw_add_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nsw apply shl_nsw_add_nsw_thm @@ -237,7 +237,7 @@ theorem shl_nsw_add_nuw_proof : shl_nsw_add_nuw_before ⊑ shl_nsw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nuw apply shl_nsw_add_nuw_thm @@ -269,7 +269,7 @@ theorem shl_nsw_add_nsw_nuw_proof : shl_nsw_add_nsw_nuw_before ⊑ shl_nsw_add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_add_nsw_nuw apply shl_nsw_add_nsw_nuw_thm @@ -303,7 +303,7 @@ theorem shl_nuw_add_proof : shl_nuw_add_before ⊑ shl_nuw_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add apply shl_nuw_add_thm @@ -337,7 +337,7 @@ theorem shl_nuw_add_nsw_proof : shl_nuw_add_nsw_before ⊑ shl_nuw_add_nsw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nsw apply shl_nuw_add_nsw_thm @@ -369,7 +369,7 @@ theorem shl_nuw_add_nuw_proof : shl_nuw_add_nuw_before ⊑ shl_nuw_add_nuw_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nuw apply shl_nuw_add_nuw_thm @@ -401,7 +401,7 @@ theorem shl_nuw_add_nsw_nuw_proof : shl_nuw_add_nsw_nuw_before ⊑ shl_nuw_add_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nuw_add_nsw_nuw apply shl_nuw_add_nsw_nuw_thm @@ -435,7 +435,7 @@ theorem shl_nsw_nuw_add_proof : shl_nsw_nuw_add_before ⊑ shl_nsw_nuw_add_after simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add apply shl_nsw_nuw_add_thm @@ -469,7 +469,7 @@ theorem shl_nsw_nuw_add_nsw_proof : shl_nsw_nuw_add_nsw_before ⊑ shl_nsw_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nsw apply shl_nsw_nuw_add_nsw_thm @@ -501,7 +501,7 @@ theorem shl_nsw_nuw_add_nuw_proof : shl_nsw_nuw_add_nuw_before ⊑ shl_nsw_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nuw apply shl_nsw_nuw_add_nuw_thm @@ -533,7 +533,7 @@ theorem shl_nsw_nuw_add_nsw_nuw_proof : shl_nsw_nuw_add_nsw_nuw_before ⊑ shl_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_nsw_nuw_add_nsw_nuw apply shl_nsw_nuw_add_nsw_nuw_thm @@ -566,7 +566,7 @@ theorem bad_add0_proof : bad_add0_before ⊑ bad_add0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add0 apply bad_add0_thm @@ -599,7 +599,7 @@ theorem bad_add1_proof : bad_add1_before ⊑ bad_add1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add1 apply bad_add1_thm @@ -634,7 +634,7 @@ theorem bad_add2_proof : bad_add2_before ⊑ bad_add2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN bad_add2 apply bad_add2_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean index e46720ce7..a277bef7f 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthaddhinseltpoison.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthaddhinseltpoison_statements - + def ashr_C1_add_A_C2_i32_before := [llvm| { ^0(%arg7 : i32): @@ -39,7 +39,7 @@ theorem ashr_C1_add_A_C2_i32_proof : ashr_C1_add_A_C2_i32_before ⊑ ashr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_C1_add_A_C2_i32 apply ashr_C1_add_A_C2_i32_thm @@ -76,7 +76,7 @@ theorem lshr_C1_add_A_C2_i32_proof : lshr_C1_add_A_C2_i32_before ⊑ lshr_C1_add simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_C1_add_A_C2_i32 apply lshr_C1_add_A_C2_i32_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean index 493050aeb..3e725a0cd 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthflags.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthflags_statements - + def shl_add_nuw_before := [llvm| { ^0(%arg16 : i8, %arg17 : i8): @@ -42,7 +42,7 @@ theorem shl_add_nuw_proof : shl_add_nuw_before ⊑ shl_add_nuw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw apply shl_add_nuw_thm @@ -79,7 +79,7 @@ theorem shl_add_nuw_and_nsw_proof : shl_add_nuw_and_nsw_before ⊑ shl_add_nuw_a simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nuw_and_nsw apply shl_add_nuw_and_nsw_thm @@ -116,7 +116,7 @@ theorem shl_add_nsw_proof : shl_add_nsw_before ⊑ shl_add_nsw_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_add_nsw apply shl_add_nsw_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthlogic.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthlogic.lean new file mode 100644 index 000000000..9241ac1c4 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthlogic.lean @@ -0,0 +1,388 @@ +import SSA.Projects.InstCombine.tests.proofs.gshifthlogic_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 gshifthlogic_statements + +def shl_and_before := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg71, %0 : i8 + %3 = llvm.and %2, %arg72 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_and_after := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg71, %0 : i8 + %3 = llvm.shl %arg72, %1 : i8 + %4 = llvm.and %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_and_proof : shl_and_before ⊑ shl_and_after := by + unfold shl_and_before shl_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_and + apply shl_and_thm + ---END shl_and + + + +def shl_or_before := [llvm| +{ +^0(%arg67 : i16, %arg68 : i16): + %0 = "llvm.mlir.constant"() <{value = 42 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 5 : i16}> : () -> i16 + %2 = "llvm.mlir.constant"() <{value = 7 : i16}> : () -> i16 + %3 = llvm.srem %arg68, %0 : i16 + %4 = llvm.shl %arg67, %1 : i16 + %5 = llvm.or %3, %4 : i16 + %6 = llvm.shl %5, %2 : i16 + "llvm.return"(%6) : (i16) -> () +} +] +def shl_or_after := [llvm| +{ +^0(%arg67 : i16, %arg68 : i16): + %0 = "llvm.mlir.constant"() <{value = 42 : i16}> : () -> i16 + %1 = "llvm.mlir.constant"() <{value = 12 : i16}> : () -> i16 + %2 = "llvm.mlir.constant"() <{value = 7 : i16}> : () -> i16 + %3 = llvm.srem %arg68, %0 : i16 + %4 = llvm.shl %arg67, %1 : i16 + %5 = llvm.shl %3, %2 overflow : i16 + %6 = llvm.or %4, %5 : i16 + "llvm.return"(%6) : (i16) -> () +} +] +theorem shl_or_proof : shl_or_before ⊑ shl_or_after := by + unfold shl_or_before shl_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_or + apply shl_or_thm + ---END shl_or + + + +def shl_xor_before := [llvm| +{ +^0(%arg63 : i32, %arg64 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.shl %arg63, %0 : i32 + %3 = llvm.xor %2, %arg64 : i32 + %4 = llvm.shl %3, %1 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +def shl_xor_after := [llvm| +{ +^0(%arg63 : i32, %arg64 : i32): + %0 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %2 = llvm.shl %arg63, %0 : i32 + %3 = llvm.shl %arg64, %1 : i32 + %4 = llvm.xor %2, %3 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem shl_xor_proof : shl_xor_before ⊑ shl_xor_after := by + unfold shl_xor_before shl_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_xor + apply shl_xor_thm + ---END shl_xor + + + +def lshr_and_before := [llvm| +{ +^0(%arg59 : i64, %arg60 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 5 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 7 : i64}> : () -> i64 + %3 = llvm.srem %arg60, %0 : i64 + %4 = llvm.lshr %arg59, %1 : i64 + %5 = llvm.and %3, %4 : i64 + %6 = llvm.lshr %5, %2 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +def lshr_and_after := [llvm| +{ +^0(%arg59 : i64, %arg60 : i64): + %0 = "llvm.mlir.constant"() <{value = 42 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 12 : i64}> : () -> i64 + %2 = "llvm.mlir.constant"() <{value = 7 : i64}> : () -> i64 + %3 = llvm.srem %arg60, %0 : i64 + %4 = llvm.lshr %arg59, %1 : i64 + %5 = llvm.lshr %3, %2 : i64 + %6 = llvm.and %4, %5 : i64 + "llvm.return"(%6) : (i64) -> () +} +] +theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by + unfold lshr_and_before lshr_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and + apply lshr_and_thm + ---END lshr_and + + + +def ashr_xor_before := [llvm| +{ +^0(%arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %3 = llvm.srem %arg47, %0 : i32 + %4 = llvm.ashr %arg46, %1 : i32 + %5 = llvm.xor %3, %4 : i32 + %6 = llvm.ashr %5, %2 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +def ashr_xor_after := [llvm| +{ +^0(%arg46 : i32, %arg47 : i32): + %0 = "llvm.mlir.constant"() <{value = 42 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 12 : i32}> : () -> i32 + %2 = "llvm.mlir.constant"() <{value = 7 : i32}> : () -> i32 + %3 = llvm.srem %arg47, %0 : i32 + %4 = llvm.ashr %arg46, %1 : i32 + %5 = llvm.ashr %3, %2 : i32 + %6 = llvm.xor %4, %5 : i32 + "llvm.return"(%6) : (i32) -> () +} +] +theorem ashr_xor_proof : ashr_xor_before ⊑ ashr_xor_after := by + unfold ashr_xor_before ashr_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_xor + apply ashr_xor_thm + ---END ashr_xor + + + +def lshr_mul_before := [llvm| +{ +^0(%arg35 : i64): + %0 = "llvm.mlir.constant"() <{value = 52 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 2 : i64}> : () -> i64 + %2 = llvm.mul %arg35, %0 overflow : i64 + %3 = llvm.lshr %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def lshr_mul_after := [llvm| +{ +^0(%arg35 : i64): + %0 = "llvm.mlir.constant"() <{value = 13 : i64}> : () -> i64 + %1 = llvm.mul %arg35, %0 overflow : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem lshr_mul_proof : lshr_mul_before ⊑ lshr_mul_after := by + unfold lshr_mul_before lshr_mul_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_mul + apply lshr_mul_thm + ---END lshr_mul + + + +def lshr_mul_nuw_nsw_before := [llvm| +{ +^0(%arg34 : i64): + %0 = "llvm.mlir.constant"() <{value = 52 : i64}> : () -> i64 + %1 = "llvm.mlir.constant"() <{value = 2 : i64}> : () -> i64 + %2 = llvm.mul %arg34, %0 overflow : i64 + %3 = llvm.lshr %2, %1 : i64 + "llvm.return"(%3) : (i64) -> () +} +] +def lshr_mul_nuw_nsw_after := [llvm| +{ +^0(%arg34 : i64): + %0 = "llvm.mlir.constant"() <{value = 13 : i64}> : () -> i64 + %1 = llvm.mul %arg34, %0 overflow : i64 + "llvm.return"(%1) : (i64) -> () +} +] +theorem lshr_mul_nuw_nsw_proof : lshr_mul_nuw_nsw_before ⊑ lshr_mul_nuw_nsw_after := by + unfold lshr_mul_nuw_nsw_before lshr_mul_nuw_nsw_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_mul_nuw_nsw + apply lshr_mul_nuw_nsw_thm + ---END lshr_mul_nuw_nsw + + + +def shl_add_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg27, %0 : i8 + %3 = llvm.add %2, %arg28 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_add_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg27, %0 : i8 + %3 = llvm.shl %arg28, %1 : i8 + %4 = llvm.add %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_add_proof : shl_add_before ⊑ shl_add_after := by + unfold shl_add_before shl_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add + all_goals (try extract_goal ; sorry) + ---END shl_add + + + +def shl_sub_before := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg12, %0 : i8 + %3 = llvm.sub %2, %arg13 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_sub_after := [llvm| +{ +^0(%arg12 : i8, %arg13 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg12, %0 : i8 + %3 = llvm.shl %arg13, %1 : i8 + %4 = llvm.sub %2, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_sub_proof : shl_sub_before ⊑ shl_sub_after := by + unfold shl_sub_before shl_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_sub + apply shl_sub_thm + ---END shl_sub + + + +def shl_sub_no_commute_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg11, %0 : i8 + %3 = llvm.sub %arg10, %2 : i8 + %4 = llvm.shl %3, %1 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def shl_sub_no_commute_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = llvm.shl %arg11, %0 : i8 + %3 = llvm.shl %arg10, %1 : i8 + %4 = llvm.sub %3, %2 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem shl_sub_no_commute_proof : shl_sub_no_commute_before ⊑ shl_sub_no_commute_after := by + unfold shl_sub_no_commute_before shl_sub_no_commute_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_sub_no_commute + apply shl_sub_no_commute_thm + ---END shl_sub_no_commute + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthlogic_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthlogic_proof.lean new file mode 100644 index 000000000..2c7e32f7e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthlogic_proof.lean @@ -0,0 +1,39 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshifthlogic_proof +theorem shl_and_thm (x x_1 : BitVec 8) : (x_1 <<< 3 &&& x) <<< 2 = x_1 <<< 5 &&& x <<< 2 := sorry + +theorem shl_or_thm (x x_1 : BitVec 16) : + some ((x_1 - x_1.sdiv 42#16 * 42#16 ||| x <<< 5) <<< 7) ⊑ + (if ((x_1 - x_1.sdiv 42#16 * 42#16) <<< 7).sshiftRight 7 = x_1 - x_1.sdiv 42#16 * 42#16 then none + else some ((x_1 - x_1.sdiv 42#16 * 42#16) <<< 7)).bind + fun y' => some (x <<< 12 ||| y') := sorry + +theorem shl_xor_thm (x x_1 : BitVec 32) : (x_1 <<< 5 ^^^ x) <<< 7 = x_1 <<< 12 ^^^ x <<< 7 := sorry + +theorem lshr_and_thm (x x_1 : BitVec 64) : + (x_1 - x_1.sdiv 42#64 * 42#64 &&& x >>> 5) >>> 7 = x >>> 12 &&& (x_1 - x_1.sdiv 42#64 * 42#64) >>> 7 := sorry + +theorem ashr_xor_thm (x x_1 : BitVec 32) : + (x_1 - x_1.sdiv 42#32 * 42#32 ^^^ x.sshiftRight 5).sshiftRight 7 = + x.sshiftRight 12 ^^^ (x_1 - x_1.sdiv 42#32 * 42#32).sshiftRight 7 := sorry + +theorem lshr_mul_thm (x : BitVec 64) : + ((if twoPow 128 63 <<< 1 ≤ setWidth 128 x * 52#128 then none else some (x * 52#64)).bind fun x' => some (x' >>> 2)) ⊑ + if signExtend 128 x * 13#128 < signExtend 128 (twoPow 64 63) ∨ twoPow 128 63 ≤ signExtend 128 x * 13#128 then none + else if twoPow 128 63 <<< 1 ≤ setWidth 128 x * 13#128 then none else some (x * 13#64) := sorry + +theorem lshr_mul_nuw_nsw_thm (x : BitVec 64) : + ((if signExtend 128 x * 52#128 < signExtend 128 (twoPow 64 63) ∨ twoPow 128 63 ≤ signExtend 128 x * 52#128 then none + else if twoPow 128 63 <<< 1 ≤ setWidth 128 x * 52#128 then none else some (x * 52#64)).bind + fun x' => some (x' >>> 2)) ⊑ + if signExtend 128 x * 13#128 < signExtend 128 (twoPow 64 63) ∨ twoPow 128 63 ≤ signExtend 128 x * 13#128 then none + else if twoPow 128 63 <<< 1 ≤ setWidth 128 x * 13#128 then none else some (x * 13#64) := sorry + +theorem shl_sub_thm (x x_1 : BitVec 8) : (x_1 <<< 3 - x) <<< 2 = x_1 <<< 5 - x <<< 2 := sorry + +theorem shl_sub_no_commute_thm (x x_1 : BitVec 8) : (x_1 - x <<< 3) <<< 2 = x_1 <<< 2 - x <<< 5 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean index 168114f75..00829642b 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthshift.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthshift_statements - + def shl_shl_before := [llvm| { ^0(%arg50 : i32): @@ -37,7 +37,7 @@ theorem shl_shl_proof : shl_shl_before ⊑ shl_shl_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_shl apply shl_shl_thm @@ -69,7 +69,7 @@ theorem lshr_lshr_proof : lshr_lshr_before ⊑ lshr_lshr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_lshr apply lshr_lshr_thm @@ -104,7 +104,7 @@ theorem ashr_shl_constants_proof : ashr_shl_constants_before ⊑ ashr_shl_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_shl_constants apply ashr_shl_constants_thm @@ -141,7 +141,7 @@ theorem shl_lshr_demand1_proof : shl_lshr_demand1_before ⊑ shl_lshr_demand1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_demand1 apply shl_lshr_demand1_thm @@ -178,7 +178,7 @@ theorem shl_lshr_demand6_proof : shl_lshr_demand6_before ⊑ shl_lshr_demand6_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN shl_lshr_demand6 apply shl_lshr_demand6_thm @@ -215,7 +215,7 @@ theorem lshr_shl_demand1_proof : lshr_shl_demand1_before ⊑ lshr_shl_demand1_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_demand1 apply lshr_shl_demand1_thm @@ -252,7 +252,7 @@ theorem lshr_shl_demand3_proof : lshr_shl_demand3_before ⊑ lshr_shl_demand3_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN lshr_shl_demand3 apply lshr_shl_demand3_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean b/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean index 3d238e735..c2d8ad805 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshifthsra.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshifthsra_statements - + def ashr_ashr_before := [llvm| { ^0(%arg7 : i32): @@ -38,7 +38,7 @@ theorem ashr_ashr_proof : ashr_ashr_before ⊑ ashr_ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_ashr apply ashr_ashr_thm @@ -71,7 +71,7 @@ theorem ashr_overshift_proof : ashr_overshift_before ⊑ ashr_overshift_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr_overshift apply ashr_overshift_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhbo.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhbo.lean new file mode 100644 index 000000000..203e92a7b --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhbo.lean @@ -0,0 +1,582 @@ +import SSA.Projects.InstCombine.tests.proofs.gshlhbo_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 gshlhbo_statements + +def lshr_add_before := [llvm| +{ +^0(%arg81 : i8, %arg82 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = llvm.srem %arg81, %0 : i8 + %3 = llvm.lshr %arg82, %1 : i8 + %4 = llvm.add %3, %2 : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_add_after := [llvm| +{ +^0(%arg81 : i8, %arg82 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 5 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -32 : i8}> : () -> i8 + %3 = llvm.srem %arg81, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.add %arg82, %4 : i8 + %6 = llvm.and %5, %2 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_add_proof : lshr_add_before ⊑ lshr_add_after := by + unfold lshr_add_before lshr_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_add + apply lshr_add_thm + ---END lshr_add + + + +def lshr_sub_before := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.srem %arg77, %0 : i8 + %3 = llvm.lshr %arg78, %1 : i8 + %4 = llvm.sub %2, %3 : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_sub_after := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.srem %arg77, %0 : i8 + %3 = llvm.lshr %arg78, %1 : i8 + %4 = llvm.sub %2, %3 overflow : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +theorem lshr_sub_proof : lshr_sub_before ⊑ lshr_sub_after := by + unfold lshr_sub_before lshr_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_sub + apply lshr_sub_thm + ---END lshr_sub + + + +def lshr_and_before := [llvm| +{ +^0(%arg73 : i8, %arg74 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.srem %arg73, %0 : i8 + %3 = llvm.lshr %arg74, %1 : i8 + %4 = llvm.and %3, %2 : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_and_after := [llvm| +{ +^0(%arg73 : i8, %arg74 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 6 : i8}> : () -> i8 + %2 = llvm.srem %arg73, %0 : i8 + %3 = llvm.shl %2, %1 : i8 + %4 = llvm.and %arg74, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem lshr_and_proof : lshr_and_before ⊑ lshr_and_after := by + unfold lshr_and_before lshr_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and + apply lshr_and_thm + ---END lshr_and + + + +def lshr_or_before := [llvm| +{ +^0(%arg69 : i8, %arg70 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = llvm.srem %arg69, %0 : i8 + %3 = llvm.lshr %arg70, %1 : i8 + %4 = llvm.or %2, %3 : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_or_after := [llvm| +{ +^0(%arg69 : i8, %arg70 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 4 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -16 : i8}> : () -> i8 + %3 = llvm.srem %arg69, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg70, %2 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_or_proof : lshr_or_before ⊑ lshr_or_after := by + unfold lshr_or_before lshr_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_or + apply lshr_or_thm + ---END lshr_or + + + +def lshr_xor_before := [llvm| +{ +^0(%arg65 : i8, %arg66 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = llvm.srem %arg65, %0 : i8 + %3 = llvm.lshr %arg66, %1 : i8 + %4 = llvm.xor %3, %2 : i8 + %5 = llvm.shl %4, %1 : i8 + "llvm.return"(%5) : (i8) -> () +} +] +def lshr_xor_after := [llvm| +{ +^0(%arg65 : i8, %arg66 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = -8 : i8}> : () -> i8 + %3 = llvm.srem %arg65, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg66, %2 : i8 + %6 = llvm.xor %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_xor_proof : lshr_xor_before ⊑ lshr_xor_after := by + unfold lshr_xor_before lshr_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_xor + apply lshr_xor_thm + ---END lshr_xor + + + +def lshr_and_add_before := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 12 : i8}> : () -> i8 + %3 = llvm.srem %arg57, %0 : i8 + %4 = llvm.lshr %arg58, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.add %3, %5 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_add_after := [llvm| +{ +^0(%arg57 : i8, %arg58 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 3 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 96 : i8}> : () -> i8 + %3 = llvm.srem %arg57, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg58, %2 : i8 + %6 = llvm.add %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_and_add_proof : lshr_and_add_before ⊑ lshr_and_add_after := by + unfold lshr_and_add_before lshr_and_add_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_add + apply lshr_and_add_thm + ---END lshr_and_add + + + +def lshr_and_sub_before := [llvm| +{ +^0(%arg53 : i8, %arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg53, %0 : i8 + %4 = llvm.lshr %arg54, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.sub %3, %5 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_sub_after := [llvm| +{ +^0(%arg53 : i8, %arg54 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg53, %0 : i8 + %4 = llvm.lshr %arg54, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.sub %3, %5 overflow : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +theorem lshr_and_sub_proof : lshr_and_sub_before ⊑ lshr_and_sub_after := by + unfold lshr_and_sub_before lshr_and_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_sub + apply lshr_and_sub_thm + ---END lshr_and_sub + + + +def lshr_and_and_before := [llvm| +{ +^0(%arg49 : i8, %arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg49, %0 : i8 + %4 = llvm.lshr %arg50, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.and %5, %3 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_and_after := [llvm| +{ +^0(%arg49 : i8, %arg50 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 52 : i8}> : () -> i8 + %3 = llvm.srem %arg49, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg50, %2 : i8 + %6 = llvm.and %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_and_and_proof : lshr_and_and_before ⊑ lshr_and_and_after := by + unfold lshr_and_and_before lshr_and_and_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_and + apply lshr_and_and_thm + ---END lshr_and_and + + + +def lshr_and_or_before := [llvm| +{ +^0(%arg45 : i8, %arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg45, %0 : i8 + %4 = llvm.lshr %arg46, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.or %3, %5 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_or_after := [llvm| +{ +^0(%arg45 : i8, %arg46 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 52 : i8}> : () -> i8 + %3 = llvm.srem %arg45, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg46, %2 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_and_or_proof : lshr_and_or_before ⊑ lshr_and_or_after := by + unfold lshr_and_or_before lshr_and_or_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_or + apply lshr_and_or_thm + ---END lshr_and_or + + + +def lshr_and_or_disjoint_before := [llvm| +{ +^0(%arg43 : i8, %arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg43, %0 : i8 + %4 = llvm.lshr %arg44, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.or %3, %5 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_or_disjoint_after := [llvm| +{ +^0(%arg43 : i8, %arg44 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 52 : i8}> : () -> i8 + %3 = llvm.srem %arg43, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg44, %2 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_and_or_disjoint_proof : lshr_and_or_disjoint_before ⊑ lshr_and_or_disjoint_after := by + unfold lshr_and_or_disjoint_before lshr_and_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_or_disjoint + apply lshr_and_or_disjoint_thm + ---END lshr_and_or_disjoint + + + +def ashr_and_or_disjoint_before := [llvm| +{ +^0(%arg41 : i8, %arg42 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg41, %0 : i8 + %4 = llvm.ashr %arg42, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.or %3, %5 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def ashr_and_or_disjoint_after := [llvm| +{ +^0(%arg41 : i8, %arg42 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 52 : i8}> : () -> i8 + %3 = llvm.srem %arg41, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg42, %2 : i8 + %6 = llvm.or %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem ashr_and_or_disjoint_proof : ashr_and_or_disjoint_before ⊑ ashr_and_or_disjoint_after := by + unfold ashr_and_or_disjoint_before ashr_and_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN ashr_and_or_disjoint + apply ashr_and_or_disjoint_thm + ---END ashr_and_or_disjoint + + + +def lshr_and_xor_before := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 13 : i8}> : () -> i8 + %3 = llvm.srem %arg37, %0 : i8 + %4 = llvm.lshr %arg38, %1 : i8 + %5 = llvm.and %4, %2 : i8 + %6 = llvm.xor %5, %3 : i8 + %7 = llvm.shl %6, %1 : i8 + "llvm.return"(%7) : (i8) -> () +} +] +def lshr_and_xor_after := [llvm| +{ +^0(%arg37 : i8, %arg38 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 2 : i8}> : () -> i8 + %2 = "llvm.mlir.constant"() <{value = 52 : i8}> : () -> i8 + %3 = llvm.srem %arg37, %0 : i8 + %4 = llvm.shl %3, %1 : i8 + %5 = llvm.and %arg38, %2 : i8 + %6 = llvm.xor %5, %4 : i8 + "llvm.return"(%6) : (i8) -> () +} +] +theorem lshr_and_xor_proof : lshr_and_xor_before ⊑ lshr_and_xor_after := by + unfold lshr_and_xor_before lshr_and_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_and_xor + apply lshr_and_xor_thm + ---END lshr_and_xor + + + +def lshr_add_and_shl_before := [llvm| +{ +^0(%arg17 : i32, %arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 127 : i32}> : () -> i32 + %2 = llvm.lshr %arg17, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %arg18, %3 : i32 + %5 = llvm.shl %4, %0 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def lshr_add_and_shl_after := [llvm| +{ +^0(%arg17 : i32, %arg18 : i32): + %0 = "llvm.mlir.constant"() <{value = 5 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 4064 : i32}> : () -> i32 + %2 = llvm.shl %arg18, %0 : i32 + %3 = llvm.and %arg17, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem lshr_add_and_shl_proof : lshr_add_and_shl_before ⊑ lshr_add_and_shl_after := by + unfold lshr_add_and_shl_before lshr_add_and_shl_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN lshr_add_and_shl + apply lshr_add_and_shl_thm + ---END lshr_add_and_shl + + + +def shl_add_and_lshr_before := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 8 : i32}> : () -> i32 + %2 = llvm.lshr %arg9, %0 : i32 + %3 = llvm.and %2, %1 : i32 + %4 = llvm.add %3, %arg10 : i32 + %5 = llvm.shl %4, %0 : i32 + "llvm.return"(%5) : (i32) -> () +} +] +def shl_add_and_lshr_after := [llvm| +{ +^0(%arg9 : i32, %arg10 : i32): + %0 = "llvm.mlir.constant"() <{value = 4 : i32}> : () -> i32 + %1 = "llvm.mlir.constant"() <{value = 128 : i32}> : () -> i32 + %2 = llvm.shl %arg10, %0 : i32 + %3 = llvm.and %arg9, %1 : i32 + %4 = llvm.add %3, %2 : i32 + "llvm.return"(%4) : (i32) -> () +} +] +theorem shl_add_and_lshr_proof : shl_add_and_lshr_before ⊑ shl_add_and_lshr_after := by + unfold shl_add_and_lshr_before shl_add_and_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN shl_add_and_lshr + apply shl_add_and_lshr_thm + ---END shl_add_and_lshr + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhbo_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhbo_proof.lean new file mode 100644 index 000000000..49ad5cade --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhbo_proof.lean @@ -0,0 +1,60 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gshlhbo_proof +theorem lshr_add_thm (x x_1 : BitVec 8) : + (x_1 &&& 224#8) + (x - x.sdiv 42#8 * 42#8) <<< 5 = x_1 + (x - x.sdiv 42#8 * 42#8) <<< 5 &&& 224#8 := sorry + +theorem lshr_sub_thm (x x_1 : BitVec 8) : + some ((x_1 - x_1.sdiv 42#8 * 42#8 - x >>> 3) <<< 3) ⊑ + (if + (signExtend 9 (x_1 - x_1.sdiv 42#8 * 42#8) - signExtend 9 (x >>> 3)).msb = + (signExtend 9 (x_1 - x_1.sdiv 42#8 * 42#8) - signExtend 9 (x >>> 3)).getMsbD 1 then + some (x_1 - x_1.sdiv 42#8 * 42#8 - x >>> 3) + else none).bind + fun x' => some (x' <<< 3) := sorry + +theorem lshr_and_thm (x x_1 : BitVec 8) : + (x_1 >>> 6 &&& x - x.sdiv 42#8 * 42#8) <<< 6 = x_1 &&& (x - x.sdiv 42#8 * 42#8) <<< 6 := sorry + +theorem lshr_or_thm (x x_1 : BitVec 8) : + (x_1 - x_1.sdiv 42#8 * 42#8 ||| x >>> 4) <<< 4 = x &&& 240#8 ||| (x_1 - x_1.sdiv 42#8 * 42#8) <<< 4 := sorry + +theorem lshr_xor_thm (x x_1 : BitVec 8) : + (x_1 >>> 3 ^^^ x - x.sdiv 42#8 * 42#8) <<< 3 = x_1 &&& 248#8 ^^^ (x - x.sdiv 42#8 * 42#8) <<< 3 := sorry + +theorem lshr_and_add_thm (x x_1 : BitVec 8) : + (x_1 - x_1.sdiv 42#8 * 42#8) <<< 3 + (x >>> 3 &&& 12#8) <<< 3 = + (x &&& 96#8) + (x_1 - x_1.sdiv 42#8 * 42#8) <<< 3 := sorry + +theorem lshr_and_sub_thm (x x_1 : BitVec 8) : + some ((x_1 - x_1.sdiv 42#8 * 42#8 - (x >>> 2 &&& 13#8)) <<< 2) ⊑ + (if + (signExtend 9 (x_1 - x_1.sdiv 42#8 * 42#8) - signExtend 9 (x >>> 2 &&& 13#8)).msb = + (signExtend 9 (x_1 - x_1.sdiv 42#8 * 42#8) - signExtend 9 (x >>> 2 &&& 13#8)).getMsbD 1 then + some (x_1 - x_1.sdiv 42#8 * 42#8 - (x >>> 2 &&& 13#8)) + else none).bind + fun x' => some (x' <<< 2) := sorry + +theorem lshr_and_and_thm (x x_1 : BitVec 8) : + (x_1 >>> 2 &&& 13#8 &&& x - x.sdiv 42#8 * 42#8) <<< 2 = x_1 &&& 52#8 &&& (x - x.sdiv 42#8 * 42#8) <<< 2 := sorry + +theorem lshr_and_or_thm (x x_1 : BitVec 8) : + (x_1 - x_1.sdiv 42#8 * 42#8 ||| x >>> 2 &&& 13#8) <<< 2 = x &&& 52#8 ||| (x_1 - x_1.sdiv 42#8 * 42#8) <<< 2 := sorry + +theorem lshr_and_or_disjoint_thm (x x_1 : BitVec 8) : + (x_1 - x_1.sdiv 42#8 * 42#8 ||| x >>> 2 &&& 13#8) <<< 2 = x &&& 52#8 ||| (x_1 - x_1.sdiv 42#8 * 42#8) <<< 2 := sorry + +theorem ashr_and_or_disjoint_thm (x x_1 : BitVec 8) : + (x_1 - x_1.sdiv 42#8 * 42#8 ||| x.sshiftRight 2 &&& 13#8) <<< 2 = + x &&& 52#8 ||| (x_1 - x_1.sdiv 42#8 * 42#8) <<< 2 := sorry + +theorem lshr_and_xor_thm (x x_1 : BitVec 8) : + (x_1 >>> 2 &&& 13#8 ^^^ x - x.sdiv 42#8 * 42#8) <<< 2 = x_1 &&& 52#8 ^^^ (x - x.sdiv 42#8 * 42#8) <<< 2 := sorry + +theorem lshr_add_and_shl_thm (x x_1 : BitVec 32) : x_1 <<< 5 + (x >>> 5 &&& 127#32) <<< 5 = (x &&& 4064#32) + x_1 <<< 5 := sorry + +theorem shl_add_and_lshr_thm (x : BitVec 32) : (x >>> 4 &&& 8#32) <<< 4 = x &&& 128#32 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean index 9a207e58e..d2eb7b7d6 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhdemand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhdemand_statements - + def src_srem_shl_demand_max_signbit_before := [llvm| { ^0(%arg24 : i32): @@ -42,7 +42,7 @@ theorem src_srem_shl_demand_max_signbit_proof : src_srem_shl_demand_max_signbit_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_signbit apply src_srem_shl_demand_max_signbit_thm @@ -79,7 +79,7 @@ theorem src_srem_shl_demand_min_signbit_proof : src_srem_shl_demand_min_signbit_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_min_signbit apply src_srem_shl_demand_min_signbit_thm @@ -116,7 +116,7 @@ theorem src_srem_shl_demand_max_mask_proof : src_srem_shl_demand_max_mask_before simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_mask apply src_srem_shl_demand_max_mask_thm @@ -155,7 +155,7 @@ theorem src_srem_shl_demand_max_signbit_mask_hit_first_demand_proof : src_srem_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_signbit_mask_hit_first_demand apply src_srem_shl_demand_max_signbit_mask_hit_first_demand_thm @@ -194,7 +194,7 @@ theorem src_srem_shl_demand_min_signbit_mask_hit_last_demand_proof : src_srem_sh simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_min_signbit_mask_hit_last_demand apply src_srem_shl_demand_min_signbit_mask_hit_last_demand_thm @@ -233,7 +233,7 @@ theorem src_srem_shl_demand_eliminate_signbit_proof : src_srem_shl_demand_elimin simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_eliminate_signbit apply src_srem_shl_demand_eliminate_signbit_thm @@ -272,7 +272,7 @@ theorem src_srem_shl_demand_max_mask_hit_demand_proof : src_srem_shl_demand_max_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN src_srem_shl_demand_max_mask_hit_demand apply src_srem_shl_demand_max_mask_hit_demand_thm @@ -309,7 +309,7 @@ theorem set_shl_mask_proof : set_shl_mask_before ⊑ set_shl_mask_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN set_shl_mask apply set_shl_mask_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean index 4055af384..6246c0518 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gshlhfactor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gshlhfactor_statements - + def add_shl_same_amount_before := [llvm| { ^0(%arg59 : i6, %arg60 : i6, %arg61 : i6): @@ -37,7 +37,7 @@ theorem add_shl_same_amount_proof : add_shl_same_amount_before ⊑ add_shl_same_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount apply add_shl_same_amount_thm @@ -69,7 +69,7 @@ theorem add_shl_same_amount_nuw_proof : add_shl_same_amount_nuw_before ⊑ add_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_nuw apply add_shl_same_amount_nuw_thm @@ -101,7 +101,7 @@ theorem add_shl_same_amount_partial_nsw1_proof : add_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nsw1 apply add_shl_same_amount_partial_nsw1_thm @@ -133,7 +133,7 @@ theorem add_shl_same_amount_partial_nsw2_proof : add_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nsw2 apply add_shl_same_amount_partial_nsw2_thm @@ -165,7 +165,7 @@ theorem add_shl_same_amount_partial_nuw1_proof : add_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nuw1 apply add_shl_same_amount_partial_nuw1_thm @@ -197,7 +197,7 @@ theorem add_shl_same_amount_partial_nuw2_proof : add_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_partial_nuw2 apply add_shl_same_amount_partial_nuw2_thm @@ -229,7 +229,7 @@ theorem sub_shl_same_amount_proof : sub_shl_same_amount_before ⊑ sub_shl_same_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount apply sub_shl_same_amount_thm @@ -261,7 +261,7 @@ theorem sub_shl_same_amount_nuw_proof : sub_shl_same_amount_nuw_before ⊑ sub_s simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_nuw apply sub_shl_same_amount_nuw_thm @@ -293,7 +293,7 @@ theorem sub_shl_same_amount_partial_nsw1_proof : sub_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nsw1 apply sub_shl_same_amount_partial_nsw1_thm @@ -325,7 +325,7 @@ theorem sub_shl_same_amount_partial_nsw2_proof : sub_shl_same_amount_partial_nsw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nsw2 apply sub_shl_same_amount_partial_nsw2_thm @@ -357,7 +357,7 @@ theorem sub_shl_same_amount_partial_nuw1_proof : sub_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nuw1 apply sub_shl_same_amount_partial_nuw1_thm @@ -389,7 +389,7 @@ theorem sub_shl_same_amount_partial_nuw2_proof : sub_shl_same_amount_partial_nuw simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_shl_same_amount_partial_nuw2 apply sub_shl_same_amount_partial_nuw2_thm @@ -423,7 +423,7 @@ theorem add_shl_same_amount_constants_proof : add_shl_same_amount_constants_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN add_shl_same_amount_constants apply add_shl_same_amount_constants_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsignext.lean b/SSA/Projects/InstCombine/tests/proofs/gsignext.lean index 4d6013630..64ecb15b9 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsignext.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsignext.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsignext_statements - + def sextinreg_before := [llvm| { ^0(%arg14 : i32): @@ -41,7 +41,7 @@ theorem sextinreg_proof : sextinreg_before ⊑ sextinreg_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg apply sextinreg_thm @@ -77,7 +77,7 @@ theorem sextinreg_alt_proof : sextinreg_alt_before ⊑ sextinreg_alt_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg_alt apply sextinreg_alt_thm @@ -113,7 +113,7 @@ theorem sextinreg2_proof : sextinreg2_before ⊑ sextinreg2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sextinreg2 apply sextinreg2_thm @@ -148,7 +148,7 @@ theorem ashr_proof : ashr_before ⊑ ashr_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN ashr apply ashr_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean index 64aac43e2..d6493d9d0 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsremhcanonicalize.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsremhcanonicalize_statements - + def test_srem_canonicalize_op0_before := [llvm| { ^0(%arg8 : i32, %arg9 : i32): @@ -38,7 +38,7 @@ theorem test_srem_canonicalize_op0_proof : test_srem_canonicalize_op0_before ⊑ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test_srem_canonicalize_op0 apply test_srem_canonicalize_op0_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean index 51faf7b10..c46571ae5 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhandhorhneghxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhandhorhneghxor_statements - + def sub_to_xor_before := [llvm| { ^0(%arg14 : i32, %arg15 : i32): @@ -38,7 +38,7 @@ theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor apply sub_to_xor_thm @@ -71,7 +71,7 @@ theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_or_commuted apply sub_to_xor_or_commuted_thm @@ -104,7 +104,7 @@ theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_xor_and_commuted apply sub_to_xor_and_commuted_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub.lean new file mode 100644 index 000000000..7f852c75e --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub.lean @@ -0,0 +1,427 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhfromhsub_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 gsubhfromhsub_statements + +def t0_before := [llvm| +{ +^0(%arg51 : i8, %arg52 : i8, %arg53 : i8): + %0 = llvm.sub %arg51, %arg52 : i8 + %1 = llvm.sub %0, %arg53 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg51 : i8, %arg52 : i8, %arg53 : i8): + %0 = llvm.add %arg52, %arg53 : i8 + %1 = llvm.sub %arg51, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t1_flags_before := [llvm| +{ +^0(%arg48 : i8, %arg49 : i8, %arg50 : i8): + %0 = llvm.sub %arg48, %arg49 overflow : i8 + %1 = llvm.sub %0, %arg50 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_after := [llvm| +{ +^0(%arg48 : i8, %arg49 : i8, %arg50 : i8): + %0 = llvm.add %arg49, %arg50 overflow : i8 + %1 = llvm.sub %arg48, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_proof : t1_flags_before ⊑ t1_flags_after := by + unfold t1_flags_before t1_flags_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags + apply t1_flags_thm + ---END t1_flags + + + +def t1_flags_nuw_only_before := [llvm| +{ +^0(%arg45 : i8, %arg46 : i8, %arg47 : i8): + %0 = llvm.sub %arg45, %arg46 overflow : i8 + %1 = llvm.sub %0, %arg47 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_nuw_only_after := [llvm| +{ +^0(%arg45 : i8, %arg46 : i8, %arg47 : i8): + %0 = llvm.add %arg46, %arg47 overflow : i8 + %1 = llvm.sub %arg45, %0 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_nuw_only_proof : t1_flags_nuw_only_before ⊑ t1_flags_nuw_only_after := by + unfold t1_flags_nuw_only_before t1_flags_nuw_only_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_nuw_only + apply t1_flags_nuw_only_thm + ---END t1_flags_nuw_only + + + +def t1_flags_sub_nsw_sub_before := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8, %arg44 : i8): + %0 = llvm.sub %arg42, %arg43 overflow : i8 + %1 = llvm.sub %0, %arg44 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_sub_nsw_sub_after := [llvm| +{ +^0(%arg42 : i8, %arg43 : i8, %arg44 : i8): + %0 = llvm.add %arg43, %arg44 : i8 + %1 = llvm.sub %arg42, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_sub_nsw_sub_proof : t1_flags_sub_nsw_sub_before ⊑ t1_flags_sub_nsw_sub_after := by + unfold t1_flags_sub_nsw_sub_before t1_flags_sub_nsw_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_sub_nsw_sub + apply t1_flags_sub_nsw_sub_thm + ---END t1_flags_sub_nsw_sub + + + +def t1_flags_nuw_first_before := [llvm| +{ +^0(%arg39 : i8, %arg40 : i8, %arg41 : i8): + %0 = llvm.sub %arg39, %arg40 overflow : i8 + %1 = llvm.sub %0, %arg41 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_nuw_first_after := [llvm| +{ +^0(%arg39 : i8, %arg40 : i8, %arg41 : i8): + %0 = llvm.add %arg40, %arg41 : i8 + %1 = llvm.sub %arg39, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_nuw_first_proof : t1_flags_nuw_first_before ⊑ t1_flags_nuw_first_after := by + unfold t1_flags_nuw_first_before t1_flags_nuw_first_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_nuw_first + apply t1_flags_nuw_first_thm + ---END t1_flags_nuw_first + + + +def t1_flags_nuw_second_before := [llvm| +{ +^0(%arg36 : i8, %arg37 : i8, %arg38 : i8): + %0 = llvm.sub %arg36, %arg37 : i8 + %1 = llvm.sub %0, %arg38 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_nuw_second_after := [llvm| +{ +^0(%arg36 : i8, %arg37 : i8, %arg38 : i8): + %0 = llvm.add %arg37, %arg38 : i8 + %1 = llvm.sub %arg36, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_nuw_second_proof : t1_flags_nuw_second_before ⊑ t1_flags_nuw_second_after := by + unfold t1_flags_nuw_second_before t1_flags_nuw_second_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_nuw_second + apply t1_flags_nuw_second_thm + ---END t1_flags_nuw_second + + + +def t1_flags_nuw_nsw_first_before := [llvm| +{ +^0(%arg33 : i8, %arg34 : i8, %arg35 : i8): + %0 = llvm.sub %arg33, %arg34 overflow : i8 + %1 = llvm.sub %0, %arg35 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_nuw_nsw_first_after := [llvm| +{ +^0(%arg33 : i8, %arg34 : i8, %arg35 : i8): + %0 = llvm.add %arg34, %arg35 : i8 + %1 = llvm.sub %arg33, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_nuw_nsw_first_proof : t1_flags_nuw_nsw_first_before ⊑ t1_flags_nuw_nsw_first_after := by + unfold t1_flags_nuw_nsw_first_before t1_flags_nuw_nsw_first_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_nuw_nsw_first + apply t1_flags_nuw_nsw_first_thm + ---END t1_flags_nuw_nsw_first + + + +def t1_flags_nuw_nsw_second_before := [llvm| +{ +^0(%arg30 : i8, %arg31 : i8, %arg32 : i8): + %0 = llvm.sub %arg30, %arg31 : i8 + %1 = llvm.sub %0, %arg32 overflow : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t1_flags_nuw_nsw_second_after := [llvm| +{ +^0(%arg30 : i8, %arg31 : i8, %arg32 : i8): + %0 = llvm.add %arg31, %arg32 : i8 + %1 = llvm.sub %arg30, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t1_flags_nuw_nsw_second_proof : t1_flags_nuw_nsw_second_before ⊑ t1_flags_nuw_nsw_second_after := by + unfold t1_flags_nuw_nsw_second_before t1_flags_nuw_nsw_second_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1_flags_nuw_nsw_second + apply t1_flags_nuw_nsw_second_thm + ---END t1_flags_nuw_nsw_second + + + +def t3_c0_before := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg25 : i8 + %2 = llvm.sub %1, %arg26 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t3_c0_after := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.add %arg25, %arg26 : i8 + %2 = llvm.sub %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t3_c0_proof : t3_c0_before ⊑ t3_c0_after := by + unfold t3_c0_before t3_c0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t3_c0 + apply t3_c0_thm + ---END t3_c0 + + + +def t4_c1_before := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %arg23, %0 : i8 + %2 = llvm.sub %1, %arg24 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t4_c1_after := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg23, %0 : i8 + %2 = llvm.sub %1, %arg24 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t4_c1_proof : t4_c1_before ⊑ t4_c1_after := by + unfold t4_c1_before t4_c1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t4_c1 + apply t4_c1_thm + ---END t4_c1 + + + +def t5_c2_before := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %arg21, %arg22 : i8 + %2 = llvm.sub %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t5_c2_after := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %arg21, %arg22 : i8 + %2 = llvm.add %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t5_c2_proof : t5_c2_before ⊑ t5_c2_after := by + unfold t5_c2_before t5_c2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t5_c2 + apply t5_c2_thm + ---END t5_c2 + + + +def t9_c0_c2_before := [llvm| +{ +^0(%arg13 : i8, %arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg13 : i8 + %3 = llvm.sub %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t9_c0_c2_after := [llvm| +{ +^0(%arg13 : i8, %arg14 : i8): + %0 = "llvm.mlir.constant"() <{value = 18 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg13 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t9_c0_c2_proof : t9_c0_c2_before ⊑ t9_c0_c2_after := by + unfold t9_c0_c2_before t9_c0_c2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t9_c0_c2 + apply t9_c0_c2_thm + ---END t9_c0_c2 + + + +def t10_c1_c2_before := [llvm| +{ +^0(%arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 24 : i8}> : () -> i8 + %2 = llvm.sub %arg11, %0 : i8 + %3 = llvm.sub %2, %1 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def t10_c1_c2_after := [llvm| +{ +^0(%arg11 : i8, %arg12 : i8): + %0 = "llvm.mlir.constant"() <{value = -66 : i8}> : () -> i8 + %1 = llvm.add %arg11, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t10_c1_c2_proof : t10_c1_c2_before ⊑ t10_c1_c2_after := by + unfold t10_c1_c2_before t10_c1_c2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t10_c1_c2 + apply t10_c1_c2_thm + ---END t10_c1_c2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub_proof.lean new file mode 100644 index 000000000..2d7c7a15f --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhfromhsub_proof.lean @@ -0,0 +1,63 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhfromhsub_proof +theorem t0_thm (x x_1 x_2 : BitVec 8) : x_2 - x_1 - x = x_2 - (x_1 + x) := sorry + +theorem t1_flags_thm (x x_1 x_2 : BitVec 8) : + ((if (signExtend 9 x_2 - signExtend 9 x_1).msb = (signExtend 9 x_2 - signExtend 9 x_1).getMsbD 1 then + if x_2 < x_1 then none else some (x_2 - x_1) + else none).bind + fun a => + if (signExtend 9 a - signExtend 9 x).msb = (signExtend 9 a - signExtend 9 x).getMsbD 1 then + if a < x then none else some (a - x) + else none) ⊑ + (if x_1.msb = x.msb ∧ ¬(x_1 + x).msb = x_1.msb then none + else if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x)).bind + fun y' => + if (signExtend 9 x_2 - signExtend 9 y').msb = (signExtend 9 x_2 - signExtend 9 y').getMsbD 1 then + if x_2 < y' then none else some (x_2 - y') + else none := sorry + +theorem t1_flags_nuw_only_thm (x x_1 x_2 : BitVec 8) : + ((if x_2 < x_1 then none else some (x_2 - x_1)).bind fun a => if a < x then none else some (a - x)) ⊑ + (if x_1 + x < x_1 ∨ x_1 + x < x then none else some (x_1 + x)).bind fun y' => + if x_2 < y' then none else some (x_2 - y') := sorry + +theorem t1_flags_sub_nsw_sub_thm (x x_1 x_2 : BitVec 8) : + ((if (signExtend 9 x_2 - signExtend 9 x_1).msb = (signExtend 9 x_2 - signExtend 9 x_1).getMsbD 1 then some (x_2 - x_1) + else none).bind + fun a => some (a - x)) ⊑ + some (x_2 - (x_1 + x)) := sorry + +theorem t1_flags_nuw_first_thm (x x_1 x_2 : BitVec 8) : + ((if x_2 < x_1 then none else some (x_2 - x_1)).bind fun a => some (a - x)) ⊑ some (x_2 - (x_1 + x)) := sorry + +theorem t1_flags_nuw_second_thm (x x_1 x_2 : BitVec 8) : + (if x_2 - x_1 < x then none else some (x_2 - x_1 - x)) ⊑ some (x_2 - (x_1 + x)) := sorry + +theorem t1_flags_nuw_nsw_first_thm (x x_1 x_2 : BitVec 8) : + ((if (signExtend 9 x_2 - signExtend 9 x_1).msb = (signExtend 9 x_2 - signExtend 9 x_1).getMsbD 1 then + if x_2 < x_1 then none else some (x_2 - x_1) + else none).bind + fun a => some (a - x)) ⊑ + some (x_2 - (x_1 + x)) := sorry + +theorem t1_flags_nuw_nsw_second_thm (x x_1 x_2 : BitVec 8) : + (if (signExtend 9 (x_2 - x_1) - signExtend 9 x).msb = (signExtend 9 (x_2 - x_1) - signExtend 9 x).getMsbD 1 then + if x_2 - x_1 < x then none else some (x_2 - x_1 - x) + else none) ⊑ + some (x_2 - (x_1 + x)) := sorry + +theorem t3_c0_thm (x x_1 : BitVec 8) : 42#8 - x_1 - x = 42#8 - (x_1 + x) := sorry + +theorem t4_c1_thm (x : BitVec 8) : x - 42#8 = x + 214#8 := sorry + +theorem t5_c2_thm (x x_1 : BitVec 8) : x_1 - x - 42#8 = x_1 - x + 214#8 := sorry + +theorem t9_c0_c2_thm (x : BitVec 8) : 42#8 - x - 24#8 = 18#8 - x := sorry + +theorem t10_c1_c2_thm (x : BitVec 8) : x - 42#8 - 24#8 = x + 190#8 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhnot.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhnot.lean new file mode 100644 index 000000000..039f53445 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhnot.lean @@ -0,0 +1,146 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhnot_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 gsubhnot_statements + +def sub_not_before := [llvm| +{ +^0(%arg22 : i8, %arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.sub %arg22, %arg23 : i8 + %2 = llvm.xor %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_not_after := [llvm| +{ +^0(%arg22 : i8, %arg23 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg22, %0 : i8 + %2 = llvm.add %arg23, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_not_proof : sub_not_before ⊑ sub_not_after := by + unfold sub_not_before sub_not_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_not + apply sub_not_thm + ---END sub_not + + + +def dec_sub_before := [llvm| +{ +^0(%arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.sub %arg16, %arg17 : i8 + %2 = llvm.add %1, %0 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def dec_sub_after := [llvm| +{ +^0(%arg16 : i8, %arg17 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg17, %0 : i8 + %2 = llvm.add %arg16, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem dec_sub_proof : dec_sub_before ⊑ dec_sub_after := by + unfold dec_sub_before dec_sub_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN dec_sub + apply dec_sub_thm + ---END dec_sub + + + +def sub_inc_before := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.add %arg10, %0 : i8 + %2 = llvm.sub %arg11, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_inc_after := [llvm| +{ +^0(%arg10 : i8, %arg11 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg10, %0 : i8 + %2 = llvm.add %arg11, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_inc_proof : sub_inc_before ⊑ sub_inc_after := by + unfold sub_inc_before sub_inc_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_inc + apply sub_inc_thm + ---END sub_inc + + + +def sub_dec_before := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.add %arg4, %0 : i8 + %2 = llvm.sub %1, %arg5 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_dec_after := [llvm| +{ +^0(%arg4 : i8, %arg5 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg5, %0 : i8 + %2 = llvm.add %arg4, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_dec_proof : sub_dec_before ⊑ sub_dec_after := by + unfold sub_dec_before sub_dec_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_dec + apply sub_dec_thm + ---END sub_dec + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhnot_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhnot_proof.lean new file mode 100644 index 000000000..79099ad26 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhnot_proof.lean @@ -0,0 +1,14 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhnot_proof +theorem sub_not_thm (x x_1 : BitVec 8) : x_1 - x ^^^ 255#8 = x + (x_1 ^^^ 255#8) := sorry + +theorem dec_sub_thm (x x_1 : BitVec 8) : x_1 - x + 255#8 = x_1 + (x ^^^ 255#8) := sorry + +theorem sub_inc_thm (x x_1 : BitVec 8) : x_1 - (x + 1#8) = x_1 + (x ^^^ 255#8) := sorry + +theorem sub_dec_thm (x x_1 : BitVec 8) : x_1 + 255#8 - x = x_1 + (x ^^^ 255#8) := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean new file mode 100644 index 000000000..9c5464c20 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible.lean @@ -0,0 +1,582 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhofhnegatible_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 gsubhofhnegatible_statements + +def t0_before := [llvm| +{ +^0(%arg214 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %arg214, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg214 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.add %arg214, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t2_before := [llvm| +{ +^0(%arg210 : i8, %arg211 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg211 : i8 + %2 = llvm.sub %arg210, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t2_after := [llvm| +{ +^0(%arg210 : i8, %arg211 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg211 : i8 + %2 = llvm.add %1, %arg210 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t2_proof : t2_before ⊑ t2_after := by + unfold t2_before t2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t2 + apply t2_thm + ---END t2 + + + +def t9_before := [llvm| +{ +^0(%arg182 : i8, %arg183 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg183, %arg182 : i8 + %2 = llvm.sub %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t9_after := [llvm| +{ +^0(%arg182 : i8, %arg183 : i8): + %0 = llvm.sub %arg182, %arg183 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem t9_proof : t9_before ⊑ t9_after := by + unfold t9_before t9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t9 + all_goals (try extract_goal ; sorry) + ---END t9 + + + +def neg_of_sub_from_constant_before := [llvm| +{ +^0(%arg178 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg178 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_sub_from_constant_after := [llvm| +{ +^0(%arg178 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg178, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg_of_sub_from_constant_after := by + unfold neg_of_sub_from_constant_before neg_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_sub_from_constant + apply neg_of_sub_from_constant_thm + ---END neg_of_sub_from_constant + + + +def sub_from_constant_of_sub_from_constant_before := [llvm| +{ +^0(%arg176 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg176 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_sub_from_constant_after := [llvm| +{ +^0(%arg176 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.add %arg176, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_from_constant_before ⊑ sub_from_constant_of_sub_from_constant_after := by + unfold sub_from_constant_of_sub_from_constant_before sub_from_constant_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_sub_from_constant + apply sub_from_constant_of_sub_from_constant_thm + ---END sub_from_constant_of_sub_from_constant + + + +def sub_from_variable_of_sub_from_constant_before := [llvm| +{ +^0(%arg173 : i8, %arg174 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg173 : i8 + %2 = llvm.sub %arg174, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_from_variable_of_sub_from_constant_after := [llvm| +{ +^0(%arg173 : i8, %arg174 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg173, %0 : i8 + %2 = llvm.add %1, %arg174 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_from_constant_before ⊑ sub_from_variable_of_sub_from_constant_after := by + unfold sub_from_variable_of_sub_from_constant_before sub_from_variable_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_variable_of_sub_from_constant + apply sub_from_variable_of_sub_from_constant_thm + ---END sub_from_variable_of_sub_from_constant + + + +def neg_of_add_with_constant_before := [llvm| +{ +^0(%arg161 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg161, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_add_with_constant_after := [llvm| +{ +^0(%arg161 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg161 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg_of_add_with_constant_after := by + unfold neg_of_add_with_constant_before neg_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_add_with_constant + apply neg_of_add_with_constant_thm + ---END neg_of_add_with_constant + + + +def sub_from_constant_of_add_with_constant_before := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.add %arg159, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_add_with_constant_after := [llvm| +{ +^0(%arg159 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg159 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_with_constant_before ⊑ sub_from_constant_of_add_with_constant_after := by + unfold sub_from_constant_of_add_with_constant_before sub_from_constant_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_add_with_constant + apply sub_from_constant_of_add_with_constant_thm + ---END sub_from_constant_of_add_with_constant + + + +def negate_xor_before := [llvm| +{ +^0(%arg132 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg132, %0 : i4 + %3 = llvm.sub %1, %2 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def negate_xor_after := [llvm| +{ +^0(%arg132 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg132, %0 : i4 + %3 = llvm.add %2, %1 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by + unfold negate_xor_before negate_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_xor + apply negate_xor_thm + ---END negate_xor + + + +def negate_shl_xor_before := [llvm| +{ +^0(%arg128 : i4, %arg129 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg128, %0 : i4 + %3 = llvm.shl %2, %arg129 : i4 + %4 = llvm.sub %1, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def negate_shl_xor_after := [llvm| +{ +^0(%arg128 : i4, %arg129 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg128, %0 : i4 + %3 = llvm.add %2, %1 : i4 + %4 = llvm.shl %3, %arg129 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := by + unfold negate_shl_xor_before negate_shl_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_shl_xor + apply negate_shl_xor_thm + ---END negate_shl_xor + + + +def negate_sdiv_before := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg123, %0 : i8 + %2 = llvm.sub %arg122, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_sdiv_after := [llvm| +{ +^0(%arg122 : i8, %arg123 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg123, %0 : i8 + %2 = llvm.add %1, %arg122 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by + unfold negate_sdiv_before negate_sdiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_sdiv + apply negate_sdiv_thm + ---END negate_sdiv + + + +def negate_ashr_before := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg117, %0 : i8 + %2 = llvm.sub %arg116, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_ashr_after := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg117, %0 : i8 + %2 = llvm.add %1, %arg116 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by + unfold negate_ashr_before negate_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_ashr + apply negate_ashr_thm + ---END negate_ashr + + + +def negate_lshr_before := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg115, %0 : i8 + %2 = llvm.sub %arg114, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_lshr_after := [llvm| +{ +^0(%arg114 : i8, %arg115 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg115, %0 : i8 + %2 = llvm.add %1, %arg114 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by + unfold negate_lshr_before negate_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_lshr + apply negate_lshr_thm + ---END negate_lshr + + + +def negation_of_increment_via_or_with_no_common_bits_set_before := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %arg78, %0 : i8 + %2 = llvm.or %1, %0 : i8 + %3 = llvm.sub %arg77, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negation_of_increment_via_or_with_no_common_bits_set_after := [llvm| +{ +^0(%arg77 : i8, %arg78 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %arg78, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.add %arg77, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of_increment_via_or_with_no_common_bits_set_before ⊑ negation_of_increment_via_or_with_no_common_bits_set_after := by + unfold negation_of_increment_via_or_with_no_common_bits_set_before negation_of_increment_via_or_with_no_common_bits_set_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negation_of_increment_via_or_with_no_common_bits_set + apply negation_of_increment_via_or_with_no_common_bits_set_thm + ---END negation_of_increment_via_or_with_no_common_bits_set + + + +def negation_of_increment_via_or_disjoint_before := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.or %arg72, %0 : i8 + %2 = llvm.sub %arg71, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negation_of_increment_via_or_disjoint_after := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %1 = llvm.xor %arg72, %0 : i8 + %2 = llvm.add %arg71, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negation_of_increment_via_or_disjoint_proof : negation_of_increment_via_or_disjoint_before ⊑ negation_of_increment_via_or_disjoint_after := by + unfold negation_of_increment_via_or_disjoint_before negation_of_increment_via_or_disjoint_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negation_of_increment_via_or_disjoint + apply negation_of_increment_via_or_disjoint_thm + ---END negation_of_increment_via_or_disjoint + + + +def negate_add_with_single_negatible_operand_before := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg27, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_after := [llvm| +{ +^0(%arg27 : i8, %arg28 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg27 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_negatible_operand_before ⊑ negate_add_with_single_negatible_operand_after := by + unfold negate_add_with_single_negatible_operand_before negate_add_with_single_negatible_operand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand + apply negate_add_with_single_negatible_operand_thm + ---END negate_add_with_single_negatible_operand + + + +def negate_add_with_single_negatible_operand_depth2_before := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = 21 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg25, %0 : i8 + %3 = llvm.mul %2, %arg26 : i8 + %4 = llvm.sub %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_depth2_after := [llvm| +{ +^0(%arg25 : i8, %arg26 : i8): + %0 = "llvm.mlir.constant"() <{value = -21 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg25 : i8 + %2 = llvm.mul %1, %arg26 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_single_negatible_operand_depth2_before ⊑ negate_add_with_single_negatible_operand_depth2_after := by + unfold negate_add_with_single_negatible_operand_depth2_before negate_add_with_single_negatible_operand_depth2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand_depth2 + apply negate_add_with_single_negatible_operand_depth2_thm + ---END negate_add_with_single_negatible_operand_depth2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean new file mode 100644 index 000000000..dbd1600f6 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatible_proof.lean @@ -0,0 +1,42 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhofhnegatible_proof +theorem t0_thm (x : BitVec 8) : x - 214#8 = x + 42#8 := sorry + +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 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 + +theorem sub_from_variable_of_sub_from_constant_thm (x x_1 : BitVec 8) : x_1 - (42#8 - x) = x + 214#8 + x_1 := sorry + +theorem neg_of_add_with_constant_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry + +theorem sub_from_constant_of_add_with_constant_thm (x : BitVec 8) : 11#8 - (x + 42#8) = 225#8 - x := sorry + +theorem negate_xor_thm (x : BitVec 4) : -(x ^^^ 5#4) = (x ^^^ 10#4) + 1#4 := sorry + +theorem negate_shl_xor_thm (x x_1 : BitVec 4) : + (Option.bind (if 4#4 ≤ x then none else some ((x_1 ^^^ 5#4) <<< x.toNat)) fun a => some (-a)) ⊑ + if 4#4 ≤ x then none else some ((x_1 ^^^ 10#4) <<< x.toNat + 1#4 <<< x.toNat) := sorry + +theorem negate_sdiv_thm (x x_1 : BitVec 8) : x_1 - x.sdiv 42#8 = x.sdiv 214#8 + x_1 := sorry + +theorem negate_ashr_thm (x x_1 : BitVec 8) : x_1 - x.sshiftRight 7 = x >>> 7 + x_1 := sorry + +theorem negate_lshr_thm (x x_1 : BitVec 8) : x_1 - x >>> 7 = x.sshiftRight 7 + x_1 := sorry + +theorem negation_of_increment_via_or_with_no_common_bits_set_thm (x x_1 : BitVec 8) : x_1 - (x <<< 1 ||| 1#8) = x_1 + (x <<< 1 ^^^ 255#8) := sorry + +theorem negation_of_increment_via_or_disjoint_thm (x x_1 : BitVec 8) : x_1 - (x ||| 1#8) = x_1 + (x ^^^ 255#8) := sorry + +theorem negate_add_with_single_negatible_operand_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry + +theorem negate_add_with_single_negatible_operand_depth2_thm (x x_1 : BitVec 8) : -((x_1 + 21#8) * x) = (235#8 - x_1) * x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean new file mode 100644 index 000000000..0d9d8ac81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison.lean @@ -0,0 +1,549 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhofhnegatiblehinseltpoison_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 gsubhofhnegatiblehinseltpoison_statements + +def t0_before := [llvm| +{ +^0(%arg206 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %arg206, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +def t0_after := [llvm| +{ +^0(%arg206 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.add %arg206, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem t0_proof : t0_before ⊑ t0_after := by + unfold t0_before t0_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t0 + apply t0_thm + ---END t0 + + + +def t2_before := [llvm| +{ +^0(%arg202 : i8, %arg203 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg203 : i8 + %2 = llvm.sub %arg202, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t2_after := [llvm| +{ +^0(%arg202 : i8, %arg203 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.shl %0, %arg203 : i8 + %2 = llvm.add %1, %arg202 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem t2_proof : t2_before ⊑ t2_after := by + unfold t2_before t2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t2 + apply t2_thm + ---END t2 + + + +def t9_before := [llvm| +{ +^0(%arg176 : i8, %arg177 : i8): + %0 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %1 = llvm.sub %arg177, %arg176 : i8 + %2 = llvm.sub %0, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def t9_after := [llvm| +{ +^0(%arg176 : i8, %arg177 : i8): + %0 = llvm.sub %arg176, %arg177 : i8 + "llvm.return"(%0) : (i8) -> () +} +] +theorem t9_proof : t9_before ⊑ t9_after := by + unfold t9_before t9_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t9 + all_goals (try extract_goal ; sorry) + ---END t9 + + + +def neg_of_sub_from_constant_before := [llvm| +{ +^0(%arg172 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg172 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_sub_from_constant_after := [llvm| +{ +^0(%arg172 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg172, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_sub_from_constant_proof : neg_of_sub_from_constant_before ⊑ neg_of_sub_from_constant_after := by + unfold neg_of_sub_from_constant_before neg_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_sub_from_constant + apply neg_of_sub_from_constant_thm + ---END neg_of_sub_from_constant + + + +def sub_from_constant_of_sub_from_constant_before := [llvm| +{ +^0(%arg170 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.sub %0, %arg170 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_sub_from_constant_after := [llvm| +{ +^0(%arg170 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.add %arg170, %0 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_sub_from_constant_proof : sub_from_constant_of_sub_from_constant_before ⊑ sub_from_constant_of_sub_from_constant_after := by + unfold sub_from_constant_of_sub_from_constant_before sub_from_constant_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_sub_from_constant + apply sub_from_constant_of_sub_from_constant_thm + ---END sub_from_constant_of_sub_from_constant + + + +def sub_from_variable_of_sub_from_constant_before := [llvm| +{ +^0(%arg167 : i8, %arg168 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg167 : i8 + %2 = llvm.sub %arg168, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def sub_from_variable_of_sub_from_constant_after := [llvm| +{ +^0(%arg167 : i8, %arg168 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.add %arg167, %0 : i8 + %2 = llvm.add %1, %arg168 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem sub_from_variable_of_sub_from_constant_proof : sub_from_variable_of_sub_from_constant_before ⊑ sub_from_variable_of_sub_from_constant_after := by + unfold sub_from_variable_of_sub_from_constant_before sub_from_variable_of_sub_from_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_variable_of_sub_from_constant + apply sub_from_variable_of_sub_from_constant_thm + ---END sub_from_variable_of_sub_from_constant + + + +def neg_of_add_with_constant_before := [llvm| +{ +^0(%arg155 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg155, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def neg_of_add_with_constant_after := [llvm| +{ +^0(%arg155 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg155 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem neg_of_add_with_constant_proof : neg_of_add_with_constant_before ⊑ neg_of_add_with_constant_after := by + unfold neg_of_add_with_constant_before neg_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN neg_of_add_with_constant + apply neg_of_add_with_constant_thm + ---END neg_of_add_with_constant + + + +def sub_from_constant_of_add_with_constant_before := [llvm| +{ +^0(%arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 11 : i8}> : () -> i8 + %2 = llvm.add %arg153, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def sub_from_constant_of_add_with_constant_after := [llvm| +{ +^0(%arg153 : i8): + %0 = "llvm.mlir.constant"() <{value = -31 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg153 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem sub_from_constant_of_add_with_constant_proof : sub_from_constant_of_add_with_constant_before ⊑ sub_from_constant_of_add_with_constant_after := by + unfold sub_from_constant_of_add_with_constant_before sub_from_constant_of_add_with_constant_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_from_constant_of_add_with_constant + apply sub_from_constant_of_add_with_constant_thm + ---END sub_from_constant_of_add_with_constant + + + +def negate_xor_before := [llvm| +{ +^0(%arg126 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg126, %0 : i4 + %3 = llvm.sub %1, %2 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def negate_xor_after := [llvm| +{ +^0(%arg126 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg126, %0 : i4 + %3 = llvm.add %2, %1 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem negate_xor_proof : negate_xor_before ⊑ negate_xor_after := by + unfold negate_xor_before negate_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_xor + apply negate_xor_thm + ---END negate_xor + + + +def negate_shl_xor_before := [llvm| +{ +^0(%arg122 : i4, %arg123 : i4): + %0 = "llvm.mlir.constant"() <{value = 5 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 0 : i4}> : () -> i4 + %2 = llvm.xor %arg122, %0 : i4 + %3 = llvm.shl %2, %arg123 : i4 + %4 = llvm.sub %1, %3 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +def negate_shl_xor_after := [llvm| +{ +^0(%arg122 : i4, %arg123 : i4): + %0 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 1 : i4}> : () -> i4 + %2 = llvm.xor %arg122, %0 : i4 + %3 = llvm.add %2, %1 : i4 + %4 = llvm.shl %3, %arg123 : i4 + "llvm.return"(%4) : (i4) -> () +} +] +theorem negate_shl_xor_proof : negate_shl_xor_before ⊑ negate_shl_xor_after := by + unfold negate_shl_xor_before negate_shl_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_shl_xor + apply negate_shl_xor_thm + ---END negate_shl_xor + + + +def negate_sdiv_before := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg117, %0 : i8 + %2 = llvm.sub %arg116, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_sdiv_after := [llvm| +{ +^0(%arg116 : i8, %arg117 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sdiv %arg117, %0 : i8 + %2 = llvm.add %1, %arg116 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_sdiv_proof : negate_sdiv_before ⊑ negate_sdiv_after := by + unfold negate_sdiv_before negate_sdiv_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_sdiv + apply negate_sdiv_thm + ---END negate_sdiv + + + +def negate_ashr_before := [llvm| +{ +^0(%arg110 : i8, %arg111 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg111, %0 : i8 + %2 = llvm.sub %arg110, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_ashr_after := [llvm| +{ +^0(%arg110 : i8, %arg111 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg111, %0 : i8 + %2 = llvm.add %1, %arg110 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_ashr_proof : negate_ashr_before ⊑ negate_ashr_after := by + unfold negate_ashr_before negate_ashr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_ashr + apply negate_ashr_thm + ---END negate_ashr + + + +def negate_lshr_before := [llvm| +{ +^0(%arg108 : i8, %arg109 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.lshr %arg109, %0 : i8 + %2 = llvm.sub %arg108, %1 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +def negate_lshr_after := [llvm| +{ +^0(%arg108 : i8, %arg109 : i8): + %0 = "llvm.mlir.constant"() <{value = 7 : i8}> : () -> i8 + %1 = llvm.ashr %arg109, %0 : i8 + %2 = llvm.add %1, %arg108 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_lshr_proof : negate_lshr_before ⊑ negate_lshr_after := by + unfold negate_lshr_before negate_lshr_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_lshr + apply negate_lshr_thm + ---END negate_lshr + + + +def negation_of_increment_via_or_with_no_common_bits_set_before := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = llvm.shl %arg72, %0 : i8 + %2 = llvm.or %1, %0 : i8 + %3 = llvm.sub %arg71, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negation_of_increment_via_or_with_no_common_bits_set_after := [llvm| +{ +^0(%arg71 : i8, %arg72 : i8): + %0 = "llvm.mlir.constant"() <{value = 1 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = -1 : i8}> : () -> i8 + %2 = llvm.shl %arg72, %0 : i8 + %3 = llvm.xor %2, %1 : i8 + %4 = llvm.add %arg71, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +theorem negation_of_increment_via_or_with_no_common_bits_set_proof : negation_of_increment_via_or_with_no_common_bits_set_before ⊑ negation_of_increment_via_or_with_no_common_bits_set_after := by + unfold negation_of_increment_via_or_with_no_common_bits_set_before negation_of_increment_via_or_with_no_common_bits_set_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negation_of_increment_via_or_with_no_common_bits_set + apply negation_of_increment_via_or_with_no_common_bits_set_thm + ---END negation_of_increment_via_or_with_no_common_bits_set + + + +def negate_add_with_single_negatible_operand_before := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = 42 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg23, %0 : i8 + %3 = llvm.sub %1, %2 : i8 + "llvm.return"(%3) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_after := [llvm| +{ +^0(%arg23 : i8, %arg24 : i8): + %0 = "llvm.mlir.constant"() <{value = -42 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg23 : i8 + "llvm.return"(%1) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_proof : negate_add_with_single_negatible_operand_before ⊑ negate_add_with_single_negatible_operand_after := by + unfold negate_add_with_single_negatible_operand_before negate_add_with_single_negatible_operand_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand + apply negate_add_with_single_negatible_operand_thm + ---END negate_add_with_single_negatible_operand + + + +def negate_add_with_single_negatible_operand_depth2_before := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = 21 : i8}> : () -> i8 + %1 = "llvm.mlir.constant"() <{value = 0 : i8}> : () -> i8 + %2 = llvm.add %arg21, %0 : i8 + %3 = llvm.mul %2, %arg22 : i8 + %4 = llvm.sub %1, %3 : i8 + "llvm.return"(%4) : (i8) -> () +} +] +def negate_add_with_single_negatible_operand_depth2_after := [llvm| +{ +^0(%arg21 : i8, %arg22 : i8): + %0 = "llvm.mlir.constant"() <{value = -21 : i8}> : () -> i8 + %1 = llvm.sub %0, %arg21 : i8 + %2 = llvm.mul %1, %arg22 : i8 + "llvm.return"(%2) : (i8) -> () +} +] +theorem negate_add_with_single_negatible_operand_depth2_proof : negate_add_with_single_negatible_operand_depth2_before ⊑ negate_add_with_single_negatible_operand_depth2_after := by + unfold negate_add_with_single_negatible_operand_depth2_before negate_add_with_single_negatible_operand_depth2_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN negate_add_with_single_negatible_operand_depth2 + apply negate_add_with_single_negatible_operand_depth2_thm + ---END negate_add_with_single_negatible_operand_depth2 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean new file mode 100644 index 000000000..d5cdd62b3 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhofhnegatiblehinseltpoison_proof.lean @@ -0,0 +1,40 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhofhnegatiblehinseltpoison_proof +theorem t0_thm (x : BitVec 8) : x - 214#8 = x + 42#8 := sorry + +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 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 + +theorem sub_from_variable_of_sub_from_constant_thm (x x_1 : BitVec 8) : x_1 - (42#8 - x) = x + 214#8 + x_1 := sorry + +theorem neg_of_add_with_constant_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry + +theorem sub_from_constant_of_add_with_constant_thm (x : BitVec 8) : 11#8 - (x + 42#8) = 225#8 - x := sorry + +theorem negate_xor_thm (x : BitVec 4) : -(x ^^^ 5#4) = (x ^^^ 10#4) + 1#4 := sorry + +theorem negate_shl_xor_thm (x x_1 : BitVec 4) : + (Option.bind (if 4#4 ≤ x then none else some ((x_1 ^^^ 5#4) <<< x.toNat)) fun a => some (-a)) ⊑ + if 4#4 ≤ x then none else some ((x_1 ^^^ 10#4) <<< x.toNat + 1#4 <<< x.toNat) := sorry + +theorem negate_sdiv_thm (x x_1 : BitVec 8) : x_1 - x.sdiv 42#8 = x.sdiv 214#8 + x_1 := sorry + +theorem negate_ashr_thm (x x_1 : BitVec 8) : x_1 - x.sshiftRight 7 = x >>> 7 + x_1 := sorry + +theorem negate_lshr_thm (x x_1 : BitVec 8) : x_1 - x >>> 7 = x.sshiftRight 7 + x_1 := sorry + +theorem negation_of_increment_via_or_with_no_common_bits_set_thm (x x_1 : BitVec 8) : x_1 - (x <<< 1 ||| 1#8) = x_1 + (x <<< 1 ^^^ 255#8) := sorry + +theorem negate_add_with_single_negatible_operand_thm (x : BitVec 8) : 214#8 + -x = 214#8 - x := sorry + +theorem negate_add_with_single_negatible_operand_depth2_thm (x x_1 : BitVec 8) : -((x_1 + 21#8) * x) = (235#8 - x_1) * x := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor.lean new file mode 100644 index 000000000..ed19e1b84 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor.lean @@ -0,0 +1,107 @@ +import SSA.Projects.InstCombine.tests.proofs.gsubhorhandhxor_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 gsubhorhandhxor_statements + +def sub_to_xor_before := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.or %arg15, %arg16 : i32 + %1 = llvm.and %arg15, %arg16 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_after := [llvm| +{ +^0(%arg15 : i32, %arg16 : i32): + %0 = llvm.xor %arg15, %arg16 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem sub_to_xor_proof : sub_to_xor_before ⊑ sub_to_xor_after := by + unfold sub_to_xor_before sub_to_xor_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_to_xor + apply sub_to_xor_thm + ---END sub_to_xor + + + +def sub_to_xor_or_commuted_before := [llvm| +{ +^0(%arg7 : i32, %arg8 : i32): + %0 = llvm.or %arg8, %arg7 : i32 + %1 = llvm.and %arg7, %arg8 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_or_commuted_after := [llvm| +{ +^0(%arg7 : i32, %arg8 : i32): + %0 = llvm.xor %arg7, %arg8 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem sub_to_xor_or_commuted_proof : sub_to_xor_or_commuted_before ⊑ sub_to_xor_or_commuted_after := by + unfold sub_to_xor_or_commuted_before sub_to_xor_or_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_to_xor_or_commuted + apply sub_to_xor_or_commuted_thm + ---END sub_to_xor_or_commuted + + + +def sub_to_xor_and_commuted_before := [llvm| +{ +^0(%arg5 : i32, %arg6 : i32): + %0 = llvm.or %arg5, %arg6 : i32 + %1 = llvm.and %arg6, %arg5 : i32 + %2 = llvm.sub %0, %1 : i32 + "llvm.return"(%2) : (i32) -> () +} +] +def sub_to_xor_and_commuted_after := [llvm| +{ +^0(%arg5 : i32, %arg6 : i32): + %0 = llvm.xor %arg6, %arg5 : i32 + "llvm.return"(%0) : (i32) -> () +} +] +theorem sub_to_xor_and_commuted_proof : sub_to_xor_and_commuted_before ⊑ sub_to_xor_and_commuted_after := by + unfold sub_to_xor_and_commuted_before sub_to_xor_and_commuted_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN sub_to_xor_and_commuted + apply sub_to_xor_and_commuted_thm + ---END sub_to_xor_and_commuted + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor_proof.lean new file mode 100644 index 000000000..4547aed4d --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhorhandhxor_proof.lean @@ -0,0 +1,12 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gsubhorhandhxor_proof +theorem sub_to_xor_thm (x x_1 : BitVec 32) : (x_1 ||| x) - (x_1 &&& x) = x_1 ^^^ x := sorry + +theorem sub_to_xor_or_commuted_thm (x x_1 : BitVec 32) : (x_1 ||| x) - (x &&& x_1) = x ^^^ x_1 := sorry + +theorem sub_to_xor_and_commuted_thm (x x_1 : BitVec 32) : (x_1 ||| x) - (x &&& x_1) = x ^^^ x_1 := sorry + diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean index 6dc8d4bf3..150f2fc21 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxor.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhxor_statements - + def low_mask_nsw_nuw_before := [llvm| { ^0(%arg13 : i32): @@ -40,7 +40,7 @@ theorem low_mask_nsw_nuw_proof : low_mask_nsw_nuw_before ⊑ low_mask_nsw_nuw_af simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN low_mask_nsw_nuw apply low_mask_nsw_nuw_thm @@ -75,7 +75,7 @@ theorem arbitrary_mask_sub_i8_proof : arbitrary_mask_sub_i8_before ⊑ arbitrary simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN arbitrary_mask_sub_i8 apply arbitrary_mask_sub_i8_thm @@ -110,7 +110,7 @@ theorem not_masked_sub_i8_proof : not_masked_sub_i8_before ⊑ not_masked_sub_i8 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_masked_sub_i8 apply not_masked_sub_i8_thm @@ -146,7 +146,7 @@ theorem xor_add_proof : xor_add_before ⊑ xor_add_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_add apply xor_add_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean index 96f194c63..5085c0025 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gsubhxorhorhneghand.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gsubhxorhorhneghand_statements - + def sub_to_and_before := [llvm| { ^0(%arg14 : i32, %arg15 : i32): @@ -38,7 +38,7 @@ theorem sub_to_and_proof : sub_to_and_before ⊑ sub_to_and_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and apply sub_to_and_thm @@ -71,7 +71,7 @@ theorem sub_to_and_or_commuted_proof : sub_to_and_or_commuted_before ⊑ sub_to_ simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and_or_commuted apply sub_to_and_or_commuted_thm @@ -104,7 +104,7 @@ theorem sub_to_and_and_commuted_proof : sub_to_and_and_commuted_before ⊑ sub_t simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN sub_to_and_and_commuted apply sub_to_and_and_commuted_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean index e817c2fba..406075ce1 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gunfoldhmaskedhmergehwithhconsthmaskhscalar.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gunfoldhmaskedhmergehwithhconsthmaskhscalar_statements - + def scalar0_before := [llvm| { ^0(%arg32 : i4, %arg33 : i4): @@ -41,7 +41,7 @@ theorem scalar0_proof : scalar0_before ⊑ scalar0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN scalar0 apply scalar0_thm @@ -77,7 +77,7 @@ theorem scalar1_proof : scalar1_before ⊑ scalar1_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN scalar1 apply scalar1_thm @@ -111,7 +111,7 @@ theorem in_constant_varx_mone_proof : in_constant_varx_mone_before ⊑ in_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_mone apply in_constant_varx_mone_thm @@ -145,7 +145,7 @@ theorem in_constant_varx_14_proof : in_constant_varx_14_before ⊑ in_constant_v simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_varx_14 apply in_constant_varx_14_thm @@ -179,7 +179,7 @@ theorem in_constant_mone_vary_proof : in_constant_mone_vary_before ⊑ in_consta simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_mone_vary apply in_constant_mone_vary_thm @@ -213,7 +213,7 @@ theorem in_constant_14_vary_proof : in_constant_14_vary_before ⊑ in_constant_1 simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN in_constant_14_vary apply in_constant_14_vary_thm @@ -249,7 +249,7 @@ theorem c_1_0_0_proof : c_1_0_0_before ⊑ c_1_0_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_0_0 apply c_1_0_0_thm @@ -285,7 +285,7 @@ theorem c_0_1_0_proof : c_0_1_0_before ⊑ c_0_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_0_1_0 apply c_0_1_0_thm @@ -321,7 +321,7 @@ theorem c_1_1_0_proof : c_1_1_0_before ⊑ c_1_1_0_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN c_1_1_0 apply c_1_1_0_thm @@ -355,7 +355,7 @@ theorem commutativity_constant_14_vary_proof : commutativity_constant_14_vary_be simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN commutativity_constant_14_vary apply commutativity_constant_14_vary_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gxor2.lean b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean index 82797a616..fb3ad1d18 100644 --- a/SSA/Projects/InstCombine/tests/proofs/gxor2.lean +++ b/SSA/Projects/InstCombine/tests/proofs/gxor2.lean @@ -12,7 +12,7 @@ set_option linter.deprecated false set_option linter.unreachableTactic false set_option linter.unusedTactic false section gxor2_statements - + def test2_before := [llvm| { ^0(%arg120 : i32): @@ -42,7 +42,7 @@ theorem test2_proof : test2_before ⊑ test2_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test2 apply test2_thm @@ -79,7 +79,7 @@ theorem test3_proof : test3_before ⊑ test3_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test3 apply test3_thm @@ -120,7 +120,7 @@ theorem test5_proof : test5_before ⊑ test5_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test5 apply test5_thm @@ -157,7 +157,7 @@ theorem test6_proof : test6_before ⊑ test6_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test6 apply test6_thm @@ -191,7 +191,7 @@ theorem test7_proof : test7_before ⊑ test7_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test7 apply test7_thm @@ -225,7 +225,7 @@ theorem test8_proof : test8_before ⊑ test8_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test8 apply test8_thm @@ -256,7 +256,7 @@ theorem test9_proof : test9_before ⊑ test9_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9 apply test9_thm @@ -287,7 +287,7 @@ theorem test9b_proof : test9b_before ⊑ test9b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test9b apply test9b_thm @@ -318,7 +318,7 @@ theorem test10_proof : test10_before ⊑ test10_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10 apply test10_thm @@ -349,7 +349,7 @@ theorem test10b_proof : test10b_before ⊑ test10b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test10b apply test10b_thm @@ -386,7 +386,7 @@ theorem test11_proof : test11_before ⊑ test11_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11 apply test11_thm @@ -423,7 +423,7 @@ theorem test11b_proof : test11b_before ⊑ test11b_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11b apply test11b_thm @@ -460,7 +460,7 @@ theorem test11c_proof : test11c_before ⊑ test11c_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11c apply test11c_thm @@ -497,7 +497,7 @@ theorem test11d_proof : test11d_before ⊑ test11d_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11d apply test11d_thm @@ -536,7 +536,7 @@ theorem test11e_proof : test11e_before ⊑ test11e_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11e apply test11e_thm @@ -575,7 +575,7 @@ theorem test11f_proof : test11f_before ⊑ test11f_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test11f apply test11f_thm @@ -610,7 +610,7 @@ theorem test12_proof : test12_before ⊑ test12_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12 apply test12_thm @@ -645,7 +645,7 @@ theorem test12commuted_proof : test12commuted_before ⊑ test12commuted_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test12commuted apply test12commuted_thm @@ -680,7 +680,7 @@ theorem test13_proof : test13_before ⊑ test13_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13 apply test13_thm @@ -715,7 +715,7 @@ theorem test13commuted_proof : test13commuted_before ⊑ test13commuted_after := simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test13commuted apply test13commuted_thm @@ -749,7 +749,7 @@ theorem xor_or_xor_common_op_commute1_proof : xor_or_xor_common_op_commute1_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute1 apply xor_or_xor_common_op_commute1_thm @@ -783,7 +783,7 @@ theorem xor_or_xor_common_op_commute2_proof : xor_or_xor_common_op_commute2_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute2 apply xor_or_xor_common_op_commute2_thm @@ -817,7 +817,7 @@ theorem xor_or_xor_common_op_commute3_proof : xor_or_xor_common_op_commute3_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute3 apply xor_or_xor_common_op_commute3_thm @@ -851,7 +851,7 @@ theorem xor_or_xor_common_op_commute4_proof : xor_or_xor_common_op_commute4_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute4 apply xor_or_xor_common_op_commute4_thm @@ -885,7 +885,7 @@ theorem xor_or_xor_common_op_commute5_proof : xor_or_xor_common_op_commute5_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute5 apply xor_or_xor_common_op_commute5_thm @@ -919,7 +919,7 @@ theorem xor_or_xor_common_op_commute6_proof : xor_or_xor_common_op_commute6_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute6 apply xor_or_xor_common_op_commute6_thm @@ -953,7 +953,7 @@ theorem xor_or_xor_common_op_commute7_proof : xor_or_xor_common_op_commute7_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute7 apply xor_or_xor_common_op_commute7_thm @@ -987,7 +987,7 @@ theorem xor_or_xor_common_op_commute8_proof : xor_or_xor_common_op_commute8_befo simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_or_xor_common_op_commute8 apply xor_or_xor_common_op_commute8_thm @@ -1026,7 +1026,7 @@ theorem test15_proof : test15_before ⊑ test15_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test15 apply test15_thm @@ -1065,7 +1065,7 @@ theorem test16_proof : test16_before ⊑ test16_after := by simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN test16 apply test16_thm @@ -1102,7 +1102,7 @@ theorem not_xor_to_or_not1_proof : not_xor_to_or_not1_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not1 apply not_xor_to_or_not1_thm @@ -1139,7 +1139,7 @@ theorem not_xor_to_or_not2_proof : not_xor_to_or_not2_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not2 apply not_xor_to_or_not2_thm @@ -1176,7 +1176,7 @@ theorem not_xor_to_or_not3_proof : not_xor_to_or_not3_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not3 apply not_xor_to_or_not3_thm @@ -1213,7 +1213,7 @@ theorem not_xor_to_or_not4_proof : not_xor_to_or_not4_before ⊑ not_xor_to_or_n simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN not_xor_to_or_not4 apply not_xor_to_or_not4_thm @@ -1250,7 +1250,7 @@ theorem xor_notand_to_or_not1_proof : xor_notand_to_or_not1_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not1 apply xor_notand_to_or_not1_thm @@ -1287,7 +1287,7 @@ theorem xor_notand_to_or_not2_proof : xor_notand_to_or_not2_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not2 apply xor_notand_to_or_not2_thm @@ -1324,7 +1324,7 @@ theorem xor_notand_to_or_not3_proof : xor_notand_to_or_not3_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not3 apply xor_notand_to_or_not3_thm @@ -1361,7 +1361,7 @@ theorem xor_notand_to_or_not4_proof : xor_notand_to_or_not4_before ⊑ xor_notan simp_alive_ops try simp simp_alive_case_bash - intros + try intros try simp ---BEGIN xor_notand_to_or_not4 apply xor_notand_to_or_not4_thm diff --git a/SSA/Projects/InstCombine/tests/proofs/gxorhofhor.lean b/SSA/Projects/InstCombine/tests/proofs/gxorhofhor.lean new file mode 100644 index 000000000..60b2682c5 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gxorhofhor.lean @@ -0,0 +1,49 @@ +import SSA.Projects.InstCombine.tests.proofs.gxorhofhor_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 gxorhofhor_statements + +def t1_before := [llvm| +{ +^0(%arg12 : i4): + %0 = "llvm.mlir.constant"() <{value = -4 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = -6 : i4}> : () -> i4 + %2 = llvm.or %arg12, %0 : i4 + %3 = llvm.xor %2, %1 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +def t1_after := [llvm| +{ +^0(%arg12 : i4): + %0 = "llvm.mlir.constant"() <{value = 3 : i4}> : () -> i4 + %1 = "llvm.mlir.constant"() <{value = 6 : i4}> : () -> i4 + %2 = llvm.and %arg12, %0 : i4 + %3 = llvm.xor %2, %1 : i4 + "llvm.return"(%3) : (i4) -> () +} +] +theorem t1_proof : t1_before ⊑ t1_after := by + unfold t1_before t1_after + simp_alive_peephole + simp_alive_undef + simp_alive_ops + try simp + simp_alive_case_bash + try intros + try simp + ---BEGIN t1 + apply t1_thm + ---END t1 + + diff --git a/SSA/Projects/InstCombine/tests/proofs/gxorhofhor_proof.lean b/SSA/Projects/InstCombine/tests/proofs/gxorhofhor_proof.lean new file mode 100644 index 000000000..b4e481b81 --- /dev/null +++ b/SSA/Projects/InstCombine/tests/proofs/gxorhofhor_proof.lean @@ -0,0 +1,8 @@ + +import SSA.Projects.InstCombine.TacticAuto +import SSA.Projects.InstCombine.LLVM.Semantics +open BitVec + +section gxorhofhor_proof +theorem t1_thm (x : BitVec 4) : (x ||| 12#4) ^^^ 10#4 = x &&& 3#4 ^^^ 6#4 := sorry + From e92cf94481289281341607efc36290318800e82a Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Mon, 21 Oct 2024 16:28:49 +0100 Subject: [PATCH 09/21] Basic script to read the logs --- SSA/Projects/InstCombine/scripts/cfg.py | 15 ++++++- SSA/Projects/InstCombine/scripts/proof-gen.py | 10 ++--- SSA/Projects/InstCombine/scripts/read-logs.py | 39 +++++++++++++++++++ SSA/Projects/InstCombine/scripts/test-gen.py | 2 +- 4 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 SSA/Projects/InstCombine/scripts/read-logs.py diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index 4ce777a6b..ea933d3b8 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -5,7 +5,7 @@ Builtin, ) import os -from enum import Enum +from enum import Enum, auto # The path from lean-mlir to llvm-project llvm_path = "../llvm-project-main" @@ -48,4 +48,15 @@ } allowed_unregistered = set() -Msg = Enum('Msg', ['FUNC_NAME', 'OP', 'E_PARSE', 'E_UNSUPPORTED', 'E_EMPTY', 'E_NOT_FOUND', 'E_NOT_CHANGED', 'E_VECTOR']) \ No newline at end of file +class Msg(Enum): + FUNC_NAME = 1 + OP = 2 + E_PARSE = 3 + E_UNSUPPORTED = 4 + E_EMPTY = 5 + E_NOT_FOUND = 6 + E_NOT_CHANGED = 7 + E_VECTOR = 8 + + def is_error(self): + return self.value > 2 \ No newline at end of file diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index 3a0360176..0593722c8 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -11,7 +11,6 @@ def get_lines(msg): # Find all matches in the log matches = pattern.findall(msg) lines_thm = [(int(l), m) for (l, m) in matches if "no goals to be solved" not in m] - lines_done = [(int(l), m) for (l, m) in matches if "no goals to be solved" in m] # Replace this with your actual implementation return lines_thm, lines_done # return [(1, "New message for line 1"), (3, "New message for line 3")] @@ -49,7 +48,7 @@ def process_file(file_path): print(f"msg = {msg}") # Get the lines to replace and append - lines_to_replace, lines_done = get_lines(msg) + lines_to_replace = get_lines(msg) # Read the file content with open(file_path, "r") as file: @@ -62,10 +61,9 @@ def process_file(file_path): if 0 <= l - 1 < len(lines): lines[l - 1] = f" apply {n}_thm\n" - named_done = [(l, lines[l - 2][11:-1], m) for (l, m) in lines_done] - for l, n, m in named_done: - if 0 <= l - 1 < len(lines): - lines[l - 1] = f" done\n" + for (i,line) in enumerate(lines): + if line == " all_goals (try extract_goal ; sorry)": + lines[i] = " done\n" lines[0] = f"import SSA.Projects.InstCombine.tests.proofs.{stem_name}_proof\n" # Write the modified content to the new file diff --git a/SSA/Projects/InstCombine/scripts/read-logs.py b/SSA/Projects/InstCombine/scripts/read-logs.py new file mode 100644 index 000000000..a9b09a8ed --- /dev/null +++ b/SSA/Projects/InstCombine/scripts/read-logs.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import os +import re +from cfg import * + +def add_or_1(d, k): + if k in d: + d[k] += 1 + else: + d[k] = 1 + +def main(): + unsupported_func = dict() + success_func = dict() + error_dict = dict() + print(os.listdir(log_path)) + for log in os.listdir(log_path): + with open(f"{log_path}/{log}", "r") as l: + lines = l.readlines() + for line in lines: + s_line = re.split('"|: |\n', line) + s_line = [s.strip() for s in s_line if s != ''] + if len(s_line) > 0: + print(s_line) + msg = Msg(int(s_line[0])) + print(msg, msg.is_error()) + func = s_line[-1] + if msg == Msg.E_UNSUPPORTED: + add_or_1(unsupported_func, func) + elif msg == Msg.OP: + add_or_1(success_func, func) + elif msg.is_error(): + add_or_1(error_dict, msg) + print(unsupported_func) + print(success_func) + print(error_dict) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index ad9247e0a..9d48d20a1 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -196,7 +196,7 @@ def process_file(file): log.append(f"{Msg.E_NOT_CHANGED.value}: {func_name} is unchanged by InstCombine\n\n") continue if "vector" in (s1 + s2): - log.append(f"{func_name} contains vectors which are unsupported\n\n") + log.append(f"{Msg.E_VECTOR.value}: {func_name} contains vectors which are unsupported\n\n") continue tmp_log = [] From edb64a336590ef9b1fb33e1bbd4a3688d90fe5f7 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:01:27 +0100 Subject: [PATCH 10/21] Updated tests --- .../LLVM/g2005h04h07hUDivSelectCrash.lean | 49 + .../tests/LLVM/g2008h05h31hBools.lean | 28 + .../tests/LLVM/g2012h08h28hudiv_ashl.lean | 113 ++ .../InstCombine/tests/LLVM/gadd2.lean | 35 + .../InstCombine/tests/LLVM/gadd4.lean | 269 +++ SSA/Projects/InstCombine/tests/LLVM/gand.lean | 124 ++ .../InstCombine/tests/LLVM/gand2.lean | 32 + .../InstCombine/tests/LLVM/gandhxorhor.lean | 434 ++++- .../InstCombine/tests/LLVM/gapinthdiv1.lean | 113 ++ .../InstCombine/tests/LLVM/gapinthdiv2.lean | 113 ++ .../InstCombine/tests/LLVM/gapinthrem1.lean | 35 + .../InstCombine/tests/LLVM/gapinthrem2.lean | 35 + .../InstCombine/tests/LLVM/gapinthshift.lean | 35 + .../InstCombine/tests/LLVM/gbinophselect.lean | 84 + .../InstCombine/tests/LLVM/gdivhi1.lean | 28 + .../InstCombine/tests/LLVM/gdivhshift.lean | 456 +++++ .../InstCombine/tests/LLVM/gexact.lean | 128 ++ .../tests/LLVM/gfreehinversion.lean | 394 +++++ .../LLVM/glogicalhselecthinseltpoison.lean | 237 +++ .../InstCombine/tests/LLVM/gmulhpow2.lean | 142 ++ .../tests/LLVM/gnestedhselect.lean | 370 ++++ SSA/Projects/InstCombine/tests/LLVM/gnot.lean | 138 ++ .../tests/LLVM/goperandhcomplexity.lean | 88 + ...gpullhconditionalhbinophthroughhshift.lean | 754 +++++++++ SSA/Projects/InstCombine/tests/LLVM/grem.lean | 171 ++ .../InstCombine/tests/LLVM/gselect_meta.lean | 141 ++ .../InstCombine/tests/LLVM/gselecth2.lean | 224 +++ .../tests/LLVM/gselecthandhor.lean | 788 +++++++++ .../tests/LLVM/gselecthdivrem.lean | 334 ++++ .../tests/LLVM/gselecthfactorize.lean | 1298 ++++++++++++++ .../LLVM/gselecthofhsymmetrichselects.lean | 110 ++ .../LLVM/gselecthsafehboolhtransforms.lean | 1506 +++++++++++++++++ .../tests/LLVM/gselecthsafehtransforms.lean | 657 +++++++ .../tests/LLVM/gselecthwithhbitwisehops.lean | 52 + .../InstCombine/tests/LLVM/gshifthshift.lean | 35 + .../tests/LLVM/gsubhofhnegatible.lean | 106 ++ .../LLVM/gsubhofhnegatiblehinseltpoison.lean | 72 + .../gsubtracthfromhonehhandhofhselect.lean | 78 + .../LLVM/gsubtracthofhonehhandhofhselect.lean | 78 + .../LLVM/gudiv_select_to_select_shift.lean | 54 + SSA/Projects/InstCombine/tests/LLVM/gxor.lean | 604 +++++++ .../InstCombine/tests/LLVM/gxorhandhor.lean | 288 ++++ .../tests/logs/2004-09-20-BadLoadCombine.txt | 12 +- .../tests/logs/2005-04-07-UDivSelectCrash.txt | 7 +- .../tests/logs/2006-12-08-Select-ICmp.txt | 2 - .../tests/logs/2006-12-23-Select-Cmp-Cmp.txt | 2 - .../tests/logs/2007-01-18-VectorInfLoop.txt | 2 +- .../logs/2007-06-21-DivCompareMiscomp.txt | 2 - .../tests/logs/2007-12-28-IcmpSub2.txt | 16 - .../tests/logs/2008-01-21-MulTrunc.txt | 4 +- .../tests/logs/2008-01-27-FloatSelect.txt | 2 - .../tests/logs/2008-02-28-OrFCmpCrash.txt | 2 - .../tests/logs/2008-05-22-IDivVector.txt | 2 +- .../tests/logs/2008-05-31-Bools.txt | 4 +- .../tests/logs/2008-06-19-UncondLoad.txt | 2 - .../tests/logs/2008-07-11-RemAnd.txt | 2 +- .../tests/logs/2008-07-13-DivZero.txt | 2 - .../tests/logs/2008-11-27-IDivVector.txt | 4 +- .../tests/logs/2008-11-27-MultiplyIntVec.txt | 4 +- .../tests/logs/2008-12-17-SRemNegConstVec.txt | 2 +- .../tests/logs/2009-01-05-i128-crash.txt | 2 - .../tests/logs/2009-12-17-CmpSelectNull.txt | 2 - .../tests/logs/2010-03-03-ExtElim.txt | 4 - .../tests/logs/2011-02-14-InfLoop.txt | 2 - .../tests/logs/2011-05-02-VectorBoolean.txt | 2 +- .../tests/logs/2012-04-24-vselect.txt | 2 +- .../tests/logs/2012-08-28-udiv_ashl.txt | 25 +- .../InstCombine/tests/logs/PR37526.txt | 2 - SSA/Projects/InstCombine/tests/logs/abs-1.txt | 24 - .../InstCombine/tests/logs/abs-intrinsic.txt | 6 +- .../InstCombine/tests/logs/add-mask-neg.txt | 4 +- .../InstCombine/tests/logs/add-mask.txt | 6 - .../InstCombine/tests/logs/add-shift.txt | 2 +- .../tests/logs/add-shl-sdiv-to-srem.txt | 8 +- SSA/Projects/InstCombine/tests/logs/add2.txt | 15 +- SSA/Projects/InstCombine/tests/logs/add4.txt | 78 +- .../InstCombine/tests/logs/add_or_sub.txt | 4 +- .../tests/logs/addsub-constant-folding.txt | 28 +- .../tests/logs/adjust-for-minmax.txt | 2 - .../InstCombine/tests/logs/and-fcmp.txt | 202 --- .../tests/logs/and-or-icmp-min-max.txt | 96 +- .../tests/logs/and-or-icmp-nullptr.txt | 26 - .../InstCombine/tests/logs/and-or-icmps.txt | 108 -- .../tests/logs/and-or-implied-cond-not.txt | 4 - .../InstCombine/tests/logs/and-or-not.txt | 8 +- .../InstCombine/tests/logs/and-xor-or.txt | 185 +- SSA/Projects/InstCombine/tests/logs/and.txt | 124 +- SSA/Projects/InstCombine/tests/logs/and2.txt | 12 +- .../InstCombine/tests/logs/apint-add.txt | 2 +- .../InstCombine/tests/logs/apint-div1.txt | 19 +- .../InstCombine/tests/logs/apint-div2.txt | 19 +- .../InstCombine/tests/logs/apint-mul1.txt | 4 +- .../InstCombine/tests/logs/apint-mul2.txt | 4 +- .../InstCombine/tests/logs/apint-rem1.txt | 7 +- .../InstCombine/tests/logs/apint-rem2.txt | 7 +- .../InstCombine/tests/logs/apint-select.txt | 6 +- .../InstCombine/tests/logs/apint-shift.txt | 38 +- .../InstCombine/tests/logs/ashr-demand.txt | 6 +- .../InstCombine/tests/logs/ashr-lshr.txt | 70 +- .../tests/logs/assume-icmp-null-select.txt | 4 - .../InstCombine/tests/logs/assume.txt | 4 - .../InstCombine/tests/logs/atomic.txt | 6 - .../InstCombine/tests/logs/avg-lsb.txt | 2 +- .../tests/logs/binop-and-shifts.txt | 32 +- .../InstCombine/tests/logs/binop-cast.txt | 32 +- .../InstCombine/tests/logs/binop-itofp.txt | 12 - .../tests/logs/binop-of-displaced-shifts.txt | 4 +- .../logs/binop-select-cast-of-select-cond.txt | 36 +- .../InstCombine/tests/logs/binop-select.txt | 76 +- .../InstCombine/tests/logs/bit-checks.txt | 74 - .../InstCombine/tests/logs/bit_ceil.txt | 10 - .../InstCombine/tests/logs/bit_floor.txt | 16 - .../InstCombine/tests/logs/bitreverse.txt | 4 +- .../InstCombine/tests/logs/branch.txt | 10 - .../InstCombine/tests/logs/bswap-fold.txt | 12 +- .../logs/canonicalize-ashr-shl-to-masking.txt | 8 +- ...tween-negative-and-positive-thresholds.txt | 104 -- ...rn-between-zero-and-positive-threshold.txt | 92 - .../logs/canonicalize-lshr-shl-to-masking.txt | 8 +- ...icalize-selects-icmp-condition-bittest.txt | 22 - .../logs/canonicalize-shl-lshr-to-masking.txt | 8 +- .../tests/logs/cast-mul-select.txt | 18 +- .../InstCombine/tests/logs/cast-select.txt | 20 - SSA/Projects/InstCombine/tests/logs/ceil.txt | 2 +- .../tests/logs/clamp-to-minmax.txt | 110 -- .../InstCombine/tests/logs/compare-alloca.txt | 2 - .../InstCombine/tests/logs/compare-udiv.txt | 16 +- .../tests/logs/conditional-negation.txt | 22 +- ...-length-signext-after-high-bit-extract.txt | 56 - .../tests/logs/constant-fold-math.txt | 2 +- .../tests/logs/ctlz-cttz-shifts.txt | 10 +- .../InstCombine/tests/logs/ctpop-pow2.txt | 4 +- SSA/Projects/InstCombine/tests/logs/ctpop.txt | 2 +- .../InstCombine/tests/logs/cttz-abs.txt | 10 - SSA/Projects/InstCombine/tests/logs/cttz.txt | 2 - .../tests/logs/debuginfo-variables.txt | 2 +- .../InstCombine/tests/logs/demorgan.txt | 4 +- .../tests/logs/deref-alloc-fns.txt | 8 - .../tests/logs/disable-simplify-libcalls.txt | 2 - .../div-by-0-guard-before-smul_ov-not.txt | 6 - .../logs/div-by-0-guard-before-smul_ov.txt | 4 - .../div-by-0-guard-before-umul_ov-not.txt | 6 - .../logs/div-by-0-guard-before-umul_ov.txt | 4 - .../InstCombine/tests/logs/div-i1.txt | 4 +- .../InstCombine/tests/logs/div-shift.txt | 159 +- SSA/Projects/InstCombine/tests/logs/exact.txt | 29 +- .../tests/logs/extract-select-agg.txt | 6 - .../logs/extractelement-inseltpoison.txt | 2 +- .../InstCombine/tests/logs/fabs-fneg-fold.txt | 4 +- SSA/Projects/InstCombine/tests/logs/fabs.txt | 92 - .../InstCombine/tests/logs/fast-math.txt | 2 - .../InstCombine/tests/logs/fcmp-select.txt | 24 - SSA/Projects/InstCombine/tests/logs/ffs-1.txt | 2 - SSA/Projects/InstCombine/tests/logs/fma.txt | 46 +- .../InstCombine/tests/logs/fmul-bool.txt | 8 +- .../InstCombine/tests/logs/fneg-fabs.txt | 28 - .../tests/logs/fold-ctpop-of-not.txt | 4 - .../tests/logs/fold-ext-eq-c-with-op.txt | 2 - .../tests/logs/fold-fops-into-selects.txt | 14 +- ...-of-add-of-not-x-and-y-to-sub-x-from-y.txt | 8 +- .../InstCombine/tests/logs/fold-minmax-i1.txt | 8 +- .../tests/logs/fold-select-trunc.txt | 12 - .../logs/fold-sub-of-not-to-inc-of-add.txt | 4 +- .../InstCombine/tests/logs/fp-floor-ceil.txt | 4 +- .../InstCombine/tests/logs/fpcast.txt | 6 +- .../InstCombine/tests/logs/fptrunc.txt | 12 - .../InstCombine/tests/logs/free-inversion.txt | 141 +- SSA/Projects/InstCombine/tests/logs/fsh.txt | 30 +- .../tests/logs/g2010h11h01hlshrhmask.txt | 36 - .../logs/g2010h11h01hlshrhmask_proof.txt | 329 ++++ SSA/Projects/InstCombine/tests/logs/gand.txt | 131 -- .../InstCombine/tests/logs/gand2_proof.txt | 375 ++++ .../InstCombine/tests/logs/gand_proof.txt | 452 +++++ .../InstCombine/tests/logs/gandhxorhor.txt | 596 ------- .../tests/logs/gandhxorhor_proof.txt | 925 ++++++++++ .../InstCombine/tests/logs/gapinthadd.txt | 33 - .../tests/logs/gapinthadd_proof.txt | 326 ++++ .../tests/logs/gdemand_shrink_nsw.txt | 36 - .../tests/logs/gdemand_shrink_nsw_proof.txt | 329 ++++ .../InstCombine/tests/logs/gdemorgan.txt | 123 -- .../tests/logs/gdemorgan_proof.txt | 416 +++++ .../InstCombine/tests/logs/gdivhi1.txt | 61 - .../InstCombine/tests/logs/gdivhi1_proof.txt | 356 ++++ .../get-lowbitmask-upto-and-including-bit.txt | 8 +- .../tests/logs/gfreehinversion_proof.txt | 747 ++++++++ .../glogicalhselecthinseltpoison_proof.txt | 369 ++++ .../InstCombine/tests/logs/gmul_fold.txt | 73 - .../tests/logs/gmul_fold_proof.txt | 366 ++++ .../tests/logs/gnestedhselect_proof.txt | 326 ++++ .../InstCombine/tests/logs/gnot_proof.txt | 391 +++++ .../tests/logs/gorhshiftedhmasks.txt | 103 -- .../tests/logs/gorhshiftedhmasks_proof.txt | 396 +++++ .../InstCombine/tests/logs/gorhxorhxor.txt | 44 - .../tests/logs/gorhxorhxor_proof.txt | 337 ++++ .../tests/logs/gselect_meta_proof.txt | 446 +++++ .../tests/logs/gselecthandhor_proof.txt | 545 ++++++ .../tests/logs/gselecthfactorize_proof.txt | 710 ++++++++ .../gselecthsafehboolhtransforms_proof.txt | 598 +++++++ .../logs/gselecthsafehtransforms_proof.txt | 399 +++++ .../InstCombine/tests/logs/gshifthadd.txt | 61 - .../tests/logs/gshifthadd_proof.txt | 354 ++++ .../logs/gshifthamounthreassociation.txt | 33 - .../gshifthamounthreassociation_proof.txt | 326 ++++ .../InstCombine/tests/logs/gshlhsub.txt | 33 - .../InstCombine/tests/logs/gshlhsub_proof.txt | 326 ++++ SSA/Projects/InstCombine/tests/logs/gxor.txt | 114 -- .../InstCombine/tests/logs/gxor_proof.txt | 534 ++++++ .../tests/logs/gxorhandhor_proof.txt | 419 +++++ .../tests/logs/high-bit-signmask.txt | 2 +- ...-out-of-bias-calculation-with-constant.txt | 4 +- ...hoist-negation-out-of-bias-calculation.txt | 4 +- .../logs/hoist-not-from-ashr-operand.txt | 4 +- ...oist-xor-by-constant-from-xor-by-value.txt | 4 +- .../tests/logs/icmp-and-lowbit-mask.txt | 44 - .../tests/logs/icmp-bc-vec-inseltpoison.txt | 6 +- .../InstCombine/tests/logs/icmp-bc-vec.txt | 6 +- .../InstCombine/tests/logs/icmp-binop.txt | 2 - .../tests/logs/icmp-bitcast-glob.txt | 2 - .../tests/logs/icmp-div-constant.txt | 8 - .../tests/logs/icmp-equality-test.txt | 20 - .../InstCombine/tests/logs/icmp-ext-ext.txt | 6 +- .../InstCombine/tests/logs/icmp-logical.txt | 28 - .../InstCombine/tests/logs/icmp-mul-and.txt | 2 - .../InstCombine/tests/logs/icmp-mul.txt | 2 - .../tests/logs/icmp-not-bool-constant.txt | 40 +- .../InstCombine/tests/logs/icmp-of-and-x.txt | 6 +- .../InstCombine/tests/logs/icmp-of-or-x.txt | 4 - .../logs/icmp-or-of-select-with-zero.txt | 32 - .../InstCombine/tests/logs/icmp-range.txt | 18 +- .../logs/icmp-select-implies-common-op.txt | 14 - .../InstCombine/tests/logs/icmp-select.txt | 114 +- .../tests/logs/icmp-vec-inseltpoison.txt | 2 +- .../tests/logs/icmp-with-selects.txt | 34 - .../tests/logs/icmp-xor-signbit.txt | 2 +- .../tests/logs/inselt-binop-inseltpoison.txt | 6 - .../InstCombine/tests/logs/inselt-binop.txt | 6 - .../insert-extract-shuffle-inseltpoison.txt | 2 - .../tests/logs/insert-extract-shuffle.txt | 2 - .../InstCombine/tests/logs/insertelement.txt | 2 +- .../logs/integer-round-up-pow2-alignment.txt | 52 +- .../tests/logs/intrinsic-select.txt | 54 +- ...t-variable-mask-in-masked-merge-vector.txt | 26 +- .../InstCombine/tests/logs/ispow2.txt | 24 +- .../logs/known-fpclass-reduce-signbit.txt | 10 +- .../tests/logs/known-never-nan.txt | 4 - .../tests/logs/load-bitcast-select.txt | 8 - .../InstCombine/tests/logs/load-select.txt | 2 - .../logs/logical-select-inseltpoison.txt | 127 +- .../InstCombine/tests/logs/low-bit-splat.txt | 2 +- SSA/Projects/InstCombine/tests/logs/lshr.txt | 24 +- .../tests/logs/masked-merge-add.txt | 6 +- .../tests/logs/masked-merge-and-of-ors.txt | 2 +- .../tests/logs/masked-merge-or.txt | 2 +- .../tests/logs/masked-merge-xor.txt | 6 +- .../InstCombine/tests/logs/max-of-nots.txt | 18 +- .../InstCombine/tests/logs/max_known_bits.txt | 2 - .../InstCombine/tests/logs/maximum.txt | 2 +- .../InstCombine/tests/logs/maxnum.txt | 2 +- .../InstCombine/tests/logs/memchr-11.txt | 2 - .../InstCombine/tests/logs/memchr-2.txt | 4 - .../InstCombine/tests/logs/memchr-3.txt | 4 - .../InstCombine/tests/logs/memchr-6.txt | 14 - .../InstCombine/tests/logs/memchr-7.txt | 4 - .../InstCombine/tests/logs/memchr.txt | 2 - .../InstCombine/tests/logs/memrchr-3.txt | 6 - .../InstCombine/tests/logs/memrchr-4.txt | 8 - .../InstCombine/tests/logs/memset-1.txt | 8 - .../InstCombine/tests/logs/minimum.txt | 2 +- .../tests/logs/minmax-demandbits.txt | 28 - .../InstCombine/tests/logs/minmax-fold.txt | 42 - .../InstCombine/tests/logs/minmax-fp.txt | 62 - .../tests/logs/minmax-intrinsics.txt | 14 +- .../tests/logs/minmax-of-xor-x.txt | 8 +- .../InstCombine/tests/logs/minnum.txt | 2 +- .../InstCombine/tests/logs/modulo.txt | 22 +- .../InstCombine/tests/logs/mul-pow2.txt | 40 +- .../InstCombine/tests/logs/mul_fold.txt | 2 +- .../multiple-uses-load-bitcast-select.txt | 4 - .../InstCombine/tests/logs/narrow.txt | 2 - .../tests/logs/negated-bitmask.txt | 12 +- .../InstCombine/tests/logs/nested-select.txt | 250 +-- .../InstCombine/tests/logs/nonnull-select.txt | 18 - .../InstCombine/tests/logs/not-add.txt | 6 +- SSA/Projects/InstCombine/tests/logs/not.txt | 84 +- .../InstCombine/tests/logs/onehot_merge.txt | 20 - .../tests/logs/operand-complexity.txt | 24 +- .../InstCombine/tests/logs/or-fcmp.txt | 196 --- .../InstCombine/tests/logs/or-xor-xor.txt | 2 +- .../InstCombine/tests/logs/or-xor.txt | 14 +- .../InstCombine/tests/logs/overflow-mul.txt | 6 - .../tests/logs/overflow_to_sat.txt | 88 - .../logs/phi-equal-incoming-pointers.txt | 26 - .../tests/logs/phi-select-constant.txt | 14 - SSA/Projects/InstCombine/tests/logs/phi.txt | 6 - SSA/Projects/InstCombine/tests/logs/pow-0.txt | 8 +- SSA/Projects/InstCombine/tests/logs/pow-1.txt | 16 +- SSA/Projects/InstCombine/tests/logs/pow-3.txt | 2 - .../InstCombine/tests/logs/pow-sqrt.txt | 12 - .../InstCombine/tests/logs/pr100298.txt | 2 - .../InstCombine/tests/logs/pr14365.txt | 4 +- .../InstCombine/tests/logs/pr20678.txt | 2 +- .../InstCombine/tests/logs/pr21210.txt | 2 - .../InstCombine/tests/logs/pr24354.txt | 2 - .../InstCombine/tests/logs/pr25745.txt | 2 - .../InstCombine/tests/logs/pr27332.txt | 2 +- .../InstCombine/tests/logs/pr28725.txt | 2 +- .../InstCombine/tests/logs/pr34627.txt | 2 +- .../InstCombine/tests/logs/pr35515.txt | 2 - .../InstCombine/tests/logs/pr36362.txt | 4 +- .../InstCombine/tests/logs/pr38897.txt | 4 - .../tests/logs/pr38984-inseltpoison.txt | 2 +- .../InstCombine/tests/logs/pr38984.txt | 2 +- .../InstCombine/tests/logs/pr49688.txt | 4 - .../InstCombine/tests/logs/pr53357.txt | 4 +- .../InstCombine/tests/logs/pr80597.txt | 2 - .../InstCombine/tests/logs/pr82877.txt | 2 - .../InstCombine/tests/logs/pr98139.txt | 4 - .../InstCombine/tests/logs/pr98435.txt | 2 - .../tests/logs/prevent-cmp-merge.txt | 4 - .../tests/logs/ptr-replace-alloca.txt | 10 - .../pull-conditional-binop-through-shift.txt | 168 +- .../InstCombine/tests/logs/range-check.txt | 12 - .../redundant-right-shift-input-masking.txt | 2 +- SSA/Projects/InstCombine/tests/logs/rem.txt | 97 +- .../reuse-constant-from-select-in-icmp.txt | 58 - .../InstCombine/tests/logs/rotate.txt | 2 - .../tests/logs/saturating-add-sub.txt | 94 +- .../InstCombine/tests/logs/sdiv-2.txt | 4 - .../tests/logs/sdiv-canonicalize.txt | 6 +- .../sdiv-exact-by-negative-power-of-two.txt | 6 +- .../tests/logs/sdiv-exact-by-power-of-two.txt | 6 +- .../InstCombine/tests/logs/select-2.txt | 48 +- .../InstCombine/tests/logs/select-and-or.txt | 355 ++-- .../tests/logs/select-binop-cmp.txt | 214 --- .../InstCombine/tests/logs/select-bitext.txt | 112 +- .../tests/logs/select-cmp-cttz-ctlz.txt | 18 - .../tests/logs/select-cmp-eq-op-fold.txt | 24 - .../InstCombine/tests/logs/select-crash.txt | 4 - .../tests/logs/select-ctlz-to-cttz.txt | 10 - .../InstCombine/tests/logs/select-divrem.txt | 102 +- .../select-extractelement-inseltpoison.txt | 30 - .../tests/logs/select-extractelement.txt | 34 - .../tests/logs/select-factorize.txt | 432 +++-- .../tests/logs/select-icmp-and-zero-shl.txt | 20 +- .../tests/logs/select-icmp-and.txt | 98 -- .../tests/logs/select-imm-canon.txt | 2 - .../InstCombine/tests/logs/select-load.txt | 10 - .../tests/logs/select-masked_load.txt | 8 - .../InstCombine/tests/logs/select-min-max.txt | 44 +- .../tests/logs/select-obo-peo-ops.txt | 104 -- .../tests/logs/select-of-bittest.txt | 38 - .../logs/select-of-symmetric-selects.txt | 48 +- .../logs/select-safe-bool-transforms.txt | 320 +++- .../select-safe-impliedcond-transforms.txt | 28 - .../tests/logs/select-safe-transforms.txt | 248 +-- .../tests/logs/select-with-bitwise-ops.txt | 234 +-- .../tests/logs/select_arithmetic.txt | 30 +- .../InstCombine/tests/logs/select_meta.txt | 43 +- .../logs/set-lowbits-mask-canonicalize.txt | 8 +- SSA/Projects/InstCombine/tests/logs/set.txt | 18 +- SSA/Projects/InstCombine/tests/logs/sext.txt | 10 +- .../InstCombine/tests/logs/shift-add.txt | 10 +- ...iation-in-bittest-with-truncation-lshr.txt | 2 +- .../tests/logs/shift-amount-reassociation.txt | 4 +- .../InstCombine/tests/logs/shift-logic.txt | 18 +- .../InstCombine/tests/logs/shift-shift.txt | 18 +- .../InstCombine/tests/logs/shift-sra.txt | 4 +- .../InstCombine/tests/logs/shl-bo.txt | 30 +- .../InstCombine/tests/logs/shl-demand.txt | 2 +- .../InstCombine/tests/logs/shl-factor.txt | 4 +- .../InstCombine/tests/logs/shl-sub.txt | 8 +- .../shuffle-select-narrow-inseltpoison.txt | 18 +- .../tests/logs/shuffle-select-narrow.txt | 18 +- .../logs/shuffle_select-inseltpoison.txt | 102 +- .../InstCombine/tests/logs/shuffle_select.txt | 108 +- .../logs/shufflevec-constant-inseltpoison.txt | 2 +- .../shufflevector-div-rem-inseltpoison.txt | 16 +- .../tests/logs/shufflevector-div-rem.txt | 16 +- .../tests/logs/sign-test-and-or.txt | 8 - .../tests/logs/signed-truncation-check.txt | 18 - .../InstCombine/tests/logs/signext.txt | 8 +- .../tests/logs/simplify-libcalls-i16.txt | 2 - .../tests/logs/simplify-libcalls.txt | 2 - .../tests/logs/sink-not-into-and.txt | 2 - .../sink-not-into-another-hand-of-and.txt | 14 - ...k-not-into-another-hand-of-logical-and.txt | 34 - ...nk-not-into-another-hand-of-logical-or.txt | 34 - .../logs/sink-not-into-another-hand-of-or.txt | 14 - .../tests/logs/sink-not-into-logical-and.txt | 26 +- .../tests/logs/sink-not-into-logical-or.txt | 26 +- .../tests/logs/sink-not-into-or.txt | 2 - .../InstCombine/tests/logs/sitofp.txt | 6 +- .../InstCombine/tests/logs/smin-icmp.txt | 16 - SSA/Projects/InstCombine/tests/logs/smulo.txt | 8 +- .../tests/logs/srem-canonicalize.txt | 2 +- .../InstCombine/tests/logs/strchr-1.txt | 2 - .../InstCombine/tests/logs/strchr-3.txt | 22 - .../InstCombine/tests/logs/strcmp-1.txt | 4 - .../InstCombine/tests/logs/strcmp-4.txt | 2 - .../InstCombine/tests/logs/strlen-1.txt | 6 +- .../InstCombine/tests/logs/strlen-4.txt | 22 - .../InstCombine/tests/logs/strnlen-2.txt | 26 - .../InstCombine/tests/logs/strnlen-4.txt | 8 - .../InstCombine/tests/logs/strrchr-3.txt | 2 - .../tests/logs/sub-and-or-neg-xor.txt | 2 +- .../logs/sub-ashr-and-to-icmp-select.txt | 26 - .../tests/logs/sub-ashr-or-to-icmp-select.txt | 22 - .../InstCombine/tests/logs/sub-not.txt | 8 +- .../logs/sub-of-negatible-inseltpoison.txt | 29 +- .../tests/logs/sub-of-negatible.txt | 44 +- .../InstCombine/tests/logs/sub-or-and-xor.txt | 2 +- .../InstCombine/tests/logs/sub-xor-cmp.txt | 16 +- .../tests/logs/sub-xor-or-neg-and.txt | 2 +- .../InstCombine/tests/logs/sub-xor.txt | 6 +- .../logs/subtract-from-one-hand-of-select.txt | 16 +- .../logs/subtract-of-one-hand-of-select.txt | 16 +- .../InstCombine/tests/logs/switch-select.txt | 4 - .../tests/logs/tmp-alloca-bypass.txt | 4 - .../tests/logs/trunc-inseltpoison.txt | 8 +- SSA/Projects/InstCombine/tests/logs/trunc.txt | 10 +- .../tests/logs/truncating-saturate.txt | 68 - SSA/Projects/InstCombine/tests/logs/uaddo.txt | 20 - .../logs/udiv_select_to_select_shift.txt | 17 +- .../tests/logs/udivrem-change-width.txt | 34 +- SSA/Projects/InstCombine/tests/logs/umulo.txt | 8 +- ...ld-masked-merge-with-const-mask-vector.txt | 28 +- .../tests/logs/unordered-fcmp-select.txt | 20 - ...ul-lack-of-overflow-check-via-mul-udiv.txt | 10 - ...-of-overflow-check-via-udiv-of-allones.txt | 8 - ...signed-mul-overflow-check-via-mul-udiv.txt | 10 - ...mul-overflow-check-via-udiv-of-allones.txt | 8 - .../tests/logs/unsigned_saturated_sub.txt | 26 +- .../tests/logs/urem-via-cmp-select.txt | 10 - .../tests/logs/urem-via-udiv-mul-sub.txt | 12 - .../usub-overflow-known-by-implied-cond.txt | 8 - .../InstCombine/tests/logs/vec_sext.txt | 8 +- .../tests/logs/vec_udiv_to_shift.txt | 4 +- .../tests/logs/vector-casts-inseltpoison.txt | 6 +- .../logs/vector-concat-binop-inseltpoison.txt | 6 +- .../tests/logs/vector-concat-binop.txt | 6 +- .../InstCombine/tests/logs/vector-mul.txt | 64 +- .../logs/vector-reduce-min-max-known.txt | 14 +- .../InstCombine/tests/logs/vector-type.txt | 2 - .../InstCombine/tests/logs/vector-udiv.txt | 8 +- .../InstCombine/tests/logs/vector-urem.txt | 8 +- .../InstCombine/tests/logs/vector-xor.txt | 32 +- .../vector_insertelt_shuffle-inseltpoison.txt | 2 +- .../tests/logs/vector_insertelt_shuffle.txt | 2 +- .../InstCombine/tests/logs/wcslen-1.txt | 6 +- .../InstCombine/tests/logs/wcslen-3.txt | 6 +- .../InstCombine/tests/logs/wcslen-5.txt | 14 - .../InstCombine/tests/logs/xor-and-or.txt | 78 +- .../InstCombine/tests/logs/xor-ashr.txt | 14 - .../logs/xor-of-icmps-with-extra-uses.txt | 10 - .../InstCombine/tests/logs/xor-of-or.txt | 8 +- .../InstCombine/tests/logs/xor-undef.txt | 2 +- SSA/Projects/InstCombine/tests/logs/xor.txt | 191 ++- SSA/Projects/InstCombine/tests/logs/xor2.txt | 8 +- .../tests/logs/zext-bool-add-sub.txt | 32 +- SSA/Projects/InstCombine/tests/logs/zext.txt | 12 +- .../proofs/g2005h04h07hUDivSelectCrash.lean | 49 + .../g2005h04h07hUDivSelectCrash_proof.lean | 20 + .../tests/proofs/g2008h05h31hBools.lean | 28 + .../tests/proofs/g2008h05h31hBools_proof.lean | 2 + .../tests/proofs/g2012h08h28hudiv_ashl.lean | 113 ++ .../proofs/g2012h08h28hudiv_ashl_proof.lean | 12 + .../InstCombine/tests/proofs/gadd2.lean | 35 + .../InstCombine/tests/proofs/gadd2_proof.lean | 36 + .../InstCombine/tests/proofs/gadd4.lean | 269 +++ .../InstCombine/tests/proofs/gadd4_proof.lean | 34 + .../InstCombine/tests/proofs/gand2.lean | 398 ----- .../InstCombine/tests/proofs/gand2_proof.lean | 46 - .../InstCombine/tests/proofs/gapinthdiv1.lean | 113 ++ .../tests/proofs/gapinthdiv1_proof.lean | 24 + .../InstCombine/tests/proofs/gapinthdiv2.lean | 113 ++ .../tests/proofs/gapinthdiv2_proof.lean | 28 + .../InstCombine/tests/proofs/gapinthrem1.lean | 35 + .../tests/proofs/gapinthrem1_proof.lean | 14 + .../InstCombine/tests/proofs/gapinthrem2.lean | 35 + .../tests/proofs/gapinthrem2_proof.lean | 14 + .../tests/proofs/gapinthshift.lean | 35 + .../tests/proofs/gapinthshift_proof.lean | 12 + .../tests/proofs/gbinophselect.lean | 84 + .../tests/proofs/gbinophselect_proof.lean | 30 + .../InstCombine/tests/proofs/gdivhshift.lean | 456 +++++ .../tests/proofs/gdivhshift_proof.lean | 137 ++ .../InstCombine/tests/proofs/gexact.lean | 128 ++ .../tests/proofs/gexact_proof.lean | 14 + .../tests/proofs/gfreehinversion.lean | 50 - .../tests/proofs/gfreehinversion_proof.lean | 8 - .../InstCombine/tests/proofs/gmulhpow2.lean | 142 ++ .../tests/proofs/gmulhpow2_proof.lean | 76 + .../InstCombine/tests/proofs/gnot.lean | 280 --- .../InstCombine/tests/proofs/gnot_proof.lean | 31 - .../tests/proofs/goperandhcomplexity.lean | 88 + .../proofs/goperandhcomplexity_proof.lean | 10 + ...gpullhconditionalhbinophthroughhshift.lean | 754 +++++++++ ...conditionalhbinophthroughhshift_proof.lean | 486 ++++++ .../InstCombine/tests/proofs/grem.lean | 173 +- .../InstCombine/tests/proofs/grem_proof.lean | 65 +- .../InstCombine/tests/proofs/gselecth2.lean | 224 +++ .../tests/proofs/gselecth2_proof.lean | 167 ++ .../tests/proofs/gselecthdivrem.lean | 334 ++++ .../tests/proofs/gselecthdivrem_proof.lean | 836 +++++++++ .../proofs/gselecthofhsymmetrichselects.lean | 110 ++ .../gselecthofhsymmetrichselects_proof.lean | 358 ++++ .../proofs/gselecthwithhbitwisehops.lean | 52 + .../gselecthwithhbitwisehops_proof.lean | 25 + .../tests/proofs/gshifthshift.lean | 35 + .../tests/proofs/gshifthshift_proof.lean | 5 + .../tests/proofs/gsubhofhnegatible.lean | 106 ++ .../tests/proofs/gsubhofhnegatible_proof.lean | 61 + .../gsubhofhnegatiblehinseltpoison.lean | 72 + .../gsubhofhnegatiblehinseltpoison_proof.lean | 44 + .../gsubtracthfromhonehhandhofhselect.lean | 78 + ...ubtracthfromhonehhandhofhselect_proof.lean | 54 + .../gsubtracthofhonehhandhofhselect.lean | 78 + ...gsubtracthofhonehhandhofhselect_proof.lean | 54 + .../proofs/gudiv_select_to_select_shift.lean | 54 + .../gudiv_select_to_select_shift_proof.lean | 25 + 520 files changed, 31324 insertions(+), 8955 deletions(-) create mode 100644 SSA/Projects/InstCombine/tests/LLVM/g2005h04h07hUDivSelectCrash.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/g2012h08h28hudiv_ashl.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gapinthdiv1.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gapinthdiv2.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gbinophselect.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/glogicalhselecthinseltpoison.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gnestedhselect.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/goperandhcomplexity.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gpullhconditionalhbinophthroughhshift.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselect_meta.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecth2.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthandhor.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthdivrem.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthfactorize.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthofhsymmetrichselects.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthsafehboolhtransforms.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthsafehtransforms.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gselecthwithhbitwisehops.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubtracthfromhonehhandhofhselect.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gsubtracthofhonehhandhofhselect.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gudiv_select_to_select_shift.lean create mode 100644 SSA/Projects/InstCombine/tests/LLVM/gxorhandhor.lean delete mode 100644 SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/g2010h11h01hlshrhmask_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gand.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gand2_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gand_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gandhxorhor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gandhxorhor_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gapinthadd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gapinthadd_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdemand_shrink_nsw_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gdemorgan.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdemorgan_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gdivhi1.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gdivhi1_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gfreehinversion_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/glogicalhselecthinseltpoison_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gmul_fold.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gmul_fold_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gnestedhselect_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gnot_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gorhshiftedhmasks_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gorhxorhxor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gorhxorhxor_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gselect_meta_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gselecthandhor_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gselecthfactorize_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gselecthsafehboolhtransforms_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gselecthsafehtransforms_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthadd.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthadd_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshifthamounthreassociation_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gshlhsub.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gshlhsub_proof.txt delete mode 100644 SSA/Projects/InstCombine/tests/logs/gxor.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gxor_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/logs/gxorhandhor_proof.txt create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2005h04h07hUDivSelectCrash_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/g2012h08h28hudiv_ashl_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gand2.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gand2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthdiv1.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthdiv1_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthdiv2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gapinthdiv2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophselect.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gbinophselect_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gfreehinversion.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gfreehinversion_proof.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gnot.lean delete mode 100644 SSA/Projects/InstCombine/tests/proofs/gnot_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/goperandhcomplexity_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gpullhconditionalhbinophthroughhshift_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecth2.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecth2_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthdivrem.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthdivrem_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthofhsymmetrichselects_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gselecthwithhbitwisehops_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubtracthfromhonehhandhofhselect_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gsubtracthofhonehhandhofhselect_proof.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift.lean create mode 100644 SSA/Projects/InstCombine/tests/proofs/gudiv_select_to_select_shift_proof.lean 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 + From a3f8ce4c64a853a5f4ed7e983b066d8c31487fce Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:14:36 +0100 Subject: [PATCH 11/21] forgot to commit the changes to proof-gen --- SSA/Projects/InstCombine/scripts/proof-gen.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index 0593722c8..3a89c3d6a 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -12,7 +12,7 @@ def get_lines(msg): matches = pattern.findall(msg) lines_thm = [(int(l), m) for (l, m) in matches if "no goals to be solved" not in m] # Replace this with your actual implementation - return lines_thm, lines_done + return lines_thm # return [(1, "New message for line 1"), (3, "New message for line 3")] @@ -32,10 +32,10 @@ def print_log(log, log_file): def process_file(file_path): # Run the `lake build` command and capture the output module_name = file_path[2:-5].replace("/", ".") - proof_name = file_path[:-5].replace("/LLVM/", "/proofs/") + "_proof" + proof_file = file_path[:-5].replace("/LLVM/", "/proofs/") + "_proof.lean" stem_name = file_path.split("/")[-1][:-5] new_file_path = file_path.replace("/LLVM/", "/proofs/") - log_path = file_path.replace("/LLVM/", "/logs/").replace(".lean", ".txt") + log_path = proof_file.replace("/proofs/", "/logs/").replace(".lean", ".txt") result = subprocess.run( ["lake", "build", module_name], capture_output=True, text=True ) @@ -71,7 +71,7 @@ def process_file(file_path): file.writelines(lines) # Append the messages to the end of the file - with open(proof_name + ".lean", "w") as file: + with open(proof_file, "w") as file: file.write(gen_intro(stem_name)) for _, n, m in named: print(f"m = {m}") From e9c875748a21fb0fa036c323834ae2a6fad8d7d1 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:16:09 +0100 Subject: [PATCH 12/21] updated read-logs --- SSA/Projects/InstCombine/scripts/read-logs.py | 61 ++++++++++++++++--- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/read-logs.py b/SSA/Projects/InstCombine/scripts/read-logs.py index a9b09a8ed..6b9421ff7 100644 --- a/SSA/Projects/InstCombine/scripts/read-logs.py +++ b/SSA/Projects/InstCombine/scripts/read-logs.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import os import re +import subprocess from cfg import * def add_or_1(d, k): @@ -13,27 +14,73 @@ def main(): unsupported_func = dict() success_func = dict() error_dict = dict() - print(os.listdir(log_path)) + log_errors = [] + # print(os.listdir(log_path)) + func_count = 0 + build_error = 0 for log in os.listdir(log_path): with open(f"{log_path}/{log}", "r") as l: + func_success = False lines = l.readlines() + if not (len(lines) > 0): + log_errors.append(log) + continue + elif not lines[0][0].isnumeric(): + build_error += 1 + continue for line in lines: s_line = re.split('"|: |\n', line) s_line = [s.strip() for s in s_line if s != ''] if len(s_line) > 0: - print(s_line) + # print(s_line) msg = Msg(int(s_line[0])) - print(msg, msg.is_error()) + # print(msg, msg.is_error()) func = s_line[-1] if msg == Msg.E_UNSUPPORTED: add_or_1(unsupported_func, func) + if func_success: + add_or_1(error_dict, msg) + func_success = False elif msg == Msg.OP: add_or_1(success_func, func) - elif msg.is_error(): + elif msg == Msg.FUNC_NAME: + if func_success: + func_count += 1 + func_success = True + else: + func_success = False add_or_1(error_dict, msg) - print(unsupported_func) - print(success_func) - print(error_dict) + # print(unsupported_func) + # print(success_func) + # print(error_dict) + llvm_test_count = len(os.listdir(llvm_test_path)) + translated_test_count = len(os.listdir(test_path)) + proof_count = len(os.listdir(proof_path)) >> 1 + + grep_process = f"grep -o theorem {proof_path}/*_proof.lean | wc -l" + + theorem_count = subprocess.run( + grep_process, + shell=True, + capture_output=True, + encoding="utf-8" + ).stdout + + print(f"Number of files in llvm's tests: {llvm_test_count}\n") + print(f"Number of translated test files: {translated_test_count}\n") + print(f"Number of successfully built test files: {proof_count}\n") + + print(f"Empty logs: {log_errors}\n") + + print(f"Number of builds that failed: {build_error}\n") + print(f"Number of generated BitVector theorems: {theorem_count}\n") + print(f"Occurrences of unsupported functions: {sum(unsupported_func.values())}") + for key, value in sorted(unsupported_func.items(), key=lambda x: x[1]): + print("{} : {}".format(key, value)) + + print(f"Number of functions that couldn't be translated due to each error: {sum(error_dict.values())}") + for key, value in sorted(error_dict.items(), key=lambda x: x[1]): + print("{} : {}".format(key, value)) if __name__ == "__main__": main() \ No newline at end of file From 3b3b1577a2a5207d33841106c4d29fbb3c410c40 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:18:56 +0100 Subject: [PATCH 13/21] edits to cfg --- SSA/Projects/InstCombine/scripts/cfg.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index ea933d3b8..a1fbcf05b 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -14,6 +14,7 @@ raise ValueError("You need to give the path to llvm in config.py") test_path = "SSA/Projects/InstCombine/tests/LLVM" +proof_path = "SSA/Projects/InstCombine/tests/proofs" log_path = "SSA/Projects/InstCombine/tests/logs" llvm_test_path = llvm_path + "/llvm/test/Transforms/InstCombine" expensive_files = [ @@ -45,8 +46,12 @@ "llvm.mul", "llvm.sub", "llvm.sdiv", + "llvm.udiv", +} + +allowed_unregistered = { + "llvm.select", } -allowed_unregistered = set() class Msg(Enum): FUNC_NAME = 1 From 5c249d7ac5df0bf924995017cec3a494f67a3068 Mon Sep 17 00:00:00 2001 From: lfrenot Date: Wed, 23 Oct 2024 11:21:33 +0100 Subject: [PATCH 14/21] Update SSA/Projects/InstCombine/scripts/cfg.py Co-authored-by: Tobias Grosser --- SSA/Projects/InstCombine/scripts/cfg.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index a1fbcf05b..e9d7d0f5b 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -26,8 +26,6 @@ ctx = MLContext(allow_unregistered=True) ctx.load_dialect(LLVM) ctx.load_dialect(Builtin) - - allowed_names = { "llvm.return", "llvm.mul", From ee4aa766ca99316b9d6fd16426d440392a699e04 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:49:48 +0100 Subject: [PATCH 15/21] removed commented-out code --- SSA/Projects/InstCombine/scripts/proof-gen.py | 5 +---- SSA/Projects/InstCombine/scripts/read-logs.py | 6 ------ SSA/Projects/InstCombine/scripts/test-gen.py | 2 -- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index 3a89c3d6a..f737cac31 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -13,7 +13,6 @@ def get_lines(msg): lines_thm = [(int(l), m) for (l, m) in matches if "no goals to be solved" not in m] # Replace this with your actual implementation return lines_thm - # return [(1, "New message for line 1"), (3, "New message for line 3")] def gen_intro(stem): @@ -43,7 +42,6 @@ def process_file(file_path): msg = result.stdout if result.stderr: print_log([result.stdout, result.stderr], log_path) - # raise Exception(result.stderr) return print(f"msg = {msg}") @@ -101,5 +99,4 @@ def main(): if __name__ == "__main__": - main() - # process_file("./SSA/Projects/InstCombine/tests/LLVM/gand.lean") + main() \ No newline at end of file diff --git a/SSA/Projects/InstCombine/scripts/read-logs.py b/SSA/Projects/InstCombine/scripts/read-logs.py index 6b9421ff7..202d756d1 100644 --- a/SSA/Projects/InstCombine/scripts/read-logs.py +++ b/SSA/Projects/InstCombine/scripts/read-logs.py @@ -15,7 +15,6 @@ def main(): success_func = dict() error_dict = dict() log_errors = [] - # print(os.listdir(log_path)) func_count = 0 build_error = 0 for log in os.listdir(log_path): @@ -32,9 +31,7 @@ def main(): s_line = re.split('"|: |\n', line) s_line = [s.strip() for s in s_line if s != ''] if len(s_line) > 0: - # print(s_line) msg = Msg(int(s_line[0])) - # print(msg, msg.is_error()) func = s_line[-1] if msg == Msg.E_UNSUPPORTED: add_or_1(unsupported_func, func) @@ -50,9 +47,6 @@ def main(): else: func_success = False add_or_1(error_dict, msg) - # print(unsupported_func) - # print(success_func) - # print(error_dict) llvm_test_count = len(os.listdir(llvm_test_path)) translated_test_count = len(os.listdir(test_path)) proof_count = len(os.listdir(proof_path)) >> 1 diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index 9d48d20a1..e0d19bf4c 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -117,7 +117,6 @@ def op_name(op): return f"builtin.unregistered: {op.op_name.data}" return op.name -# for file in os.listdir(directory): def process_file(file): filename = os.fsdecode(file) print(filename) @@ -161,7 +160,6 @@ def process_file(file): funcs2 = {f.sym_name.data: f for f in module2.walk() if isinstance(f, FuncOp)} for func in module1.walk(): if not isinstance(func, FuncOp): - # log.append(f"{type(func)}\n") continue func_name = func.sym_name log.append(f"{Msg.FUNC_NAME.value}: {func_name}\n") From 7e096bd1b5a411416d2ffbda1c10986644b70ca9 Mon Sep 17 00:00:00 2001 From: lfrenot Date: Wed, 23 Oct 2024 11:55:21 +0100 Subject: [PATCH 16/21] Update cfg.py --- SSA/Projects/InstCombine/scripts/cfg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SSA/Projects/InstCombine/scripts/cfg.py b/SSA/Projects/InstCombine/scripts/cfg.py index e9d7d0f5b..f8adedbd4 100644 --- a/SSA/Projects/InstCombine/scripts/cfg.py +++ b/SSA/Projects/InstCombine/scripts/cfg.py @@ -62,4 +62,4 @@ class Msg(Enum): E_VECTOR = 8 def is_error(self): - return self.value > 2 \ No newline at end of file + return self.value > 2 From 04c4b1ce03794c6197b95f76a93845347e959316 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Wed, 23 Oct 2024 11:58:12 +0100 Subject: [PATCH 17/21] Added newlines at end of files --- SSA/Projects/InstCombine/scripts/proof-gen.py | 2 +- SSA/Projects/InstCombine/scripts/read-logs.py | 2 +- SSA/Projects/InstCombine/scripts/test-gen.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SSA/Projects/InstCombine/scripts/proof-gen.py b/SSA/Projects/InstCombine/scripts/proof-gen.py index f737cac31..4c98918e5 100644 --- a/SSA/Projects/InstCombine/scripts/proof-gen.py +++ b/SSA/Projects/InstCombine/scripts/proof-gen.py @@ -99,4 +99,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/SSA/Projects/InstCombine/scripts/read-logs.py b/SSA/Projects/InstCombine/scripts/read-logs.py index 202d756d1..0802a7431 100644 --- a/SSA/Projects/InstCombine/scripts/read-logs.py +++ b/SSA/Projects/InstCombine/scripts/read-logs.py @@ -77,4 +77,4 @@ def main(): print("{} : {}".format(key, value)) if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/SSA/Projects/InstCombine/scripts/test-gen.py b/SSA/Projects/InstCombine/scripts/test-gen.py index e0d19bf4c..b51a95759 100644 --- a/SSA/Projects/InstCombine/scripts/test-gen.py +++ b/SSA/Projects/InstCombine/scripts/test-gen.py @@ -222,4 +222,4 @@ def process_file(file): if __name__ == "__main__": remove() with Pool(7) as p: - p.map(process_file, os.listdir(directory)) \ No newline at end of file + p.map(process_file, os.listdir(directory)) From ced17252ee2b65e79509f565cb505296d4288a5b Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Thu, 24 Oct 2024 14:42:57 +0100 Subject: [PATCH 18/21] Semantics for Integer Conversion ops --- SSA/Projects/InstCombine/LLVM/Semantics.lean | 30 ++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/SSA/Projects/InstCombine/LLVM/Semantics.lean b/SSA/Projects/InstCombine/LLVM/Semantics.lean index ba2e9971a..665119a43 100644 --- a/SSA/Projects/InstCombine/LLVM/Semantics.lean +++ b/SSA/Projects/InstCombine/LLVM/Semantics.lean @@ -404,8 +404,6 @@ def ashr {w : Nat} (x y : IntW w) (flag : ExactFlag := {exact := false}) : IntW /-- If the condition is an i1 and it evaluates to 1, the instruction returns the first value argument; otherwise, it returns the second value argument. - - If the condition is an i1 and it evaluates to 1, the instruction returns the first value argument; otherwise, it returns the second value argument. -/ @[simp_llvm_option] def select {w : Nat} (c? : IntW 1) (x? y? : IntW w ) : IntW w := @@ -564,4 +562,32 @@ def neg {w : Nat} (x : IntW w) : IntW w := do let x' ← x neg? x' + +@[simp_llvm] +def trunc? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do + pure <| (BitVec.truncate w' x) + +@[simp_llvm_option] +def trunc {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do + let x' <- x + trunc? x' w' + +@[simp_llvm] +def zext? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do + pure <| (BitVec.zeroExtend w' x) + +@[simp_llvm_option] +def zext {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do + let x' <- x + zext? x' w' + +@[simp_llvm] +def sext? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do + pure <| (BitVec.signExtend w' x) + +@[simp_llvm_option] +def sext {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do + let x' <- x + sext? x' w' + end LLVM From a8f0d16d84b5f32c8d94706e8e3ebe8134112a9e Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Thu, 24 Oct 2024 16:47:00 +0100 Subject: [PATCH 19/21] First attempt (not working) --- SSA/Projects/InstCombine/Base.lean | 58 +++++++++++++------ SSA/Projects/InstCombine/LLVM/EDSL.lean | 14 ++++- SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean | 20 +++++++ SSA/Projects/InstCombine/LLVM/Semantics.lean | 18 +++--- 4 files changed, 80 insertions(+), 30 deletions(-) diff --git a/SSA/Projects/InstCombine/Base.lean b/SSA/Projects/InstCombine/Base.lean index bbdeff5e7..f23627d98 100644 --- a/SSA/Projects/InstCombine/Base.lean +++ b/SSA/Projects/InstCombine/Base.lean @@ -84,6 +84,9 @@ inductive MOp.UnaryOp : Type | neg | not | copy + | trunc + | zext + | sext deriving Repr, DecidableEq, Inhabited /-- Homogeneous, binary operations -/ @@ -155,6 +158,10 @@ namespace MOp @[match_pattern] def neg (w : Width φ) : MOp φ := .unary w .neg @[match_pattern] def not (w : Width φ) : MOp φ := .unary w .not @[match_pattern] def copy (w : Width φ) : MOp φ := .unary w .copy +@[match_pattern] def trunc (w : Width φ) : MOp φ := .unary w .trunc +@[match_pattern] def zext (w : Width φ) : MOp φ := .unary w .zext +@[match_pattern] def sext (w : Width φ) : MOp φ := .unary w .sext + @[match_pattern] def and (w : Width φ) : MOp φ := .binary w .and @[match_pattern] def xor (w : Width φ) : MOp φ := .binary w .xor @@ -198,6 +205,9 @@ namespace MOp def deepCasesOn {motive : ∀ {φ}, MOp φ → Sort*} (neg : ∀ {φ} {w : Width φ}, motive (neg w)) (not : ∀ {φ} {w : Width φ}, motive (not w)) + (trunc : ∀ {φ} {w : Width φ}, motive (trunc w)) + (zext : ∀ {φ} {w : Width φ}, motive (zext w)) + (sext : ∀ {φ} {w : Width φ}, motive (sext w)) (copy : ∀ {φ} {w : Width φ}, motive (copy w)) (and : ∀ {φ} {w : Width φ}, motive (and w)) (or : ∀ {φ DisjointFlag} {w : Width φ}, motive (or w DisjointFlag)) @@ -218,6 +228,9 @@ def deepCasesOn {motive : ∀ {φ}, MOp φ → Sort*} ∀ {φ} (op : MOp φ), motive op | _, .neg _ => neg | _, .not _ => not + | _, .trunc _ => trunc + | _, .zext _ => zext + | _, .sext _ => sext | _, .copy _ => copy | _, .and _ => and | _, .or _ _ => or @@ -255,6 +268,9 @@ instance : ToString (MOp φ) where | .sub _ _ => "sub" | .neg _ => "neg" | .copy _ => "copy" + | .trunc _ => "trunc" + | .zext _ => "zext" + | .sext _ => "sext" | .sdiv _ _ => "sdiv" | .udiv _ _ => "udiv" | .icmp ty _ => s!"icmp {ty}" @@ -269,6 +285,9 @@ namespace Op @[match_pattern] abbrev and : Nat → Op := MOp.and ∘ .concrete @[match_pattern] abbrev not : Nat → Op := MOp.not ∘ .concrete +@[match_pattern] abbrev trunc : Nat → Op := MOp.trunc ∘ .concrete +@[match_pattern] abbrev zext : Nat → Op := MOp.zext ∘ .concrete +@[match_pattern] abbrev sext : Nat → Op := MOp.sext ∘ .concrete @[match_pattern] abbrev xor : Nat → Op := MOp.xor ∘ .concrete @[match_pattern] abbrev urem : Nat → Op := MOp.urem ∘ .concrete @[match_pattern] abbrev srem : Nat → Op := MOp.srem ∘ .concrete @@ -336,24 +355,27 @@ def Op.denote (o : LLVM.Op) (op : HVector TyDenote.toType (DialectSignature.sig (TyDenote.toType <| DialectSignature.outTy o) := match o with | Op.const _ val => const? val - | Op.copy _ => (op.getN 0) - | Op.not _ => LLVM.not (op.getN 0) - | Op.neg _ => LLVM.neg (op.getN 0) - | Op.and _ => LLVM.and (op.getN 0) (op.getN 1) - | Op.or _ flag => LLVM.or (op.getN 0) (op.getN 1) flag - | Op.xor _ => LLVM.xor (op.getN 0) (op.getN 1) - | Op.shl _ flags => LLVM.shl (op.getN 0) (op.getN 1) flags - | Op.lshr _ flag => LLVM.lshr (op.getN 0) (op.getN 1) flag - | Op.ashr _ flag => LLVM.ashr (op.getN 0) (op.getN 1) flag - | Op.sub _ flags => LLVM.sub (op.getN 0) (op.getN 1) flags - | Op.add _ flags => LLVM.add (op.getN 0) (op.getN 1) flags - | Op.mul _ flags => LLVM.mul (op.getN 0) (op.getN 1) flags - | Op.sdiv _ flag => LLVM.sdiv (op.getN 0) (op.getN 1) flag - | Op.udiv _ flag => LLVM.udiv (op.getN 0) (op.getN 1) flag - | Op.urem _ => LLVM.urem (op.getN 0) (op.getN 1) - | Op.srem _ => LLVM.srem (op.getN 0) (op.getN 1) - | Op.icmp c _ => LLVM.icmp c (op.getN 0) (op.getN 1) - | Op.select _ => LLVM.select (op.getN 0) (op.getN 1) (op.getN 2) + | Op.copy _ => (op.getN 0) + | Op.not _ => LLVM.not (op.getN 0) + | Op.neg _ => LLVM.neg (op.getN 0) + | Op.trunc w => LLVM.trunc w (op.getN 0) + | Op.zext w => LLVM.zext w (op.getN 0) + | Op.sext w => LLVM.sext w (op.getN 0) + | Op.and _ => LLVM.and (op.getN 0) (op.getN 1) + | Op.or _ flag => LLVM.or (op.getN 0) (op.getN 1) flag + | Op.xor _ => LLVM.xor (op.getN 0) (op.getN 1) + | Op.shl _ flags => LLVM.shl (op.getN 0) (op.getN 1) flags + | Op.lshr _ flag => LLVM.lshr (op.getN 0) (op.getN 1) flag + | Op.ashr _ flag => LLVM.ashr (op.getN 0) (op.getN 1) flag + | Op.sub _ flags => LLVM.sub (op.getN 0) (op.getN 1) flags + | Op.add _ flags => LLVM.add (op.getN 0) (op.getN 1) flags + | Op.mul _ flags => LLVM.mul (op.getN 0) (op.getN 1) flags + | Op.sdiv _ flag => LLVM.sdiv (op.getN 0) (op.getN 1) flag + | Op.udiv _ flag => LLVM.udiv (op.getN 0) (op.getN 1) flag + | Op.urem _ => LLVM.urem (op.getN 0) (op.getN 1) + | Op.srem _ => LLVM.srem (op.getN 0) (op.getN 1) + | Op.icmp c _ => LLVM.icmp c (op.getN 0) (op.getN 1) + | Op.select _ => LLVM.select (op.getN 0) (op.getN 1) (op.getN 2) instance : DialectDenote LLVM := ⟨ fun o args _ => Op.denote o args diff --git a/SSA/Projects/InstCombine/LLVM/EDSL.lean b/SSA/Projects/InstCombine/LLVM/EDSL.lean index 53a967e4a..7b299804e 100644 --- a/SSA/Projects/InstCombine/LLVM/EDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/EDSL.lean @@ -161,6 +161,11 @@ def mkExpr (Γ : Ctxt (MetaLLVM φ).Ty) (opStx : MLIR.AST.Op φ) : | "llvm.icmp.sge" => pure <| Sum.inr LLVM.IntPredicate.sge | "llvm.icmp.slt" => pure <| Sum.inr LLVM.IntPredicate.slt | "llvm.icmp.sle" => pure <| Sum.inr LLVM.IntPredicate.sle + -- | "llvm.icmp" => do + -- let attr? := opStx.attrs.getAttr "predicate" + -- match attr? with + -- | .none => throw <| .generic s!"What?" + -- | .some y => throw <| .generic s!"Predicate flag: {MLIR.AST.docAttrVal y}." | opstr => throw <| .unsupportedOp s!"Unsuported binary operation or invalid arguments '{opstr}'" return match op with @@ -169,9 +174,12 @@ def mkExpr (Γ : Ctxt (MetaLLVM φ).Ty) (opStx : MLIR.AST.Op φ) : | vStx::[] => let ⟨.bitvec w, v⟩ ← MLIR.AST.TypedSSAVal.mkVal Γ vStx let op ← match opStx.name with - | "llvm.not" => pure .not - | "llvm.neg" => pure .neg - | "llvm.copy" => pure .copy + | "llvm.not" => pure .not + | "llvm.neg" => pure .neg + | "llvm.copy" => pure .copy + | "llvm.trunc" => pure .trunc + | "llvm.zext" => pure .zext + | "llvm.sext" => pure .sext | _ => throw <| .generic s!"Unknown (unary) operation syntax {opStx.name}" return ⟨_, _, mkUnaryOp op v⟩ | [] => diff --git a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean index 1ddff2ad6..37da40931 100644 --- a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean @@ -47,6 +47,18 @@ macro_rules let t ← t.getDM `(mlir_type| _) `(mlir_op| $resName:mlir_op_operand = $opName ($x, $y) : ($t, $t) -> (i1) ) +declare_syntax_cat InstCombine.int_cast_op +syntax "llvm.trunc" : InstCombine.int_cast_op +syntax "llvm.zext" : InstCombine.int_cast_op +syntax "llvm.sext" : InstCombine.int_cast_op + +syntax mlir_op_operand " = " InstCombine.int_cast_op mlir_op_operand " : " mlir_type " to " mlir_type : mlir_op +macro_rules + | `(mlir_op| $resName:mlir_op_operand = $name:InstCombine.int_cast_op $x : $t to $t') => do + let some opName := extractOpName name.raw + | Macro.throwUnsupported + `(mlir_op| $resName:mlir_op_operand = $opName ($x) : ($t) -> $t') + open MLIR.AST syntax mlir_op_operand " = " "llvm.mlir.constant" "(" neg_num (" : " mlir_type)? ")" (" : " mlir_type)? : mlir_op @@ -145,6 +157,14 @@ private def pretty_test_overflow := llvm.return %3 : i32 }] +private def prettu_test_trunc := + [llvm ()|{ + ^bb0(%arg0: i32): + %0 = llvm.trunc %arg0 : i64 to i32 + %1 = llvm.zext %0 : i32 to i64 + "llvm.return"(%1) : (i64) -> () + }] + example : pretty_test = prettier_test_generic 32 := by unfold pretty_test prettier_test_generic simp_alive_meta diff --git a/SSA/Projects/InstCombine/LLVM/Semantics.lean b/SSA/Projects/InstCombine/LLVM/Semantics.lean index 665119a43..0f1303e13 100644 --- a/SSA/Projects/InstCombine/LLVM/Semantics.lean +++ b/SSA/Projects/InstCombine/LLVM/Semantics.lean @@ -564,30 +564,30 @@ def neg {w : Nat} (x : IntW w) : IntW w := do @[simp_llvm] -def trunc? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do +def trunc? {w: Nat} (w': Nat) (x: BitVec w) : IntW w' := do pure <| (BitVec.truncate w' x) @[simp_llvm_option] -def trunc {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do +def trunc {w: Nat} (w': Nat) (x: IntW w) : IntW w' := do let x' <- x - trunc? x' w' + trunc? w' x' @[simp_llvm] -def zext? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do +def zext? {w: Nat} (w': Nat) (x: BitVec w) : IntW w' := do pure <| (BitVec.zeroExtend w' x) @[simp_llvm_option] -def zext {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do +def zext {w: Nat} (w': Nat) (x: IntW w) : IntW w' := do let x' <- x - zext? x' w' + zext? w' x' @[simp_llvm] -def sext? {w: Nat} (x: BitVec w) (w': Nat) : IntW w' := do +def sext? {w: Nat} (w': Nat) (x: BitVec w) : IntW w' := do pure <| (BitVec.signExtend w' x) @[simp_llvm_option] -def sext {w: Nat} (x: IntW w) (w': Nat) : IntW w' := do +def sext {w: Nat} (w': Nat) (x: IntW w) : IntW w' := do let x' <- x - sext? x' w' + sext? w' x' end LLVM From 621171d604098ff94af87a9b0b7c86c895d133b3 Mon Sep 17 00:00:00 2001 From: Leon Frenot Date: Fri, 25 Oct 2024 09:24:28 +0100 Subject: [PATCH 20/21] Quick cleanups --- SSA/Projects/InstCombine/LLVM/EDSL.lean | 5 ----- SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/SSA/Projects/InstCombine/LLVM/EDSL.lean b/SSA/Projects/InstCombine/LLVM/EDSL.lean index 7b299804e..7de019fd3 100644 --- a/SSA/Projects/InstCombine/LLVM/EDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/EDSL.lean @@ -161,11 +161,6 @@ def mkExpr (Γ : Ctxt (MetaLLVM φ).Ty) (opStx : MLIR.AST.Op φ) : | "llvm.icmp.sge" => pure <| Sum.inr LLVM.IntPredicate.sge | "llvm.icmp.slt" => pure <| Sum.inr LLVM.IntPredicate.slt | "llvm.icmp.sle" => pure <| Sum.inr LLVM.IntPredicate.sle - -- | "llvm.icmp" => do - -- let attr? := opStx.attrs.getAttr "predicate" - -- match attr? with - -- | .none => throw <| .generic s!"What?" - -- | .some y => throw <| .generic s!"Predicate flag: {MLIR.AST.docAttrVal y}." | opstr => throw <| .unsupportedOp s!"Unsuported binary operation or invalid arguments '{opstr}'" return match op with diff --git a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean index 37da40931..bbcdb3b24 100644 --- a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean @@ -157,7 +157,7 @@ private def pretty_test_overflow := llvm.return %3 : i32 }] -private def prettu_test_trunc := +private def pretty_test_trunc := [llvm ()|{ ^bb0(%arg0: i32): %0 = llvm.trunc %arg0 : i64 to i32 From d2008f2c142faf6eb0f318e5cc9d116cc50ce78e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Stefanesco?= Date: Fri, 25 Oct 2024 13:22:47 +0200 Subject: [PATCH 21/21] Fix typing of llvm conversions --- SSA/Projects/InstCombine/Base.lean | 66 ++++++++++++------- SSA/Projects/InstCombine/LLVM/EDSL.lean | 24 +++++-- SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean | 4 +- 3 files changed, 60 insertions(+), 34 deletions(-) diff --git a/SSA/Projects/InstCombine/Base.lean b/SSA/Projects/InstCombine/Base.lean index f23627d98..4c7049595 100644 --- a/SSA/Projects/InstCombine/Base.lean +++ b/SSA/Projects/InstCombine/Base.lean @@ -80,13 +80,13 @@ instance : Repr (BitVec n) where | v, n => reprPrec (BitVec.toInt v) n /-- Homogeneous, unary operations -/ -inductive MOp.UnaryOp : Type +inductive MOp.UnaryOp (φ : Nat) : Type | neg | not | copy - | trunc - | zext - | sext + | trunc (w' : Width φ) + | zext (w' : Width φ) + | sext (w' : Width φ) deriving Repr, DecidableEq, Inhabited /-- Homogeneous, binary operations -/ @@ -145,7 +145,7 @@ instance : Repr (MOp.BinaryOp) where -- See: https://releases.llvm.org/14.0.0/docs/LangRef.html#bitwise-binary-operations inductive MOp (φ : Nat) : Type - | unary (w : Width φ) (op : MOp.UnaryOp) : MOp φ + | unary (w : Width φ) (op : MOp.UnaryOp φ) : MOp φ | binary (w : Width φ) (op : MOp.BinaryOp) : MOp φ | select (w : Width φ) : MOp φ | icmp (c : IntPredicate) (w : Width φ) : MOp φ @@ -158,9 +158,9 @@ namespace MOp @[match_pattern] def neg (w : Width φ) : MOp φ := .unary w .neg @[match_pattern] def not (w : Width φ) : MOp φ := .unary w .not @[match_pattern] def copy (w : Width φ) : MOp φ := .unary w .copy -@[match_pattern] def trunc (w : Width φ) : MOp φ := .unary w .trunc -@[match_pattern] def zext (w : Width φ) : MOp φ := .unary w .zext -@[match_pattern] def sext (w : Width φ) : MOp φ := .unary w .sext +@[match_pattern] def trunc (w w' : Width φ) : MOp φ := .unary w (.trunc w') +@[match_pattern] def zext (w w' : Width φ) : MOp φ := .unary w (.zext w') +@[match_pattern] def sext (w w' : Width φ) : MOp φ := .unary w (.sext w') @[match_pattern] def and (w : Width φ) : MOp φ := .binary w .and @@ -205,9 +205,9 @@ namespace MOp def deepCasesOn {motive : ∀ {φ}, MOp φ → Sort*} (neg : ∀ {φ} {w : Width φ}, motive (neg w)) (not : ∀ {φ} {w : Width φ}, motive (not w)) - (trunc : ∀ {φ} {w : Width φ}, motive (trunc w)) - (zext : ∀ {φ} {w : Width φ}, motive (zext w)) - (sext : ∀ {φ} {w : Width φ}, motive (sext w)) + (trunc : ∀ {φ} {w w' : Width φ}, motive (trunc w w')) + (zext : ∀ {φ} {w w' : Width φ}, motive (zext w w')) + (sext : ∀ {φ} {w w' : Width φ}, motive (sext w w')) (copy : ∀ {φ} {w : Width φ}, motive (copy w)) (and : ∀ {φ} {w : Width φ}, motive (and w)) (or : ∀ {φ DisjointFlag} {w : Width φ}, motive (or w DisjointFlag)) @@ -228,9 +228,9 @@ def deepCasesOn {motive : ∀ {φ}, MOp φ → Sort*} ∀ {φ} (op : MOp φ), motive op | _, .neg _ => neg | _, .not _ => not - | _, .trunc _ => trunc - | _, .zext _ => zext - | _, .sext _ => sext + | _, .trunc _ _ => trunc + | _, .zext _ _ => zext + | _, .sext _ _ => sext | _, .copy _ => copy | _, .and _ => and | _, .or _ _ => or @@ -268,9 +268,9 @@ instance : ToString (MOp φ) where | .sub _ _ => "sub" | .neg _ => "neg" | .copy _ => "copy" - | .trunc _ => "trunc" - | .zext _ => "zext" - | .sext _ => "sext" + | .trunc _ _ => "trunc" + | .zext _ _ => "zext" + | .sext _ _ => "sext" | .sdiv _ _ => "sdiv" | .udiv _ _ => "udiv" | .icmp ty _ => s!"icmp {ty}" @@ -278,16 +278,24 @@ instance : ToString (MOp φ) where abbrev Op := MOp 0 +def MOp.UnaryOp.instantiate (as : Mathlib.Vector Nat φ) : MOp.UnaryOp φ → MOp.UnaryOp 0 +| .trunc w' => .trunc (.concrete <| w'.instantiate as) +| .zext w' => .zext (.concrete <| w'.instantiate as) +| .sext w' => .sext (.concrete <| w'.instantiate as) +| .neg => .neg +| .not => .not +| .copy => .copy + namespace Op -@[match_pattern] abbrev unary (w : Nat) (op : MOp.UnaryOp) : Op := MOp.unary (.concrete w) op +@[match_pattern] abbrev unary (w : Nat) (op : MOp.UnaryOp 0) : Op := MOp.unary (.concrete w) op @[match_pattern] abbrev binary (w : Nat) (op : MOp.BinaryOp) : Op := MOp.binary (.concrete w) op @[match_pattern] abbrev and : Nat → Op := MOp.and ∘ .concrete @[match_pattern] abbrev not : Nat → Op := MOp.not ∘ .concrete -@[match_pattern] abbrev trunc : Nat → Op := MOp.trunc ∘ .concrete -@[match_pattern] abbrev zext : Nat → Op := MOp.zext ∘ .concrete -@[match_pattern] abbrev sext : Nat → Op := MOp.sext ∘ .concrete +@[match_pattern] abbrev trunc : Nat → Nat → Op := fun w w' => MOp.trunc (.concrete w) (.concrete w') +@[match_pattern] abbrev zext : Nat → Nat → Op := fun w w' => MOp.zext (.concrete w) (.concrete w') +@[match_pattern] abbrev sext : Nat → Nat → Op := fun w w' => MOp.sext (.concrete w) (.concrete w') @[match_pattern] abbrev xor : Nat → Op := MOp.xor ∘ .concrete @[match_pattern] abbrev urem : Nat → Op := MOp.urem ∘ .concrete @[match_pattern] abbrev srem : Nat → Op := MOp.srem ∘ .concrete @@ -330,10 +338,18 @@ def MOp.sig : MOp φ → List (MTy φ) | .select w => [.bitvec 1, .bitvec w, .bitvec w] | .const _ _ => [] +@[simp, reducible] +def MOp.UnaryOp.outTy (w : Width φ) : MOp.UnaryOp φ → MTy φ +| .trunc w' => .bitvec w' +| .zext w' => .bitvec w' +| .sext w' => .bitvec w' +| _ => .bitvec w + @[simp, reducible] def MOp.outTy : MOp φ → MTy φ -| .binary w _ | .unary w _ | .select w | .const w _ => +| .binary w _ | .select w | .const w _ => .bitvec w +| .unary w op => op.outTy w | .icmp _ _ => .bitvec 1 /-- `MetaLLVM φ` is the `LLVM` dialect with at most `φ` metavariables -/ @@ -358,9 +374,9 @@ def Op.denote (o : LLVM.Op) (op : HVector TyDenote.toType (DialectSignature.sig | Op.copy _ => (op.getN 0) | Op.not _ => LLVM.not (op.getN 0) | Op.neg _ => LLVM.neg (op.getN 0) - | Op.trunc w => LLVM.trunc w (op.getN 0) - | Op.zext w => LLVM.zext w (op.getN 0) - | Op.sext w => LLVM.sext w (op.getN 0) + | Op.trunc w w' => LLVM.trunc w' (op.getN 0) + | Op.zext w w' => LLVM.zext w' (op.getN 0) + | Op.sext w w' => LLVM.sext w' (op.getN 0) | Op.and _ => LLVM.and (op.getN 0) (op.getN 1) | Op.or _ flag => LLVM.or (op.getN 0) (op.getN 1) flag | Op.xor _ => LLVM.xor (op.getN 0) (op.getN 1) diff --git a/SSA/Projects/InstCombine/LLVM/EDSL.lean b/SSA/Projects/InstCombine/LLVM/EDSL.lean index 7de019fd3..3ca08ba2d 100644 --- a/SSA/Projects/InstCombine/LLVM/EDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/EDSL.lean @@ -13,8 +13,8 @@ open MLIR namespace InstcombineTransformDialect -def mkUnaryOp {Γ : Ctxt (MetaLLVM φ).Ty} {w : Width φ} (op : MOp.UnaryOp) - (e : Ctxt.Var Γ (.bitvec w)) : Expr (MetaLLVM φ) Γ .pure (.bitvec w) := +def mkUnaryOp {Γ : Ctxt (MetaLLVM φ).Ty} {w : Width φ} (op : MOp.UnaryOp φ) + (e : Ctxt.Var Γ (.bitvec w)) : Expr (MetaLLVM φ) Γ .pure (op.outTy w) := ⟨ .unary w op, rfl, @@ -70,6 +70,15 @@ def mkTy : MLIR.AST.MLIRType φ → MLIR.AST.ExceptM (MetaLLVM φ) ((MetaLLVM φ instance instTransformTy : MLIR.AST.TransformTy (MetaLLVM φ) φ where mkTy := mkTy +def getOutputWidth (opStx : MLIR.AST.Op φ) (op : String) : + AST.ReaderM (MetaLLVM φ) (Width φ) := do + match opStx.res with + | res::[] => + match res.2 with + | .int _ w => pure w + | _ => throw <| .generic s!"The operation {op} must output an integer type" + | _ => throw <| .generic s!"The operation {op} must have a single output" + def mkExpr (Γ : Ctxt (MetaLLVM φ).Ty) (opStx : MLIR.AST.Op φ) : AST.ReaderM (MetaLLVM φ) (Σ eff ty, Expr (MetaLLVM φ) Γ eff ty) := do match opStx.args with @@ -172,9 +181,9 @@ def mkExpr (Γ : Ctxt (MetaLLVM φ).Ty) (opStx : MLIR.AST.Op φ) : | "llvm.not" => pure .not | "llvm.neg" => pure .neg | "llvm.copy" => pure .copy - | "llvm.trunc" => pure .trunc - | "llvm.zext" => pure .zext - | "llvm.sext" => pure .sext + | "llvm.trunc" => pure <| .trunc (← getOutputWidth opStx "trunc") + | "llvm.zext" => pure <| .zext (← getOutputWidth opStx "zext") + | "llvm.sext" => pure <| .sext (← getOutputWidth opStx "sext") | _ => throw <| .generic s!"Unknown (unary) operation syntax {opStx.name}" return ⟨_, _, mkUnaryOp op v⟩ | [] => @@ -225,7 +234,7 @@ def instantiateMTy (vals : Mathlib.Vector Nat φ) : (MetaLLVM φ).Ty → LLVM.Ty def instantiateMOp (vals : Mathlib.Vector Nat φ) : (MetaLLVM φ).Op → LLVM.Op | .binary w binOp => .binary (w.instantiate vals) binOp - | .unary w unOp => .unary (w.instantiate vals) unOp + | .unary w unOp => .unary (w.instantiate vals) (unOp.instantiate vals) | .select w => .select (w.instantiate vals) | .icmp c w => .icmp c (w.instantiate vals) | .const w val => .const (w.instantiate vals) val @@ -241,12 +250,13 @@ def MOp.instantiateCom (vals : Mathlib.Vector Nat φ) : DialectMorphism (MetaLLV preserves_signature op := by have h1 : ∀ (φ : Nat), 1 = ConcreteOrMVar.concrete (φ := φ) 1 := by intros φ; rfl cases op <;> + (try casesm MOp.UnaryOp _) <;> simp only [instantiateMTy, instantiateMOp, ConcreteOrMVar.instantiate, (· <$> ·), signature, InstCombine.MOp.sig, InstCombine.MOp.outTy, Function.comp_apply, List.map, Signature.mk, Signature.mkEffectful.injEq, List.map_cons, List.map_nil, and_self, MTy.bitvec, List.cons.injEq, MTy.bitvec.injEq, and_true, true_and, - RegionSignature.map, Signature.map, h1] + RegionSignature.map, Signature.map, MOp.UnaryOp.instantiate, MOp.UnaryOp.outTy, h1] open InstCombine in def mkComInstantiate (reg : MLIR.AST.Region φ) : diff --git a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean index bbcdb3b24..6f3f1a812 100644 --- a/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean +++ b/SSA/Projects/InstCombine/LLVM/PrettyEDSL.lean @@ -159,10 +159,10 @@ private def pretty_test_overflow := private def pretty_test_trunc := [llvm ()|{ - ^bb0(%arg0: i32): + ^bb0(%arg0: i64): %0 = llvm.trunc %arg0 : i64 to i32 %1 = llvm.zext %0 : i32 to i64 - "llvm.return"(%1) : (i64) -> () + llvm.return %1 : i64 }] example : pretty_test = prettier_test_generic 32 := by